HL7 FHIR API

OpenAPI specification for the HL7 FHIR R4 API hosted on HAPI FHIR Test Server. FHIR (Fast Healthcare Interoperability Resources) is a standard for exchanging healthcare data electronically. This spec includes the most commonly used FHIR resources for healthcare data exchange.

Claim this API

Are you the operator of HL7 FHIR API? Submit a claim to establish contact with us.

Report an Issue

Found something wrong with HL7 FHIR API? Let us know about broken links, changed auth, deprecated endpoints, or other issues.

Base URL: https://hapi.fhir.org/baseR4/
Auth: none
Endpoints: 28
Reachable: yes
CORS: unknown
Last checked: 2026-03-14 16:08:22.757846

Links

Homepage: https://www.hl7.org/fhir/
API Base: https://hapi.fhir.org/baseR4/
Documentation:
SDKs:

100.0%

Uptime (7d)

535ms

Avg latency (7d)

100

Probes (7d)

Latency (7d)

Success Rate (7d)

Topics

HEALTH

Endpoints

Method Path Summary Auth Last Status Latency
POST / server-transaction: Execute a FHIR Transaction (or FHIR Batch) Bundle none
GET /AllergyIntolerance Search allergies none 200 529ms
POST /AllergyIntolerance create-type: Create a new AllergyIntolerance instance none
GET /AllergyIntolerance/{id} Read allergy/intolerance none 404 478ms
PUT /AllergyIntolerance/{id} update-instance: Update an existing AllergyIntolerance instance, or create using a client-assigned ID none 400 483ms
PATCH /AllergyIntolerance/{id} instance-patch: Patch a resource instance of type AllergyIntolerance by ID none 400 475ms
DELETE /AllergyIntolerance/{id} instance-delete: Perform a logical delete on a resource instance none 200 487ms
GET /Appointment search-type: Search for Appointment instances none 200 503ms
POST /Appointment create-type: Create a new Appointment instance none
GET /Appointment/{id} read-instance: Read Appointment instance none 404 488ms
PUT /Appointment/{id} update-instance: Update an existing Appointment instance, or create using a client-assigned ID none 400 485ms
PATCH /Appointment/{id} instance-patch: Patch a resource instance of type Appointment by ID none 400 475ms
DELETE /Appointment/{id} instance-delete: Perform a logical delete on a resource instance none 200 477ms
GET /Condition Search conditions none 200 524ms
POST /Condition create-type: Create a new Condition instance none
GET /Condition/{id} Read condition none 404 474ms
PUT /Condition/{id} update-instance: Update an existing Condition instance, or create using a client-assigned ID none 400 1474ms
PATCH /Condition/{id} instance-patch: Patch a resource instance of type Condition by ID none 400 472ms
DELETE /Condition/{id} instance-delete: Perform a logical delete on a resource instance none 200 481ms
GET /DiagnosticReport Search diagnostic reports none 200 478ms
GET /DiagnosticReport/{id} Read diagnostic report
GET /Encounter Search encounters none 200 583ms
POST /Encounter create-type: Create a new Encounter instance none
GET /Encounter/{id} Read encounter none 404 476ms
PUT /Encounter/{id} update-instance: Update an existing Encounter instance, or create using a client-assigned ID none 400 508ms
PATCH /Encounter/{id} instance-patch: Patch a resource instance of type Encounter by ID none 400 476ms
DELETE /Encounter/{id} instance-delete: Perform a logical delete on a resource instance none 200 471ms
GET /Immunization Search Immunization resources none 200 498ms
GET /Location Search locations
GET /Location/{id} Read location
GET /Medication Search Medication resources none 200 490ms
GET /Medication/{id} Read a specific Medication none 404 489ms
GET /MedicationRequest Search medication requests none 200 510ms
GET /MedicationRequest/{id} Read medication request
GET /Observation Search observations none 200 535ms
POST /Observation create-type: Create a new Observation instance none
GET /Observation/{id} Read observation none 404 483ms
PUT /Observation/{id} update-instance: Update an existing Observation instance, or create using a client-assigned ID none 400 473ms
PATCH /Observation/{id} instance-patch: Patch a resource instance of type Observation by ID none 400 476ms
DELETE /Observation/{id} instance-delete: Perform a logical delete on a resource instance none 200 491ms
GET /Organization Search organizations none 200 477ms
POST /Organization create-type: Create a new Organization instance none
GET /Organization/{id} Read organization none 404 482ms
PUT /Organization/{id} update-instance: Update an existing Organization instance, or create using a client-assigned ID none 400 476ms
PATCH /Organization/{id} instance-patch: Patch a resource instance of type Organization by ID none 400 476ms
DELETE /Organization/{id} instance-delete: Perform a logical delete on a resource instance none 200 482ms
GET /Patient Search patients none 200 500ms
POST /Patient create-type: Create a new Patient instance none
GET /Patient/{id} Read patient none 200 474ms
PUT /Patient/{id} update-instance: Update an existing Patient instance, or create using a client-assigned ID none 400 476ms
PATCH /Patient/{id} instance-patch: Patch a resource instance of type Patient by ID none 400 483ms
DELETE /Patient/{id} instance-delete: Perform a logical delete on a resource instance none 200 477ms
GET /Practitioner Search practitioners none 200 523ms
POST /Practitioner create-type: Create a new Practitioner instance none
GET /Practitioner/{id} Read practitioner none 404 480ms
PUT /Practitioner/{id} update-instance: Update an existing Practitioner instance, or create using a client-assigned ID none 400 483ms
PATCH /Practitioner/{id} instance-patch: Patch a resource instance of type Practitioner by ID none 400 476ms
DELETE /Practitioner/{id} instance-delete: Perform a logical delete on a resource instance none 200 481ms
GET /Procedure Search procedures none 200 510ms
GET /Procedure/{id} Read procedure
GET /metadata Get server capabilities none 200 631ms