Error codes
Errors come back as:
{ "ok": false, "error": { "code": "LICENSE_EXPIRED", "message": "…", "details": { } } }details is present only for some codes. In the C++ SDK each code is a Status (for example
LICENSE_EXPIRED is Status::LicenseExpired); see SDK errors.
Seller API and panel
Section titled “Seller API and panel”| Code | HTTP | Meaning |
|---|---|---|
INVALID_REQUEST |
400, 405, 413 | Bad input, wrong method, or a body that is too large |
UNAUTHORIZED |
401 | Missing, malformed, unknown or revoked token; bad webhook signature |
PLAN_LIMIT |
402, 403 | Your plan’s limit is reached |
FORBIDDEN |
403 | Outside the token’s scopes, another app, or owner-only |
QUOTA_EXCEEDED |
403, 409 | A trial or free key limit, a reseller allowance, or too many per-user variables |
NOT_FOUND |
404 | No such record or route |
CONFLICT |
409 | Something already exists or is still in use |
HWID_RESET_COOLDOWN |
409 | The last HWID reset was too recent |
HWID_RESET_QUOTA_EXCEEDED |
409 | No HWID resets left |
RATE_LIMITED |
429 | Too many requests; see Retry-After |
INTERNAL |
500, 502, 503 | A server-side failure |
Client apps (SDK)
Section titled “Client apps (SDK)”| Code | HTTP | Meaning |
|---|---|---|
INVALID_CREDENTIALS |
401 | Wrong username or password |
USERNAME_TAKEN |
409 | Another account in the app has that name |
USERNAME_REQUIRED |
409 | First sign-in with a key: send a username |
USERNAME_TOO_SHORT |
400 | Below the app’s minimum |
PASSWORD_LEAKED |
400 | Found in a public breach |
USER_BANNED |
403 | The account is banned |
USER_PAUSED |
403 | The subscription is paused |
BLACKLISTED |
403 | The PC or IP address is blacklisted |
FREE_MODE_DISABLED |
403 | The app doesn’t offer free access |
ACCOUNT_REQUIRED |
403 | A free session tried an account feature |
UPDATE_REQUIRED |
426 | Below the minimum version; details has min_version, latest_version, download_url |
LICENSE_INVALID |
403, 404 | No such key |
LICENSE_IN_USE |
409 | The key belongs to another account |
LICENSE_BANNED |
403 | The key was revoked |
LICENSE_EXPIRED |
403 | The time ran out |
LICENSE_TYPE_NOT_ALLOWED |
400 | For example a one-time key used to create an account |
HWID_MISMATCH |
403 | The account is locked to another PC |
SESSION_INVALID |
401 | Unknown or ended session |
SESSION_EXPIRED |
401 | The session timed out |
VARIABLE_NOT_FOUND |
404 | Unknown variable, or locked to other tiers |
FILE_NOT_FOUND |
404 | Unknown file, or locked to other tiers |
APP_DISABLED |
403 | The app is disabled or its account suspended |
TURNSTILE_FAILED |
400 | Turnstile is required and the token failed |
The wording of most client-facing codes can be changed per app in App settings → Client messages.