Skip to content

Error reference

Standard error object

Most error responses are JSON with the following shape:

{
"error": "Human-readable message",
"code": "OPTIONAL_MACHINE_CODE",
"details": {}
}
FieldTypeDescription
errorstringShort description suitable for logs and UI
codestringOptional stable code (LIMIT_EXCEEDED, FEATURE_REQUIRED, …)
detailsobjectOptional extra context (limits, validation fields, stack in development)

Not every endpoint returns code or details; treat error as the primary message.


HTTP status codes

StatusWhen it happens
400Invalid JSON, missing required fields, malformed URLs
401Missing or invalid credentials where authentication is required
403Valid session but not allowed (wrong owner, plan missing feature, quota exceeded)
404Unknown route or missing resource (endpoint, log, key)
413Request body larger than plan allows (webhook ingest)
429Rate or daily quota exceeded
500Unexpected server error
{
"error": "Unauthorized"
}

Common scenarios

SymptomLikely causeWhat to do
401 on /api/*Session or credential invalidSign in again in the web app or fix the API key you pass to the endpoint
403 FEATURE_REQUIREDPlan does not include API keys, exports, advanced features, etc.Upgrade plan or use an alternative flow
403 LIMIT_EXCEEDEDToo many endpoints, keys, or permanent endpointsDelete unused resources or upgrade
404 on /h/:idEndpoint expired or wrong IDCreate a new endpoint or copy the correct UUID
413 on webhookPayload over max_request_sizeReduce body size or upgrade plan
429Too many requests in a window or per dayBack off, batch work, or upgrade

Troubleshooting checklist

  1. Confirm you are using the correct base URL and, for WebSocket, a valid API key on the query string.
  2. Compare code (when present) with your integration’s expected behavior.
  3. If 500 persists, retry with backoff where possible and contact support with the approximate time (UTC) and request context.