Errors
Errors use conventional HTTP status codes and a consistent JSON body, always including a request_id you can find in your request logs.
https://api.mytabulon.com/v1
Error shape
{
"error": {
"type": "invalid_request_error",
"code": "insufficient_scope",
"message": "This API key is missing the required scope: clients.write.",
"request_id": "req_8f4a1c2e9b..."
}
}Status codes
400 invalid request · 401 missing or invalid key · 402 plan limit reached · 403 missing scope · 404 not found · 409 conflict (duplicates, idempotency mismatch) · 429 rate limited · 5xx server errors. The code field is stable and safe to branch on.
Debugging
Every response carries an X-Request-Id header. Paste it into the Request logs page of the dashboard to see exactly what happened, including latency and the key used.