General

Errors

Standard error envelope and error codes.

Error envelope

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The API key is invalid.",
    "request_id": "req_..."
  }
}

Every response includes a request_id (also returned as X-Request-Id) for support. Domain validation failures may include error.details with extra fields such as code.

Error codes

Code Typical status Meaning What to do
INVALID_API_KEY 401 Missing, malformed, or unknown API key Send Authorization: Bearer pk_live_...
API_ACCESS_DISABLED 403 Account API access is disabled Contact support or check account status
API_KEY_REVOKED 401 Key was revoked Create a new key in the dashboard
API_KEY_EXPIRED 401 Key expiration date passed Create a new key
SERVICE_ACCESS_DENIED 403 Key lacks write_post or smm permission Enable the required service on the key
PLAN_ACCESS_DENIED 403 Reserved plan-gate code Plan limits today usually surface as VALIDATION_ERROR with HTTP 403 and details.code = plan_limit
RATE_LIMIT_EXCEEDED 429 Too many requests for this key Respect Retry-After and rate-limit headers
INVALID_REQUEST 400 / 401 Malformed JSON, or API key passed in the query string Use JSON body + Authorization header only
VALIDATION_ERROR 400+ Payload or domain validation failed Read message / details; may map to 402/403/409/502
RESOURCE_NOT_FOUND 404 Post, service, or order not found (or not owned) Verify IDs belong to your account
ACCOUNT_SUSPENDED 403 Account is suspended Contact support
INTERNAL_ERROR 500+ Unexpected server error Retry with the request_id for support

Domain details

When a domain exception includes extra data, the error may look like:

JSON
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Insufficient balance.",
    "request_id": "req_...",
    "details": {
      "code": "insufficient_balance"
    }
  }
}

Common details.code values: insufficient_balance, price_changed, plan_limit.