Console Client
Documentation
Dashboard
API

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
    }
  ]
}
FieldMeaning
idThe account ID used in every other endpoint. It never changes.
usernameThe player name. serverUsername is filled only when the server reports a different name than the account’s own.
typemicrosoft, cookie, ssid (SSID and refresh token accounts), offline, or bedrock, matching how the account was added.
statusSee the status table below.
lastErrorThe latest kick or error text, empty when there is none.
connectedAt, lastSeenAtWhen the current session started, and when the account was last seen online.
reconnectPending, reconnectAtWhether an automatic reconnect is scheduled, and when.
proxyLatencyMsLatency through the account’s proxy, or null when unknown.
positionLast reported coordinates, or null when the account has not reported any.
serverPer-account server override. Empty values mean the account uses your global settings.
captchaPendingtrue when the server is showing this account a map CAPTCHA that needs answering in the dashboard.
StatusMeaning
connectedOnline on the server.
connectingJoining the server.
authingSigning in with Microsoft.
waiting-proxyWaiting for its proxy to respond.
disconnectedOffline.
kickedThe server kicked it. lastError has the reason.
errorThe connection failed. lastError has the reason.
auth-failedMicrosoft sign-in failed or needs you. Open the dashboard to sign in again.
invalid-accountThe account’s cookie or token no longer works.
session-conflict, running-on-another-nodeThe 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 }
ErrorHTTPMeaning
not_found404No account with that ID.
slot_limit403You already have as many accounts online as your plan allows. The response includes maxAccounts.
proxy_required400The account has no proxy. Assign one in the dashboard.
proxy_expired, proxy_limit_reached400The account’s Console Client supplied proxy expired or used up its bandwidth allowance.
shared_pool_empty, shared_proxy_blocked400, 403The shared proxy pool is empty, or it is not allowed on this server.
auth_required409The account needs a Microsoft sign-in first. Do it in the dashboard.
cooldown429The account was connected moments ago. cooldownRemaining is how many milliseconds to wait and reason is in_progress, recent_attempt, or cooldown.
no_backend503No 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

EndpointWhat it does
POST /accounts/connect-allStarts 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/stopStops a Connect All run and cancels pending reconnects. Accounts already online stay online.
POST /accounts/disconnect-allStop All: disconnects every account and keeps them offline until you connect them again.
Need a hand?

Check the troubleshooting guide or return to all guides.