Spec reference:
https://hl7.org/fhir/operations.html
Overview
FHIR operations are named procedures that go beyond basic REST interactions (CRUD, search, history). They’re identified by a$-prefixed code like
$validate, $everything, or $expand.
Operations can be invoked at three different levels:
| Level | Endpoint pattern | Example |
|---|---|---|
| System | [base]/$op | GET /fhir/$install-package |
| Type | [base]/{type}/$op | POST /fhir/ValueSet/$expand |
| Instance | [base]/{type}/{id}/$op | POST /fhir/Patient/123/$everything |
How parameters work
Operations use theParameters resource
for inputs and outputs.
Many servers support both:
GETwith query parametersPOSTwith aParametersbody
Discovering what a server supports
Two places to look:CapabilityStatement(GET /fhir/metadata) lists supported operationsOperationDefinitionresources describe inputs/outputs and invocation level
TLQ links
- API reference: System operations
- API reference: Type operations
- API reference: Instance operations
- Server guide: Operations
- CapabilityStatement
Next
- Terminology operations in practice: Terminology
- Server discovery: Resources