npm install unb-api
Full API documentation is located at https://unbelievaboat.com/api/docs
const { Client } = require('unb-api');
const client = new Client('TOKEN'); // Get your API token from https://unbelievaboat.com/api/docs
const guildID = '305129477627969547';
const userID = '261674810914897931';
client.getUserBalance(guildID, userID).then(user => console.log(user));
client.getGuildLeaderboard(guildID, { sort: 'cash' }).then(lb => console.log(lb));
new Client(token, [options])
Type | Property | Description |
---|---|---|
String | baseURL? |
API hostname. Defaults to https://unbelievaboat.com/api |
Number | version? |
API version. Defaults to the latest version |
Number | maxRetries? |
Maximum number of times to retry a request if it's rate-limited. Defaults to 3 |
getUserBalance(guildId: string, userId: string)
Returns: Promise<User>
setUserBalance(guildId: string, userId: string, balance: Balance, reason?: string)
Returns: Promise<User>
editUserBalance(guildId: string, userId: string, balance: Balance, reason?: string)
Returns: Promise<User>
getGuildLeaderboard(guildId: string, query?: ListOptions)
Returns: Promise<User[]> | Promise<{ users: User[], totalPages: number }>
[!NOTE]
If the query forgetGuildLeaderboard
includes a page parameter, the response will be an object containing both users and totalPages.
Otherwise, it will return a simple array of User[].
getGuild(guildId: string)
Returns: Promise<Guild>
getApplicationPermission(guildId: string)
Returns: Promise<Permission>
getItems(guildId: string, options?: ListOptions)
Returns: Promise<{ page: number, totalPages: number, items: StoreItem[] }>
getItem(guildId: string, itemId: string)
Returns: Promise<StoreItem>
createItem(guildId: string)
Returns: Promise<StoreItem>
editItem(guildId: string, itemId: string, data: StoreItem | object, options?: { cascadeUpdate?: boolean })
Returns: Promise<StoreItem>
deleteItem(guildId: string, itemId: string)
Returns: Promise<any>
getInventoryItems(guildId: string, userId: string, options?: ListOptions)
Returns: Promise<{ page: number, totalPages: number, items: InventoryItem[] }>
getInventoryItem(guildId: string, userId: string, itemId: string)
Returns: Promise<InventoryItem>
addInventoryItem(guildId: string, userId: string, itemId: string, quantity?: string | number, options?: { inventoryUserId?: string })
Returns: Promise<InventoryItem>
removeInventoryItem(guildId: string, userId: string, itemId: string, quantity?: string | number)
Returns: Promise<any>
Type | Property |
---|---|
String[] | sort? |
Number | limit? |
Number | offset? |
Number | page? |
Type | Property | Description |
---|---|---|
Number | rank? |
Leaderboard rank of the user. This is only present on getUserBalance() and getGuildLeaderboard() |
String | user_id |
User ID of the discord user. |
Number | cash |
User's cash balance. |
Number | bank |
User's bank balance. |
Number | total |
User's total balance. |
Type | Property | Description |
---|---|---|
String | id |
Guild ID. |
String | name |
Guild name. |
Number | icon |
Icon hash. |
Number | iconURL |
Icon url. |
String | ownerID |
User ID of the owner. |
Number | memberCount |
Total number of members. |
String | currencySymbol |
Currency symbol |
Type | Property | Description |
---|---|---|
String | id |
Unique ID of the item in the store. |
String | name |
Name of the item. |
String | description? |
Description of the item. |
Number | price |
Price of the item. |
Number | stockRemaining |
Amount of stock remaining for the item. |
Boolean | unlimitedStock |
Whether the item has unlimited stock. |
Boolean | isInventory |
Indicates if the item will be added to a user’s inventory when purchased. |
Date | expiresAt? |
Expiration date of the item. |
Boolean | isUsable |
Whether the item can be used by the user. |
Boolean | isSellable |
Whether the item can be sold by the user. |
Array | requirements |
Requirements needed to purchase the item. |
Array | actions |
Actions performed when the item is used. |
String | emojiUnicode? |
Unicode emoji associated with the item. |
String | emojiId? |
Custom emoji ID associated with the item. |
Type | Property | Description |
---|---|---|
String | itemId |
Unique ID of the item in the inventory. |
Number | quantity |
Quantity of the item in the user's inventory. |
String | name |
Name of the item. |
String | description? |
Description of the item. |
Boolean | isUsable |
Whether the item can be used by the user. |
Boolean | isSellable |
Whether the item can be sold by the user. |
StoreItemRequirement[] | requirements |
Requirements needed to use the item. |
StoreItemAction[] | actions |
Actions performed when the item is used. |
String | emojiUnicode? |
Unicode emoji associated with the item. |
String | emojiId? |
Custom emoji ID associated with the item. |
Type | Property | Description |
---|---|---|
StoreItemRequirementType | type |
Type of requirement. Could be one of ROLE , TOTAL_BALANCE , or ITEM . |
StoreItemRequirementMatchType | matchType |
Specifies how the requirement must be met. Can be EVERY , AT_LEAST_ONE , or NONE . |
String[] | ids |
An array of IDs that correspond to roles, items, or other required entities. |
Number | balance |
Minimum balance required (applicable if type is TOTAL_BALANCE ). |
Type | Property | Description |
---|---|---|
StoreItemActionType | type |
Type of action. Could be one of RESPOND , ADD_ROLES , REMOVE_ROLES , ADD_BALANCE , REMOVE_BALANCE , ADD_ITEMS , or REMOVE_ITEMS . |
String[] | ids |
An array of IDs corresponding to roles, items, or other entities involved in the action. |
Object | message? |
Discord message object, only applicable if type is RESPOND . |
Number | balance? |
Balance amount to be added or removed (applicable if type is ADD_BALANCE or REMOVE_BALANCE ). |
Type | Property | Description |
---|---|---|
Number | allow |
The allowed bitwise permissions number. |
String | json |
JSON representation of the allowed and denied permissions. |