Dike

Errors reference

Every stable error code across the API, by HTTP status.

Every error response is application/problem+json (RFC 7807):

{
  "type": "https://dike.it.com/errors/not_found",
  "title": "Not Found",
  "status": 404,
  "detail": "No document with canonical_id 'eg-leg-9999-1'.",
  "code": "not_found"
}

Match on code — it's the only field guaranteed stable across releases. title/detail are human-readable and can be reworded without notice.

StatuscodeWhere it shows up
401unauthorizedAny /v1/* route, missing or invalid API key
403plan_required/v1/reason on a Free plan
404not_found/v1/document/{canonical_id}, unknown ID
404citation_not_found/v1/cite, citation parsed but no document matches
422citation_unparseable/v1/cite, citation string didn't match any known pattern
422validation_errorAny endpoint, request body failed schema validation
429rate_limitedAny endpoint, over the plan's per-minute limit
503upstream_unavailableMongo, Qdrant, the embedding service, or the LLM is unreachable

See Rate limits & errors for the per-plan limits behind 429.