Skip to main content

Error envelope

All error responses use a consistent JSON envelope:

Canonical body validation (VALIDATION_ERROR)

POST /v1/submissions returns VALIDATION_ERROR when the JSON does not match canonical_submission_v1. Details use Zod flatten format:
  • details.formErrors — top-level issues
  • details.fieldErrors — map of JSON paths to message arrays
Common fixes:
  • Map questionnaire into subject.* (not legacy markers.healthQuestionnaireMarkers)
  • Use structured sourceMetadata.markerRanges objects { unit, lowerBound, upperBound } (not display strings)
  • Omit currentFrequency for smoking.status: "former"
  • Align familyHistory.*.aliveStatus with currentAge / deathAge (only send the age that applies)
See Canonical submission JSON.

Blood panel validation (SUBMISSION_VALIDATION_ERROR)

When the 14-marker panel fails code/unit/bounds checks, the code may be SUBMISSION_VALIDATION_ERROR with details as an array:

Partner id mismatch (PARTNER_ID_MISMATCH)

403 when partnerId in the body does not match the authenticated credential UUID.

HTTP status codes

Partner-safe notices

GET /v1/results may include notices[] on outcomes with informational messages. Notices are not errors. They never contain internal model codes or stack traces.

x-correlation-id

Include a unique x-correlation-id on every POST. The platform binds it to logs and error responses. Provide it when reporting issues to partner@idunox.com.