# KSoft.js

{% hint style="info" %}
this documentation is for version 3.0 or later.\
If you're on an older version, please run `npm i @ksoft/api` as there's been a lot of performance improvements.
{% endhint %}

Every API call in KSoft.js is asynchronous, meaning the it return a promise.

As an example, this is how you'd use the random-aww endpoint:

```javascript
const { KSoftClient } = require('@ksoft/api');

const ksoft = new KSoftClient('your-very-nice-token');

/* I use a helper asnyc function called main here.
 * This would also work using a lambda function or class method,
 * as long as it's asynchronous.
 */
async function main() {
    const { url } = await ksoft.images.aww();
    message.channel.send(url); // discord.js
}

main();
```

{% hint style="info" %}
There's two official versions of the wrapper on NPM.

The stable version is available at **@ksoft/api** and is generally recommended.\
Nightly builds are available at **@aero/ksoft** and should only be used if you want to actively want to give feedback on development or really know what you're doing.
{% endhint %}

{% hint style="warning" %}
In the following documentation, all required arguments will be marked **bold**.
{% endhint %}
