Skip to navigation

Submit an ingestion batch

Preview

Submit a batch of surgery/case records. The request envelope is validated synchronously; if any row is invalid the whole request is rejected (422) and no job is created. On success a job is created and rows are processed asynchronously — read a case with GET /cases/{caseId} or subscribe to the per-case ingestion.case.status_changed webhook.

caseId is the reconciliation key: resubmitting a row with the same caseId updates the existing record rather than creating a duplicate.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Headers

Orchestra-VersionstringOptional

Optional date-based API version (e.g. 2026-07-13). When omitted, the version pinned to your client at onboarding is used.

Request

This endpoint expects a list of objects.
caseIdstringRequired

Stable case identifier. Reconciliation key — resubmission updates in place.

patientNamestringRequired
phonestringRequired
E.164 phone number.
dateOfBirthdateRequired

ISO-8601 date (YYYY-MM-DD).

dateOfServicedateRequired

ISO-8601 date (YYYY-MM-DD).

statusenumRequired
Allowed values:
genderenumRequired
Allowed values:
zipstringRequired

5-digit US ZIP code.

mrnstringOptional
Medical record number.
emailstringOptionalformat: "email"
leadSurgeonstringOptional
serviceLinestringOptional
proceduresstringOptional

Free-text procedure description.

locationstringOptional
patientClassenumOptional
Allowed values:
addressLine1stringOptional
addressLine2stringOptional
citystringOptional
statestringOptional

Two-letter US state code.

cancelDatedateOptional

ISO-8601 date (YYYY-MM-DD). Present when the case is cancelled.

cancelReasonstringOptional
commentsstringOptional

Response

Batch accepted; processing asynchronously.

jobIdstringformat: "uuid"
Batch correlation id. Also carried on each case webhook event.
caseIdslist of strings

The caseIds accepted for processing, echoed for confirmation.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
413
Content Too Large Error
422
Unprocessable Entity Error
429
Too Many Requests Error