Error codes

The standard error envelope and stable machine-readable error codes.

Errors use a consistent envelope with a stable machine-readable code:

{
  "error": {
    "code": "insufficient_scope",
    "message": "This request requires the 'clips:read' scope.",
    "details": { "required_scope": "clips:read" }
  },
  "request_id": "req_..."
}
HTTPcodeMeaning
401missing_api_keyNo API key was provided
401invalid_api_keyKey not recognized or malformed
401key_revokedKey or its app has been revoked/disabled
401key_expiredKey has passed its expiry
401invalid_signatureHMAC request signature failed (signed mode)
403ip_not_allowedSource IP not in the app allowlist
403insufficient_scopeKey lacks the required scope
429rate_limitedPer-key rate limit exceeded (see Retry-After)
400validation_errorInvalid request body or parameters
404not_foundResource does not exist in your organization
409idempotency_conflictDuplicate in-flight/idempotent request
501not_implementedEndpoint reserved but not available yet (e.g. highlight generate)
500internal_errorUnexpected server error

Always branch on error.code, not the human-readable message (which may change).
Include request_id when contacting support.


Did this page help you?