API reference: accounts and connections
Read your plan and accounts with live status, and connect, disconnect, Connect All, and Stop All from code.
Check your key and plan
GET /me confirms the key works and returns your plan and limits. It is the cheapest call to use as a health check.
{
"discordId": "123456789012345678",
"plan": { "tier": 3, "maxAccounts": 20, "expiresAt": 1792540800000 },
"rateLimit": { "limit": 120, "windowSeconds": 60, "maxConcurrent": 8 },
"ipWhitelist": { "enabled": true, "count": 1 }
}List accounts
GET /accounts returns every account on your dashboard with its live status.
{
"accounts": [
{
"id": "[email protected]",
"username": "Steve",
"serverUsername": "",
"type": "microsoft",
"status": "connected",
"lastError": "",
"connectedAt": 1790000000000,
"lastSeenAt": 1790000450000,
"reconnectPending": false,
"reconnectAt": 0,
"proxyLatencyMs": 48,
"position": { "x": 120.5, "y": 64, "z": -33.5 },
"xpLevel": 30,
"server": { "host": "", "port": 0, "version": "" },
"joinCommand": "",
"captchaPending": false
}
]
}| Field | Meaning |
|---|---|
id | The account ID used in every other endpoint. It never changes. |
username | The player name. serverUsername is filled only when the server reports a different name than the account’s own. |
type | microsoft, cookie, ssid (SSID and refresh token accounts), offline, or bedrock, matching how the account was added. |
status | See the status table below. |
lastError | The latest kick or error text, empty when there is none. |
connectedAt, lastSeenAt | When the current session started, and when the account was last seen online. |
reconnectPending, reconnectAt | Whether an automatic reconnect is scheduled, and when. |
proxyLatencyMs | Latency through the account’s proxy, or null when unknown. |
position | Last reported coordinates, or null when the account has not reported any. |
server | Per-account server override. Empty values mean the account uses your global settings. |
captchaPending | true when the server is showing this account a map CAPTCHA that needs answering in the dashboard. |
| Status | Meaning |
|---|---|
connected | Online on the server. |
connecting | Joining the server. |
authing | Signing in with Microsoft. |
waiting-proxy | Waiting for its proxy to respond. |
disconnected | Offline. |
kicked | The server kicked it. lastError has the reason. |
error | The connection failed. lastError has the reason. |
auth-failed | Microsoft sign-in failed or needs you. Open the dashboard to sign in again. |
invalid-account | The account’s cookie or token no longer works. |
session-conflict, running-on-another-node | The account is already online somewhere else. |
Proxy details and credentials are never returned by the API.
Get one account
GET /accounts/{id} returns one account in the same shape, under account. An unknown ID answers 404 not_found.
curl https://dashboard.consoleclient.com/api/v1/accounts/[email protected] \
-H "Authorization: Bearer $CC_API_KEY"This is the call to poll after a connect. Every two to five seconds is plenty.
Connect an account
POST /accounts/{id}/connect starts the account, exactly like the Connect button. No body is needed.
curl -X POST https://dashboard.consoleclient.com/api/v1/accounts/[email protected]/connect \
-H "Authorization: Bearer $CC_API_KEY"{ "ok": true }| Error | HTTP | Meaning |
|---|---|---|
not_found | 404 | No account with that ID. |
slot_limit | 403 | You already have as many accounts online as your plan allows. The response includes maxAccounts. |
proxy_required | 400 | The account has no proxy. Assign one in the dashboard. |
proxy_expired, proxy_limit_reached | 400 | The account’s Console Client supplied proxy expired or used up its bandwidth allowance. |
shared_pool_empty, shared_proxy_blocked | 400, 403 | The shared proxy pool is empty, or it is not allowed on this server. |
auth_required | 409 | The account needs a Microsoft sign-in first. Do it in the dashboard. |
cooldown | 429 | The account was connected moments ago. cooldownRemaining is how many milliseconds to wait and reason is in_progress, recent_attempt, or cooldown. |
no_backend | 503 | No backend server can take the account right now. Try again shortly. |
Disconnect an account
POST /accounts/{id}/disconnect takes the account offline, like the Disconnect button. It stays offline, with no automatic reconnect, until you connect it again.
POST /accounts/{id}/cancel-reconnect cancels a scheduled automatic reconnect for an account that is currently offline, without changing anything else.
Both answer { "ok": true } and need no body.
Connect All and Stop All
| Endpoint | What it does |
|---|---|
POST /accounts/connect-all | Starts Connect All: every offline account is connected one after another at the same safe pace the dashboard uses. Answers { "ok": true, "started": true }, or "started": false when a run is already going. |
POST /accounts/connect-all/stop | Stops a Connect All run and cancels pending reconnects. Accounts already online stay online. |
POST /accounts/disconnect-all | Stop All: disconnects every account and keeps them offline until you connect them again. |
Check the troubleshooting guide or return to all guides.