Errors
400— validation. Two alternative shapes, never combined in one response. Field validation failures — each offending field maps to a list of messages:
{ "plaintiff_name": ["This field is required."]}Cross-field rule violations (the conditional-requirement rules — “required when”, “at least one of”, etc.) arrive under non_field_errors, and are returned only once field-level validation passes:
{ "non_field_errors": [ "Fields 'policy_number' and 'claim_number' can not both be empty.You must define one (or both) of the fields." ]}401— missing or bad token. NoAuthorizationheader:{"detail": "Authentication credentials were not provided."}. Header present but the token is invalid or expired:{"detail": "Invalid token."}.403— not currently returned by the partner API. Every partner endpoint only requires an authenticated user; cross-organization access to a case is reported as404(below), not403, so as not to leak whether a case exists outside your organization.404— unknowncase_ref, a case your organization can’t access, or results not yet available on the results endpoint.409— two sources with different bodies. Cancel returns it for a non-cancellable state (already closed, substantially complete, or intake still processing) with anerror-keyed body — see the endpoint’s schema for the specificerrorcode. The file-append endpoint returns it when the per-case cap is reached (25 files or 100 MB total per case) with adetail-keyed body:{"detail": "Per-case file limit reached (25 files / 104857600 bytes)."}.429— rate limited. Most endpoints allow100/minper authenticated user; the file-append endpoint (POST .../cases/{case_ref}/files) is capped separately at60/min. Body:{"detail": "Request was throttled. Expected available in <N> seconds."}. HonorRetry-Afterwhen present and retry with exponential backoff.- File-level failures are reported differently by endpoint: case creation reports each file’s outcome per-file in the
attachmentsarray viaerror_code— the case itself still succeeds. The single-file append endpoint instead fails the whole request with400and{"detail": ..., "error_code": ...}. See each endpoint’serror_codetable.