FHIR Successful Response Status Codes

HTTP status codes for successful FHIR R4 and R6 endpoint responses.

Scope and source

This reference lists the successful HTTP response codes documented for FHIR R4 and R6 endpoints.

Resource pages include matching status-code tables for per-resource workflows.

For common HTTP error codes and FHIR-formatted error responses, see Reference: OperationOutcome Errors.

Successful HTTP status code meanings

CodeMeaning in current FHIR API responses
200 Successful operation response (resource, bundle, or OperationOutcome depending on endpoint).
201 The server successfully created a resource.
204 The server successfully completed a standard delete and returned no response body.

FHIR R4 successful response status-code matrix

EndpointMethodStatus code(s)
/api/fhir/r4/Condition GET 200
/api/fhir/r4/Condition POST 201
/api/fhir/r4/Condition/$purgeDeleted POST 200
/api/fhir/r4/Condition/{rid} DELETE 204
/api/fhir/r4/Condition/{rid} GET 200
/api/fhir/r4/Condition/{rid} PUT 200
/api/fhir/r4/Condition/{rid}/$hardDelete POST 200
/api/fhir/r4/Condition/{rid}/_history/{vid} GET 200
/api/fhir/r4/Device GET 200
/api/fhir/r4/Device POST 201
/api/fhir/r4/Device/$purgeDeleted POST 200
/api/fhir/r4/Device/{rid} DELETE 204
/api/fhir/r4/Device/{rid} GET 200
/api/fhir/r4/Device/{rid} PUT 200
/api/fhir/r4/Device/{rid}/$hardDelete POST 200
/api/fhir/r4/Device/{rid}/_history/{vid} GET 200
/api/fhir/r4/DiagnosticReport GET 200
/api/fhir/r4/DiagnosticReport POST 201
/api/fhir/r4/DiagnosticReport/$purgeDeleted POST 200
/api/fhir/r4/DiagnosticReport/{rid} DELETE 204
/api/fhir/r4/DiagnosticReport/{rid} GET 200
/api/fhir/r4/DiagnosticReport/{rid} PUT 200
/api/fhir/r4/DiagnosticReport/{rid}/$hardDelete POST 200
/api/fhir/r4/DiagnosticReport/{rid}/_history/{vid} GET 200
/api/fhir/r4/Encounter GET 200
/api/fhir/r4/Encounter POST 201
/api/fhir/r4/Encounter/$purgeDeleted POST 200
/api/fhir/r4/Encounter/{rid} DELETE 204
/api/fhir/r4/Encounter/{rid} GET 200
/api/fhir/r4/Encounter/{rid} PUT 200
/api/fhir/r4/Encounter/{rid}/$hardDelete POST 200
/api/fhir/r4/Encounter/{rid}/_history/{vid} GET 200
/api/fhir/r4/Endpoint GET 200
/api/fhir/r4/Endpoint POST 201
/api/fhir/r4/Endpoint/$purgeDeleted POST 200
/api/fhir/r4/Endpoint/{rid} DELETE 204
/api/fhir/r4/Endpoint/{rid} GET 200
/api/fhir/r4/Endpoint/{rid} PUT 200
/api/fhir/r4/Endpoint/{rid}/$hardDelete POST 200
/api/fhir/r4/Endpoint/{rid}/_history/{vid} GET 200
/api/fhir/r4/Group GET 200
/api/fhir/r4/Group POST 201
/api/fhir/r4/Group/$purgeDeleted POST 200
/api/fhir/r4/Group/{rid} DELETE 204
/api/fhir/r4/Group/{rid} GET 200
/api/fhir/r4/Group/{rid} PUT 200
/api/fhir/r4/Group/{rid}/$hardDelete POST 200
/api/fhir/r4/Group/{rid}/_history/{vid} GET 200
/api/fhir/r4/Location GET 200
/api/fhir/r4/Location POST 201
/api/fhir/r4/Location/$purgeDeleted POST 200
/api/fhir/r4/Location/{rid} DELETE 204
/api/fhir/r4/Location/{rid} GET 200
/api/fhir/r4/Location/{rid} PUT 200
/api/fhir/r4/Location/{rid}/$hardDelete POST 200
/api/fhir/r4/Location/{rid}/_history/{vid} GET 200
/api/fhir/r4/Observation GET 200
/api/fhir/r4/Observation POST 201
/api/fhir/r4/Observation/$purgeDeleted POST 200
/api/fhir/r4/Observation/{rid} DELETE 204
/api/fhir/r4/Observation/{rid} GET 200
/api/fhir/r4/Observation/{rid} PUT 200
/api/fhir/r4/Observation/{rid}/$hardDelete POST 200
/api/fhir/r4/Observation/{rid}/_history/{vid} GET 200
/api/fhir/r4/Organization GET 200
/api/fhir/r4/Organization POST 201
/api/fhir/r4/Organization/$purgeDeleted POST 200
/api/fhir/r4/Organization/{rid} DELETE 204
/api/fhir/r4/Organization/{rid} GET 200
/api/fhir/r4/Organization/{rid} PUT 200
/api/fhir/r4/Organization/{rid}/$hardDelete POST 200
/api/fhir/r4/Organization/{rid}/_history/{vid} GET 200
/api/fhir/r4/Patient GET 200
/api/fhir/r4/Patient POST 201
/api/fhir/r4/Patient/$purgeDeleted POST 200
/api/fhir/r4/Patient/{rid} DELETE 204
/api/fhir/r4/Patient/{rid} GET 200
/api/fhir/r4/Patient/{rid} PUT 200
/api/fhir/r4/Patient/{rid}/$hardDelete POST 200
/api/fhir/r4/Patient/{rid}/_history/{vid} GET 200
/api/fhir/r4/Practitioner GET 200
/api/fhir/r4/Practitioner POST 201
/api/fhir/r4/Practitioner/$purgeDeleted POST 200
/api/fhir/r4/Practitioner/{rid} DELETE 204
/api/fhir/r4/Practitioner/{rid} GET 200
/api/fhir/r4/Practitioner/{rid} PUT 200
/api/fhir/r4/Practitioner/{rid}/$hardDelete POST 200
/api/fhir/r4/Practitioner/{rid}/_history/{vid} GET 200
/api/fhir/r4/PractitionerRole GET 200
/api/fhir/r4/PractitionerRole POST 201
/api/fhir/r4/PractitionerRole/$purgeDeleted POST 200
/api/fhir/r4/PractitionerRole/{rid} DELETE 204
/api/fhir/r4/PractitionerRole/{rid} GET 200
/api/fhir/r4/PractitionerRole/{rid} PUT 200
/api/fhir/r4/PractitionerRole/{rid}/$hardDelete POST 200
/api/fhir/r4/PractitionerRole/{rid}/_history/{vid} GET 200
/api/fhir/r4/Provenance GET 200
/api/fhir/r4/Provenance POST 201
/api/fhir/r4/Provenance/$purgeDeleted POST 200
/api/fhir/r4/Provenance/{rid} DELETE 204
/api/fhir/r4/Provenance/{rid} GET 200
/api/fhir/r4/Provenance/{rid} PUT 200
/api/fhir/r4/Provenance/{rid}/$hardDelete POST 200
/api/fhir/r4/Provenance/{rid}/_history/{vid} GET 200
/api/fhir/r4/RelatedPerson GET 200
/api/fhir/r4/RelatedPerson POST 201
/api/fhir/r4/RelatedPerson/$purgeDeleted POST 200
/api/fhir/r4/RelatedPerson/{rid} DELETE 204
/api/fhir/r4/RelatedPerson/{rid} GET 200
/api/fhir/r4/RelatedPerson/{rid} PUT 200
/api/fhir/r4/RelatedPerson/{rid}/$hardDelete POST 200
/api/fhir/r4/RelatedPerson/{rid}/_history/{vid} GET 200
/api/fhir/r4/ServiceRequest GET 200
/api/fhir/r4/ServiceRequest POST 201
/api/fhir/r4/ServiceRequest/$purgeDeleted POST 200
/api/fhir/r4/ServiceRequest/{rid} DELETE 204
/api/fhir/r4/ServiceRequest/{rid} GET 200
/api/fhir/r4/ServiceRequest/{rid} PUT 200
/api/fhir/r4/ServiceRequest/{rid}/$hardDelete POST 200
/api/fhir/r4/ServiceRequest/{rid}/_history/{vid} GET 200
/api/fhir/r4/Specimen GET 200
/api/fhir/r4/Specimen POST 201
/api/fhir/r4/Specimen/$purgeDeleted POST 200
/api/fhir/r4/Specimen/{rid} DELETE 204
/api/fhir/r4/Specimen/{rid} GET 200
/api/fhir/r4/Specimen/{rid} PUT 200
/api/fhir/r4/Specimen/{rid}/$hardDelete POST 200
/api/fhir/r4/Specimen/{rid}/_history/{vid} GET 200
/api/fhir/r4/metadata GET 200

