1. API Reference
  2. Conventions
  3. Errors
Website
  • API overview
  • API quickstart
  • Authentication
  • Project scoping
  • Requests and responses
  • Pagination and filtering
  • Errors
  • GETList supported database engines
  • POSTList projects
  • POSTCreate a project
  • GETGet a project
  • DELETEDelete a project
  • PATCHUpdate a project
  • POSTCreate a source
  • POSTList sources
  • GETGet source details
  • DELETEDelete a source
  • PATCHUpdate a source
  • POSTCreate secret metadata
  • POSTList secret metadata
  • GETGet secret metadata
  • DELETEDelete secret metadata
  • PATCHUpdate secret metadata
  • POSTCreate a schedule
  • POSTList schedules
  • POSTSummarize schedule statuses
  • GETGet a schedule
  • DELETEDelete a schedule
  • PATCHUpdate a schedule
  • DELETERemove a schedule gate
  • POSTActivate or pause a schedule
  • POSTQueue a manual check
  • POSTCreate an immutable report
  • POSTList reports
  • GETGet report details
  • DELETEDelete a report
  • POSTDownload a report
  • POSTGet the API-key scope catalog
  • POSTCreate an API key
  • POSTList API-key metadata
  • GETGet API-key metadata
  • DELETEDelete an API key
  • PATCHUpdate API-key metadata
  • POSTCreate a notification channel
  • POSTList notification channels
  • POSTResolve notification channels by ID
  • GETGet notification channel details
  • DELETEDelete a notification channel
  • PATCHUpdate a notification channel
  • POSTSend a test notification
  • POSTCreate a project worker
  • POSTList project workers
  • GETGet worker details
  • DELETEDelete a worker
  • PATCHUpdate a worker
  • POSTRead live worker agent logs
  • POSTList checks
  • POSTSummarize check statuses
  • GETGet check details
  • POSTGet check log sections
  • POSTDownload a check log
  • POSTDownload check audit evidence
  • POSTList notification messages
  • GETGet notification message details

Errors

Interpret RestoreTrust error envelopes, status codes, retries, and project-boundary responses.

Loading documentation…

Pagination and filtering< PreviousAPI resourcesNext >

Powered by heyo

On this page

Status codesRetry safelyRecord useful diagnostics

JSON errors use a consistent envelope:

json
{  "status": "error",  "message": "Human-readable reason"}

Some errors add a stable code, structured detail, or quota information. Quota values in this example are illustrative; use the values returned for the current organization and plan:

json
{  "status": "error",  "code": "quota_exceeded",  "message": "Quota exceeded for max_schedules",  "quota": {    "key": "max_schedules",    "limit": 10,    "used": 10  }}

Status codes

StatusMeaningClient action
400Invalid JSON, field, filter, cursor, or project-scoping patternCorrect the request; do not retry unchanged.
401Missing, invalid, paused, expired, or under-scoped credentialReplace the credential or grant the required scope.
403Authenticated but not allowed, project mismatch on a scoped request, or plan/quota restrictionCheck key binding, permissions, plan, and quota.
404Resource not found or intentionally hidden across a project boundaryVerify the ID and use the API key bound to the owning project.
409Current resource state prevents the operation, such as a referenced resource, running check, or unavailable report PDFInspect code; resolve the conflict or wait for PDF generation when pending.
410Deprecated endpoint removedFollow the replacement named in the error message.
429Request limit or temporary concurrency limit exceededHonor Retry-After when present and back off before retrying.
502A requested dependent read or delivery failedRetry with bounded backoff if the operation is safe.
503A required service or feature is temporarily unavailableRetry with bounded backoff; honor Retry-After when present.
504A live request timed outRetry with bounded backoff.
404 protects project boundaries

A resource that belongs to another project is reported as not found. The API does not reveal whether that ID exists outside the caller's project.

Retry safely

Retry 429, 502, 503, and 504 only when the endpoint and operation are safe for your workflow. Use exponential backoff with jitter and a maximum attempt count. Do not automatically retry validation, authentication, permission, or conflict errors.

The request rate limiter returns 429 with Retry-After in whole seconds until the exceeded limit admits another request (at least one second). Temporary concurrency limits can also return 429; honor the header when present and otherwise use bounded backoff. Limit values can vary by deployment, so integrations should not assume a fixed ceiling.

A report PDF returning 409 with code: "report_pdf_pending" is a wait condition: poll the existing report with backoff, then retry its download when ready. report_pdf_failed and report_pdf_unavailable need a different response; repeatedly downloading does not generate a PDF. See Reports.

Record useful diagnostics

Log the HTTP method, path template, response status, error code, and your own correlation identifier. Never log the X-API-Key value or credential-bearing request headers.

Related topics

  • Review response conventions
  • Fix project-scope errors
  • Secure API credentials