Errors

Every non-2xx response carries an RFC 9457 problem document with application/problem+json content type.

Shape

{
  "type":       "https://api.datocapital.com/problems/validation-failed",
  "title":      "Validation failed",
  "status":     400,
  "detail":     "Query parameter 'page_size' must be between 1 and 100.",
  "instance":   "/v3/companies",
  "request_id": "K9JWVA4TOL8BETYWLETJBFYG4P"
}

request_id is also returned as the X-Request-Id response header on every response (success or failure). Quote it when filing a bug; we can replay the exact request from the audit log.

Common types

typeHTTPcause
validation-failed400Bad path or query parameter.
missing-credentials401No Authorization header.
invalid-credentials401Bearer token unknown.
plan-insufficient403Endpoint is gated above your plan.
resource-not-found404UEC / id is unknown to the public surface.
rate-limited429Per-user-minute window exceeded.
upstream-error502An upstream service failed unexpectedly.
upstream-timeout504An upstream service did not respond in time.
internal-error500Unhandled. request_id us โ€” these are bugs.

What you won't see

  • HTML error pages.
  • Stack traces in detail.
  • Internal IDs leaking into detail strings โ€” only public identifiers ever surface.