DOCS LLMs

Error Codes

Error Codes

All LicenseSeat API errors follow a structured format for programmatic handling.

Try it in the Interactive API Docs →

Response Format

{
  "error": {
    "code": "license_not_found",
    "message": "License key not found.",
    "details": {}
  }
}
Field Description
error.code Machine-readable error code
error.message Human-readable error description
error.details Additional context (optional)

HTTP Status Codes

Code Meaning
200 Success
201 Resource created
400 Invalid request
401 Authentication required or failed
403 Insufficient permissions
404 Resource not found
422 Request understood but cannot process
429 Rate limit exceeded
500 Server error

Error Codes

Authentication

Code HTTP Resolution
authentication_required 401 Add Authorization: Bearer KEY header
invalid_api_key 401 Check API key in dashboard

License

Code HTTP Resolution
license_not_found 404 Verify license key is correct
expired 422 Renew the license
revoked 422 Contact support or purchase new
suspended 422 Contact support
not_active 422 Check license status in dashboard
product_mismatch 422 Use correct license for this product

Activation

Code HTTP Resolution
device_not_activated 422 Call activate endpoint first
seat_limit_exceeded 422 Deactivate another device or upgrade
already_deactivated 422 Device was already deactivated
not_found 404 No activation found for this device

Request

Code HTTP Resolution
parameter_missing 400 Include all required parameters
invalid_arguments 400 Check parameter format and values

User-Friendly Messages

Map technical codes to user-facing messages:

Code Suggested Message
license_not_found "We couldn't find that license key. Please double-check and try again."
expired "Your license has expired. Renew now to continue using all features."
revoked "This license is no longer valid. Please contact support."
seat_limit_exceeded "You've reached the maximum devices. Deactivate another device first."

Error Response Examples

Missing Parameter

{
  "error": {
    "code": "parameter_missing",
    "message": "Required parameter 'device_id' is missing.",
    "details": {
      "parameter": "device_id"
    }
  }
}

Seat Limit Exceeded

{
  "error": {
    "code": "seat_limit_exceeded",
    "message": "All seats are in use. Deactivate another device first.",
    "details": {
      "seat_limit": 3,
      "active_seats": 3
    }
  }
}

Rate Limited

{
  "error": {
    "code": "rate_limited",
    "message": "Too many requests. Please try again later.",
    "details": {
      "retry_after": 60
    }
  }
}

Retry Logic

For server errors (5xx), use exponential backoff:

Attempt 1: immediate
Attempt 2: wait 1s
Attempt 3: wait 2s
Attempt 4: wait 4s

Don't retry client errors (4xx) — they require fixing the request.

See Also