Console Client
Documentation
Dashboard
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 part of Tier 3 and is currently in beta. You create one API key in Settings → API, and every request carries that key.

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

Your first request

  1. Create your key

    Open Settings → API and click Generate API 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": 3, "maxAccounts": 20, "expiresAt": 1792540800000 },
  "rateLimit": { "limit": 120, "windowSeconds": 60, "maxConcurrent": 8 },
  "ipWhitelist": { "enabled": true, "count": 1 }
}

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 limit120 requests per minute per key and 8 requests in flight at once. 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 setting up the key, locking it to your IPs, or replacing 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.