Parameters — Operation parameter container
Parameters is not a resource in the classical sense (no search, no history). It is the pivot format to pass arguments to FHIR $ operations.
Purpose
Parameters carries a named collection of typed values and/or resources. Used as input for $validate, $expand, $everything, $lookup and any operation defined by OperationDefinition. Also used as output when the operation returns multiple values.
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
parameter | BackboneElement[] | 0..* | Named parameter list. |
parameter.name | string | 1..1 | Parameter name. |
parameter.value[x] | any data type | 0..1 | Typed primitive value (valueString, valueDate, valueQuantity...). |
parameter.resource | Resource | 0..1 | Embedded resource value. |
parameter.part | BackboneElement[] | 0..* | Nested parameters (composite). |
JSON example
Parameters for Patient/$everything with dates:
{
"resourceType": "Parameters",
"parameter": [{
"name": "patient",
"resource": {
"resourceType": "Patient",
"id": "example",
"name": [{ "family": "Doe", "given": ["John"] }]
}
}, {
"name": "start",
"valueDate": "2026-01-01"
}, {
"name": "end",
"valueDate": "2026-12-31"
}]
} Common pitfalls
- Stored in DB as a resource: Parameters MUST NOT be persisted. It is an operation message.
parametercardinality: the OperationDefinition imposes cardinalities; violating them returns 400 server-side.- Mixing value[x] / resource / part: only one of the three per
parameter.
Related resources
- OperationDefinition — Defines expected parameters.
- OperationOutcome — Operation outcome.
- Bundle — For transactions and search batch (other container).