FHIR R6 successful response status-code matrix

EndpointMethodStatus code(s)
/api/fhir/r6-ballot4/Device GET 200
/api/fhir/r6-ballot4/Device POST 201
/api/fhir/r6-ballot4/Device/$purgeDeleted POST 200
/api/fhir/r6-ballot4/Device/{rid} DELETE 204
/api/fhir/r6-ballot4/Device/{rid} GET 200
/api/fhir/r6-ballot4/Device/{rid} PUT 200
/api/fhir/r6-ballot4/Device/{rid}/$hardDelete POST 200
/api/fhir/r6-ballot4/Device/{rid}/_history/{vid} GET 200
/api/fhir/r6-ballot4/DeviceAssociation GET 200
/api/fhir/r6-ballot4/DeviceAssociation POST 201
/api/fhir/r6-ballot4/DeviceAssociation/$purgeDeleted POST 200
/api/fhir/r6-ballot4/DeviceAssociation/{rid} DELETE 204
/api/fhir/r6-ballot4/DeviceAssociation/{rid} GET 200
/api/fhir/r6-ballot4/DeviceAssociation/{rid} PUT 200
/api/fhir/r6-ballot4/DeviceAssociation/{rid}/$hardDelete POST 200
/api/fhir/r6-ballot4/DeviceAssociation/{rid}/_history/{vid} GET 200
/api/fhir/r6-ballot4/Encounter GET 200
/api/fhir/r6-ballot4/Encounter POST 201
/api/fhir/r6-ballot4/Encounter/$purgeDeleted POST 200
/api/fhir/r6-ballot4/Encounter/{rid} DELETE 204
/api/fhir/r6-ballot4/Encounter/{rid} GET 200
/api/fhir/r6-ballot4/Encounter/{rid} PUT 200
/api/fhir/r6-ballot4/Encounter/{rid}/$hardDelete POST 200
/api/fhir/r6-ballot4/Encounter/{rid}/_history/{vid} GET 200
/api/fhir/r6-ballot4/Location GET 200
/api/fhir/r6-ballot4/Location POST 201
/api/fhir/r6-ballot4/Location/$purgeDeleted POST 200
/api/fhir/r6-ballot4/Location/{rid} DELETE 204
/api/fhir/r6-ballot4/Location/{rid} GET 200
/api/fhir/r6-ballot4/Location/{rid} PUT 200
/api/fhir/r6-ballot4/Location/{rid}/$hardDelete POST 200
/api/fhir/r6-ballot4/Location/{rid}/_history/{vid} GET 200
/api/fhir/r6-ballot4/Observation GET 200
/api/fhir/r6-ballot4/Observation POST 201
/api/fhir/r6-ballot4/Observation/$purgeDeleted POST 200
/api/fhir/r6-ballot4/Observation/{rid} DELETE 204
/api/fhir/r6-ballot4/Observation/{rid} GET 200
/api/fhir/r6-ballot4/Observation/{rid} PUT 200
/api/fhir/r6-ballot4/Observation/{rid}/$hardDelete POST 200
/api/fhir/r6-ballot4/Observation/{rid}/_history/{vid} GET 200
/api/fhir/r6-ballot4/Patient GET 200
/api/fhir/r6-ballot4/Patient POST 201
/api/fhir/r6-ballot4/Patient/$purgeDeleted POST 200
/api/fhir/r6-ballot4/Patient/{rid} DELETE 204
/api/fhir/r6-ballot4/Patient/{rid} GET 200
/api/fhir/r6-ballot4/Patient/{rid} PUT 200
/api/fhir/r6-ballot4/Patient/{rid}/$hardDelete POST 200
/api/fhir/r6-ballot4/Patient/{rid}/_history/{vid} GET 200
/api/fhir/r6-ballot4/Practitioner GET 200
/api/fhir/r6-ballot4/Practitioner POST 201
/api/fhir/r6-ballot4/Practitioner/$purgeDeleted POST 200
/api/fhir/r6-ballot4/Practitioner/{rid} DELETE 204
/api/fhir/r6-ballot4/Practitioner/{rid} GET 200
/api/fhir/r6-ballot4/Practitioner/{rid} PUT 200
/api/fhir/r6-ballot4/Practitioner/{rid}/$hardDelete POST 200
/api/fhir/r6-ballot4/Practitioner/{rid}/_history/{vid} GET 200
/api/fhir/r6-ballot4/PractitionerRole GET 200
/api/fhir/r6-ballot4/PractitionerRole POST 201
/api/fhir/r6-ballot4/PractitionerRole/$purgeDeleted POST 200
/api/fhir/r6-ballot4/PractitionerRole/{rid} DELETE 204
/api/fhir/r6-ballot4/PractitionerRole/{rid} GET 200
/api/fhir/r6-ballot4/PractitionerRole/{rid} PUT 200
/api/fhir/r6-ballot4/PractitionerRole/{rid}/$hardDelete POST 200
/api/fhir/r6-ballot4/PractitionerRole/{rid}/_history/{vid} GET 200
/api/fhir/r6-ballot4/Provenance GET 200
/api/fhir/r6-ballot4/Provenance POST 201
/api/fhir/r6-ballot4/Provenance/$purgeDeleted POST 200
/api/fhir/r6-ballot4/Provenance/{rid} DELETE 204
/api/fhir/r6-ballot4/Provenance/{rid} GET 200
/api/fhir/r6-ballot4/Provenance/{rid} PUT 200
/api/fhir/r6-ballot4/Provenance/{rid}/$hardDelete POST 200
/api/fhir/r6-ballot4/Provenance/{rid}/_history/{vid} GET 200
/api/fhir/r6-ballot4/Subscription GET 200
/api/fhir/r6-ballot4/Subscription POST 201
/api/fhir/r6-ballot4/Subscription/$purgeDeleted POST 200
/api/fhir/r6-ballot4/Subscription/$status GET 200
/api/fhir/r6-ballot4/Subscription/{rid} DELETE 204
/api/fhir/r6-ballot4/Subscription/{rid} GET 200
/api/fhir/r6-ballot4/Subscription/{rid} PUT 200
/api/fhir/r6-ballot4/Subscription/{rid}/$hardDelete POST 200
/api/fhir/r6-ballot4/Subscription/{rid}/$status GET 200
/api/fhir/r6-ballot4/Subscription/{rid}/_history/{vid} GET 200
/api/fhir/r6-ballot4/SubscriptionTopic GET 200
/api/fhir/r6-ballot4/SubscriptionTopic POST 201
/api/fhir/r6-ballot4/SubscriptionTopic/$purgeDeleted POST 200
/api/fhir/r6-ballot4/SubscriptionTopic/{rid} DELETE 204
/api/fhir/r6-ballot4/SubscriptionTopic/{rid} GET 200
/api/fhir/r6-ballot4/SubscriptionTopic/{rid} PUT 200
/api/fhir/r6-ballot4/SubscriptionTopic/{rid}/$hardDelete POST 200
/api/fhir/r6-ballot4/SubscriptionTopic/{rid}/_history/{vid} GET 200
/api/fhir/r6-ballot4/metadata GET 200