20% offevery plan

Spooky Sale. Happy Halloween! New purchases, extensions and upgrades all qualify.

Ends in
00days
00hrs
00min
00sec
See plans
API

Get started with the API

Control your accounts from your own scripts, bots, and tools: what the API can do, how requests work, and your first call.

What the API is

The Console Client API lets your own code do what you would otherwise click in the dashboard: see which accounts are online, connect and disconnect them, send chat and commands, read chat, run macros, move accounts, work with inventories, and change your connection settings. It is a plain HTTPS and JSON API, so it works from any language that can make a web request.

The API is included with every paid plan, from Tier 1 up, and is currently in beta. You can create up to five API keys in Settings → API, and every request carries one of them. Your plan decides which areas your keys can reach and how fast you can call: see What each plan includes below.

AreaWhat you can doPlanReference
AccountsList accounts with live status, connect, disconnect, Connect All, Stop All.Tier 1Accounts and connections
ChatSend messages and commands, read the live chat and console feeds.Tier 1Chat and console
MacrosList saved macros, run one on an account, stop a run, see what is running.Tier 1Macros
SettingsRead and change the server address, version, join command, and reconnect settings.Tier 1Settings
Inventory and head aimRead and click inventories and menus, turn the head to an angle.Tier 2Movement, tasks, and inventory
Movement and tasksWalk, run pathing and mining tasks, read the head angle.Tier 3Movement, tasks, and inventory

What each plan includes

The API follows the same tier rules as the dashboard: an area that needs Tier 2 or Tier 3 in the dashboard needs the same tier through the API. The rate limits belong to your account and are shared by all your keys, so five keys never give you five times the limit.

What you getTier 1Tier 2Tier 3
API keysUp to 5Up to 5Up to 5
Requests per minute3060120
Requests in flight at once248
Accounts and connections, chat and console, macros, settingsYesYesYes
Inventory and head aim (POST /accounts/{id}/look)NoYesYes
Movement, tasks, and reading the head angle (GET /accounts/{id}/look)NoNoYes

A call to an area your plan does not include answers 403 with tier2_required or tier3_required, and a key whose plan has lapsed answers tier1_required on every call. Upgrades, downgrades and renewals apply from the very next request. GET /me tells your code its tier, limits and areas at any time.

Your first request

  1. Create your key

    Open Settings → API, type a name for the key, such as the script or server that will use it, and click Create key. Click Copy and store the key somewhere safe straight away. It is shown only once. API keys and the IP whitelist covers this page in full.

  2. Turn on the IP whitelist

    Recommended. Add the public IP of the machine that will send requests, then switch the whitelist on. A stolen key is useless from any other IP.

  3. Check the key works

    Call GET /me with the key in the Authorization header. A 200 response with your plan means everything is set up.

  4. List your accounts

    Call GET /accounts. Each account has an id that every other account endpoint uses.

curl https://dashboard.consoleclient.com/api/v1/me \
  -H "Authorization: Bearer cc-api-YOUR_KEY_HERE"
{
  "discordId": "123456789012345678",
  "plan": { "tier": 2, "maxAccounts": 10, "expiresAt": 1792540800000 },
  "rateLimit": { "limit": 60, "windowSeconds": 60, "maxConcurrent": 4 },
  "ipWhitelist": { "enabled": true, "count": 1 },
  "key": { "name": "Sell bot", "hint": "N5VC", "createdAt": 1790000000000 },
  "access": {
    "accounts": true, "chat": true, "macros": true, "settings": true,
    "inventory": true, "look": true, "movement": false
  }
}

Base URL and versions

Every endpoint in these guides is relative to this base URL:

https://dashboard.consoleclient.com/api/v1

The API is served over HTTPS only. The v1 in the path is the version. New optional fields and new endpoints can appear at any time, so write your code to ignore fields it does not know.

How requests work

RuleDetail
AuthenticationSend Authorization: Bearer cc-api-... on every request. There are no cookies and no sessions.
Request bodiesJSON with Content-Type: application/json. A POST that needs no fields can be sent with no body at all.
ResponsesAlways JSON. A successful call answers with HTTP 200. Anything else is an error with an error code, listed in Errors and rate limits.
TimesTimestamps are Unix time in milliseconds. 0 means never or not set. Durations say their unit in the field name, such as delayMs.
PathsLower case, as written in these guides.
Rate limit30, 60 or 120 requests per minute and 2, 4 or 8 requests in flight at once on Tier 1, 2 or 3, shared by all your keys. Every response carries X-RateLimit-* headers.

Account IDs

Every account has an id, returned by GET /accounts. For a Microsoft account it is the email you added it with, for a cookie or token account it is the generated address shown in the dashboard, and for an offline account it is the username. The ID never changes, even when the player name does, so store the ID and not the username.

The ID goes straight into the URL. An @ is fine as it is. If an ID contains a space or another unusual character, URL-encode it the way your HTTP library normally does.

POST https://dashboard.consoleclient.com/api/v1/accounts/[email protected]/connect

Actions are queued, not instant

Your accounts run on backend servers around the world, and the API hands each action to the server that runs the account. A successful response to connect, disconnect, chat, move, or a macro run means the action was accepted and queued, which normally takes well under a second to reach the account. It does not mean the account is already online or that the server accepted the chat message.

To confirm an outcome, read it back: poll GET /accounts/{id} until status is connected, or watch GET /chat for the server’s reply to a command. Endpoints that read live data from an account, such as the inventory, wait for the account to answer and return the real result.

Keep the key on a server

Call the API from a server, a bot, or a script you run yourself. Never put the key in a web page, a browser extension, a mobile app, or anything else you hand to other people: whoever can read the code can read the key. The API does not send CORS headers, so browsers refuse to call it from a page by design.

Where to go next

GuideRead it when
API keys and the IP whitelistYou are creating keys, locking them to your IPs, or revoking a leaked key.
Accounts and connectionsYou want status, connect, and disconnect.
Chat and consoleYou want to send commands or react to chat.
MacrosYou want to trigger the macros you built in the dashboard.
Movement, tasks, and inventoryYou want to move an account or click through a menu.
SettingsYou want to switch servers or versions from code.
Errors and rate limitsA call failed, or you are planning how often to poll.
Code examplesYou want working Python, Node.js, and curl to start from.
Need a hand?

Check the troubleshooting guide or return to all guides.