CHEESE API

Errors

One stable error envelope, status mapping, retry guidance, and correlation IDs.

Suggest an edit
{
  "error": {
    "code": "invalid_smiles",
    "message": "Query is not a valid molecule.",
    "field": "query_smiles",
    "request_id": "c9d4dfcb-3dc7-4d25-8c31-67d494f3332d",
    "retryable": false
  }
}
StatusMeaning
400Semantic request error
401Missing or invalid key
403Valid key without entitlement
404Unknown resource or chemical space
409Idempotency/resource conflict
413Body, synchronous work, or declared run budget exceeded
422Structural schema validation
429Caller quota/admission limit; honor Retry-After
503Temporary dependency/capacity failure
504synchronous_timeout after 10 seconds (use /api/v2/runs) or a 60-second run-item timeout

Retry only when retryable=true, with bounded exponential backoff and jitter. Preserve Idempotency-Key for run creation and x-request-id when contacting support. Invalid structures, unsupported capabilities, contradictions, and empty exact results are not transient.

Tenant run admission failures use tenant_run_quota_exceeded. The error details.quota identifies the exceeded dimension when it can be determined; honor Retry-After and retry with the same Idempotency-Key after existing runs reach a terminal state.