Authentication
All API requests require an API key passed in the Authorization header.
API keys are created from your dashboard. Each key is tied to your account and shares its scan quota.
Authorization: Bearer sa_live_your_api_key_here
Security: Keep your API key secret. Do not expose it in client-side code, public repositories, or logs. If compromised, delete it immediately from your dashboard and create a new one.
Rate limits
| Scan creation | 5 requests / minute + daily plan quota |
| Other endpoints | 30 requests / minute |
When a limit is exceeded, the API returns 429 Too Many Requests.
Errors
Errors return a JSON body with a detail field:
{ "detail": "Invalid API key" }
| Code | Meaning |
|---|---|
| 400 | Bad request (missing or invalid parameters) |
| 401 | Invalid or missing API key |
| 404 | Resource not found |
| 429 | Rate limit or daily quota exceeded |
| 500 | Internal server error |
Guides by task
Each guide chains the calls in the order you make them, shows what to read in each response, then where to find the detail. Examples in curl and Python.
Endpoint reference
Every endpoint is generated from the API itself, so it cannot drift from what the service actually accepts. Paste your API key once on that page and call any of them from there.
Calls you send from there are real. They run against production with the key you provide, count against your quotas, and operations marked as destructive delete data for good. There is no sandbox.
Prefer the raw schema? Download the OpenAPI document and generate a client from it.