FHIR
FHIR endpoints for patient search, clinical timelines, resource CRUD, and bundle import.
The Platform API includes FHIR (Fast Healthcare Interoperability Resources) endpoints for workspaces with EHR integrations. These provide patient search, clinical timelines, resource CRUD, and data import.
Requires FHIR configuration. These endpoints are only available for workspaces with an EHR type and FHIR store URL configured. See Workspaces.
Capabilities
Status & Sync
GET
/v1/{workspace_id}/fhir/status
FHIR integration health, event counts, and sync heartbeat status
Patient Access
GET
/v1/{workspace_id}/fhir/patients
Search and list patients
GET
/v1/{workspace_id}/fhir/patients/{patient_id}/timeline
Patient event history
GET
/v1/{workspace_id}/fhir/patients/{patient_id}/summary
Structured clinical summary
Search: find patients by name, identifier, or MRN.
List: paginated patient list with a
sort_byparameter supporting+/-prefix for sort direction (e.g.,-last_event_atfor newest activity first,+created_atfor oldest first).Timeline: view a patient's event history (visits, encounters, procedures).
Summary: get a structured clinical summary.
Read-Optimized Views
Flattened, list-ready views over common resource types. Each view can optionally be scoped to a data source.
GET
/v1/{workspace_id}/fhir/views/patients
Patients with flattened demographics, conditions, medications, allergies, and insurance
GET
/v1/{workspace_id}/fhir/views/practitioners
Practitioners with name, NPI, specialty, and phone
GET
/v1/{workspace_id}/fhir/views/organizations
Organizations with name, phone, domain, industry, and address
GET
/v1/{workspace_id}/fhir/views/appointments
Appointments with date, status, patient, practitioner, location, and reason
GET
/v1/{workspace_id}/fhir/views/locations
Facility-level Locations with address, phone, and hours of operation
GET
/v1/{workspace_id}/fhir/views/slots
Bookable Slots with start, end, status, and provider display name
The slot view resolves the provider display name from the Slot's schedule reference, so scheduling surfaces can show provider availability without joining against the raw Schedule resource.
Resource CRUD
GET
/v1/{workspace_id}/fhir/resources/{resource_type}
Search resources by type with standard FHIR search parameters
POST
/v1/{workspace_id}/fhir/resources/{resource_type}
Create a resource
GET
/v1/{workspace_id}/fhir/resources/{resource_type}/{resource_id}
Read a resource
PUT
/v1/{workspace_id}/fhir/resources/{resource_type}/{resource_id}
Update a resource
Resource responses include an entity_id field linking each FHIR resource to its corresponding world model entity. This enables direct navigation between FHIR resources and entity views without a separate lookup. The field is null when no entity link exists yet (e.g., newly created resources pending entity resolution).
Resource History
GET /v1/{workspace_id}/fhir/resources/{resource_type}/{resource_id}/history returns the version history for a single FHIR resource, ordered newest-first.
limit
integer (1-50)
10
Page size
offset
integer
0
Pagination offset
Each entry includes the event metadata (event_id, event_type, source, source_system, confidence, effective_at, created_at), the full resource data at that version, an is_current flag, and a fields_affected list of dot-path field names that changed compared to the previous version (e.g., name.0.given, telecom.0.value). The response includes total, has_more, and next_offset for pagination. Returns 404 if the resource has no events.
Bundle Import
POST
/v1/{workspace_id}/fhir/import
Import a FHIR Bundle
POST
/v1/{workspace_id}/fhir/import-stream
Import FHIR resources as NDJSON (one resource per line)
Import a FHIR Bundle to upsert multiple resources in a single request. Useful for bulk data loads. For payloads larger than the buffered-body size cap on /fhir/import, stream resources as NDJSON to /fhir/import-stream.
API Reference
Last updated
Was this helpful?

