Skip to content

Ingest a batch of events

1 to 100 normalized events, applied in array order, each atomically and independently. The 200 body is byte-compatible with `/ehr/v1/events`, so an engine can switch transports without changing response handling. A per-event `processing_error` is `retryable`: resend that event (same id).

POST
/v1/events/batch

1 to 100 normalized events, applied in array order, each atomically and independently. The 200 body is byte-compatible with /ehr/v1/events, so an engine can switch transports without changing response handling. A per-event processing_error is retryable: resend that event (same id).

Authorization

AuthorizationBearer <token>

OAuth 2.0 client credentials. private_key_jwt (SMART Backend Services asymmetric) is recommended; client secrets need an IP allowlist or mTLS outside the sandbox.

In: header

Scope: events:write

Header Parameters

Api-Version?enum

Overrides the app's pinned dated version for this request.

Idempotency-Key?string

1–255 characters of [A-Za-z0-9._:-] (a UUID v4 is recommended); never PHI. Stored 24 hours per app.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/v1/events/batch" \  -H "Content-Type: application/json" \  -d '{    "events": []  }'
{  "deliveryId": "string",  "results": [    {      "edflowEncounterId": "string",      "error": {        "code": "string",        "message": "string",        "path": "string",        "retryable": true      },      "id": "string",      "note": "string",      "status": "accepted",      "warnings": [        {          "code": "string",          "path": "string"        }      ]    }  ],  "summary": {    "accepted": -9007199254740991,    "buffered": -9007199254740991,    "duplicate": -9007199254740991,    "ignored": -9007199254740991,    "quarantined": -9007199254740991,    "rejected": -9007199254740991,    "superseded": -9007199254740991  }}

Was this page helpful?