Skip to main content
Every Partner API error returns a JSON envelope with a stable code to branch on, a broad type tied to the HTTP status, a readable message and a request_id. This page is the single list of error codes, grouped by area, with what each one means. Fix the request on a 4xx error, and retry 5xx and network errors with backoff and the same Idempotency-Key. Last reviewed: 2026-11-04 Other Partner API pages link here instead of repeating codes. Retry rules for submissions are in Partner API idempotency, and request limits in Rate limits.

What does an error look like?

Errors returned by the Partner API share this shape:
Some errors add a field with more context, for example current on schema_outdated and current_notice_version on consent_notice_outdated. Error responses never contain doctor notes or file names, and never repeat an answer value or identifier you sent: answer errors name the question_key with a fixed message, and a national identifier is never echoed. The one thing echoed back is a question key: when you answer a key that is not allowed, errors[].question_key is the key you sent. Two responses fall outside this shape:
  • When the Partner API is not available to your account, every route answers 404 with only {"error": {"type": "not_found"}}.
  • An unexpected server failure can return a 500 without this envelope. Retry it like any 5xx.

Types

A 404 is also what you get for a resource of another partner or of the other mode: the API never confirms that such a resource exists.

Codes

Authentication and access

Requests and pagination

Idempotency

Submission

Files

Consultations, information requests and test mode

Webhooks

How should you handle errors?

  • 4xx: fix the request. Do not retry unchanged, except 409 idempotency_in_progress, 409 consultation_busy and 429.
  • 5xx and network errors: retry with backoff. For submissions, reuse the same Idempotency-Key and the same body so a retry within 24 hours returns the stored result instead of creating a second consultation. See Partner API idempotency.
  • Unknown codes: new codes can be added and existing codes keep their meaning. Handle a code you do not know by its HTTP status and type.

Frequently asked questions

Should my code branch on the error code or the message?

On the code field. It is stable and machine-readable, while the message field is English text that can change.

Which errors can I retry unchanged?

409 idempotency_in_progress, 409 consultation_busy, 429 and 5xx errors. Fix every other 4xx error before you send the request again.

What should I send Hi Doctor when I ask about an error?

The request_id from the error. If you send an X-Request-ID header, that value is used as the request_id.

Why do I get 404 for a consultation I know exists?

A resource of another partner or of the other mode answers 404. Check that you use a key of the same mode, test or live, as the consultation.

Can new error codes appear?

Yes. New codes can be added, and existing codes keep their meaning. Handle an unknown code by its HTTP status and type.

Do error responses repeat patient data?

No. Errors never contain doctor notes or file names and never repeat an answer value or identifier you sent. The only value echoed back is a question key that was not allowed.

Next steps

Partner API idempotency

Retry submissions safely with the same Idempotency-Key.

Rate limits

Request limits and how to handle 429.

Submit a consultation

The request most submission errors come from.