$validate
Introduction
The tool introduced by FHIR to provide a separate validation mechanism for 2-steps commit workflow or for development needs. It works for create, update and delete operations, is called using ?mode=
query parameter with values create
, update
, delete
but changes won't be committed. Instead a requester will get an OperationOutcome
with information about validation results. See http://hl7.org/fhir/resource-operation-validate.html
for the official documentation.
#FHIR format endpoint:
POST /fhir/<resourceType>/$validate
POST /fhir/<resourceType>/<id>/$validate
#Aidbox format endpoint:
POST /<resourceType>/$validate
POST /<resourceType>/<id>/$validate
Such requests check the resource structure, internal business rules and return a list of problems if some exist.
200
OK — those requests always return status 200
Success and failure of a validation request is determined by id
of OperationOutcome
resource. allok
and validationfail
are self-descriptive.
$validate supports two ways to pass arguments:
Parameter | Description |
---|---|
resourceType | Required. Type of the resource which needs validation |
id | Optional for mode =create . Can either be passed in the resource body or be specified in the route params |
resource | Optional for mode =delete , required otherwise. Resource to be validated |
mode | Optional. Default is create . Possible values are create, update, delete, patch |
profile | Optional. Can be passed multiple times. Used to validate with specific profiles. |
mode | Description |
---|---|
create | Ignores errors about attributesid & lastUpdated being required |
update | Validates without ignoring errors about attributesid & lastUpdated |
delete | Checks if resource with such id exists in Aidbox |
patch | Merges the existing resource to the received resource and then validates as Patching strategy will be determined as described here |
merge-patch | simple deep merge semantics (read more in RFC ) |
json-patch | advanced JSON transformation (read more in RFC ) |
Examples
Validation Success
Validation Failure
Last updated 2025-06-19T16:42:40Z