FHIR resources
The Huli Public API serves both FHIR R4 (the stable default) and FHIR R5. Auth, scopes, and pagination are identical across releases — only the wire shapes and the base path (/fhir/R4 vs /fhir/R5) differ. Not sure which to target? See Choosing R4 vs R5.
Implementation Guide
Huli publishes a FHIR Implementation Guide with the profiles, extensions, and value sets for both R4 and R5 — see the FHIR Implementation Guide.
FHIR R4 resources
The stable default surface.
| Resource | Interactions | Scopes |
|---|---|---|
| Patient | read, search-type, create, update, $everything | system/Patient.rs, system/Patient.cru |
| Appointment | read, search-type, create, update | system/Appointment.rs, system/Appointment.cru |
| Encounter | read, search-type, create, update | system/Encounter.rs, system/Encounter.cru |
| Observation | read, search-type, create, update | system/Observation.rs, system/Observation.cru |
| MedicationRequest | read, search-type, create, update | system/MedicationRequest.rs, system/MedicationRequest.cru |
| ServiceRequest | read, search-type, create, update | system/ServiceRequest.rs, system/ServiceRequest.cru |
| Composition | read, search-type, create, update | system/Composition.rs, system/Composition.cru |
| DocumentReference | read, search-type, create, update, $upload | system/DocumentReference.rs, system/DocumentReference.cru |
| Practitioner | read, search-type | system/Practitioner.rs |
| Organization | read, search-type | system/Organization.rs |
| Subscription | read, search-type, create, update, delete, $replay, $stats, $deliveries | system/Subscription.rs, system/Subscription.crud |
| Location | read, search-type | system/Appointment.rs |
| HealthcareService | read, search-type | system/Appointment.rs |
| PractitionerRole | read, search-type | system/Practitioner.rs |
| Schedule | read, search-type | system/Appointment.rs |
| Slot | search-type | system/Appointment.rs |
| Device | read, search-type | system/Appointment.rs |
| CodeSystem | read | |
| ValueSet | $expand |
FHIR R5 resources
The newer wire shapes — same token, same scopes, base path /fhir/R5.
| Resource | Interactions | Scopes |
|---|---|---|
| Patient | read, search-type, create, update, $everything | system/Patient.rs, system/Patient.cru |
| Appointment | read, search-type, create, update | system/Appointment.rs, system/Appointment.cru |
| Encounter | read, search-type, create, update | system/Encounter.rs, system/Encounter.cru |
| Observation | read, search-type, create, update | system/Observation.rs, system/Observation.cru |
| MedicationRequest | read, search-type, create, update | system/MedicationRequest.rs, system/MedicationRequest.cru |
| ServiceRequest | read, search-type, create, update | system/ServiceRequest.rs, system/ServiceRequest.cru |
| Composition | read, search-type, create, update | system/Composition.rs, system/Composition.cru |
| DocumentReference | read, search-type, create, update, $upload | system/DocumentReference.rs, system/DocumentReference.cru |
| Practitioner | read, search-type | system/Practitioner.rs |
| Organization | read, search-type | system/Organization.rs |
| HealthcareService | read, search-type | system/Appointment.rs |
| PractitionerRole | read, search-type | system/Practitioner.rs |
| Schedule | read, search-type | system/Appointment.rs |
| Slot | search-type | system/Appointment.rs |
Subscription, Location, Device, CodeSystem, ValueSet are served on
/fhir/R4only (forwards-compatible — not duplicated onto R5); find them in the R4 table above.
Authentication
All resource requests require a Bearer token from POST /auth/token. See Authentication for the full SMART Backend Services flow, and Scopes for the access model.