API Reference
Errors
Every refusal, what it means and how to recover from it.
A failed call answers with an HTTP status and a body carrying error, a stable machine-readable code, and message, a sentence meant for a human reading your logs. Branch on error, never on the wording.
The shape of a failure
JSON
{
"error": "license_unknown",
"message": "No license with that key."
}
Read a refusal
Paste a response body your integration got back and we will point at the row that explains it.
Every code
| Code | HTTP | What it means |
|---|---|---|
missing_credentials |
401 | No key or secret on the request. Check both headers are actually being sent. |
bad_credentials |
401 | The pair does not match a token, or the token was revoked. Create a new one in the panel. |
seller_inactive |
403 | The workspace is suspended or its plan has lapsed. Nothing will work until it is active again. |
token_scope |
403 | A token locked to one application tried a workspace-wide endpoint. Use a workspace token. |
not_allowed |
403 | The action is refused, for example issuing keys on an application that is switched off. |
plan_limit |
402 | The plan has no room left. The body names the limit, what it allows and what is used. |
application_unknown |
404 | No application with that id in this workspace. |
license_unknown |
404 | No key with that string, or it belongs to an application this token cannot see. |
member_unknown |
404 | No member with that id. |
ban_unknown |
404 | No ban with that id. |
ban_exists |
409 | That value is already banned. Read the list to find the existing entry. |
bans_unavailable |
409 | The panel has not run the database update that bans need yet. |
member_is_staff |
422 | Owners and partners hold no balance, so credit cannot move on them. |
member_is_developer |
422 | Developers issue keys for free and hold no balance, so credit cannot move on them. |
license_not_movable |
422 | Lifetime keys, keys never used, and durations the application does not price cannot take a time change. |
validation_failed |
422 | The body is malformed. The response lists the offending fields under errors. |
Nothing matches that.