Skip to main content

Sandbox: synthetic data only. Real patient data is refused.

Developers

EDFlow Integration API

Push ED workflow events. Receive patient requests. FHIR R4, HL7 v2 and JSON, secured with SMART Backend Services.

Ingest

Events, FHIR and HL7 v2 over HTTPS

Sync requests

Read, acknowledge and webhooks

Secure by default

private_key_jwt, 5-minute scoped tokens, IP allowlists, mTLS, audit

Built on standards

  • OAuth 2.0 / SMART Backend Services
  • FHIR R4
  • HL7 v2
  • OpenAPI 3.1
  • Standard Webhooks
  • RFC 9457

Get a token and send a heartbeat

export EDFLOW_TOKEN_URL='https://api.sandbox.edflow.space/oauth/token'
export EDFLOW_CLIENT_ID='your-client-id'
# export EDFLOW_CLIENT_SECRET from your secrets manager

printf '%s' '{
  "events": [
    {
      "data": {
        "queueDepth": 0
      },
      "id": "quickstart:hb:2026-01-01T00:00:00Z",
      "occurredAt": "2026-01-01T00:00:00Z",
      "source": {
        "feed": "adt",
        "kind": "ehr",
        "system": "other"
      },
      "specVersion": "1.0",
      "type": "system.heartbeat"
    }
  ]
}' > body.json
EDFLOW_ACCESS_TOKEN=$(curl -sS "$EDFLOW_TOKEN_URL" \
  -u "$EDFLOW_CLIENT_ID:$EDFLOW_CLIENT_SECRET" \
  -d grant_type=client_credentials -d scope='events:write' \
  | python3 -c 'import json,sys; print(json.load(sys.stdin)["access_token"])')
curl -sS -X POST 'https://api.sandbox.edflow.space/v1/events/batch' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $EDFLOW_ACCESS_TOKEN" \
  --data-binary @body.json

For hospital IT and security reviewers

Request sandbox access

For organizations not yet onboarded. We reply by email.