GET /v1/docs) is authenticated with an API key in the Authorization header:
Creating keys
Create and manage keys in the SuperX app under Account > API / MCP / CLI. You can hold up to 10 active keys. Each key has a name, a creation date and a last-used date so you can tell them apart and retire stale ones. Keys are stored hashed on our side, so the full key is shown exactly once, right after you create it. Copy it then. If you lose a key, rotate it: the API / MCP / CLI tab creates a replacement with the same name and scopes and revokes the old one.Scopes
Keys carry coarse scopes:readpluswrite(the default): full API access.readonly (the “Read-only key” option):GETrequests work; anyPOSTorDELETEreturns403 insufficient_scope.
write scope can still perform GET requests; write access implies read access on this surface.
Keep keys server-side
API keys are server-side secrets:- Never ship a key in browser JavaScript, a mobile app binary, or a public repo.
- Store keys in environment variables or a secret manager.
- Use one key per integration so you can revoke one without breaking the others.
- Rotate keys periodically. Revocation takes effect within 60 seconds.
Subscription requirement
API access follows your SuperX subscription (active, trialing, or team-billed all work). When a subscription lapses, requests return403 until you resubscribe. Keys are not deleted on lapse; they resume working when the subscription is active again. Note that this specific 403 uses a legacy body shape, documented in Errors.
Failed authentication
- Missing or malformed header:
401 unauthorized. - Unknown or revoked key:
401 invalid_api_key. - Repeated failed attempts are rate limited per IP address (20 per minute); beyond that you get
429with aRetry-Afterheader.