Capability Statement

The CapabilityStatement resource is a statement of the kinds of resources and operations provided and/or consumed by an application.


Using GET /metadata you can access FHIR capabilities interaction.

Response is a CapabilityStatement generated from meta resources created in an Aidbox instance. The list of this meta resource types used for the response generation:

  • Operation

  • SearchParameter

  • Entity

Aidbox CapabilityStatement updates automatically after meta resources change. No interaction needed to apply changes to CapabilityStatement.

Read more about conformance rules and the CapabilityStatement resource itself.

Base URL for FHIR compatible API is <server-domain>/fhir/.

The capabilities interaction returns a capability statement describing the server's current operational functionality. The interaction is performed by the HTTP GET command as shown:

GET [base]/metadata{?mode=[mode]}{&_format=[mime-type]}

You can get Capability Statement of your Aidbox with the command:

GET <server-domain>/fhir/metadata

Get metadata

GET <your-domain>/fhir/metadata

Path Parameters




full | normative | terminology



json | yaml | edn | xml

patchFormat: [json-patch, merge-patch]
- mode: server
  - {code: batch}
  - {code: transaction}
  - {name: patient_list, deinition: Operation/patient_list}
  - interaction:
    - {code: read}
    - {code: vread}
    - {code: update}
    - {code: patch}
    - {code: delete}
    - {code: history-instance}
    - {code: history-type}
    - {code: create}
    - {code: search-type}
    readHistory: true
    updateCreate: true
    versioning: versioned-update
    searchRevInclude: [all]
    referencePolicy: local
    conditionalRead: full-support
    searchInclude: [all]
    type: Patient
    conditionalDelete: single
    conditionalUpdate: true
    conditionalCreate: true
    - {name: address-city, definition: /SearchParameter/Patient.address-city, type: string}
    - {name: active, definition: /SearchParameter/, type: token}
    - {name: given, definition: /SearchParameter/Patient.given, type: string}
    - {name: address-state, definition: /SearchParameter/Patient.address-state, type: string}
    - {name: general-practitioner, definition: /SearchParameter/Patient.general-practitioner,
      type: reference}
    - {name: gender, definition: /SearchParameter/Patient.gender, type: token}
    - {name: name, definition: /SearchParameter/, type: string}
    - {name: family, definition: /SearchParameter/, type: string}
    - {name: telecom, definition: /SearchParameter/Patient.telecom, type: token}
    - {name: animal-species, definition: /SearchParameter/Patient.animal-species,
      type: token}
    - {name: identifier, definition: /SearchParameter/Patient.identifier, type: token}
    - {name: link, definition: /SearchParameter/, type: reference}
    - {name: address-use, definition: /SearchParameter/Patient.address-use, type: token}
    - {name: language, definition: /SearchParameter/Patient.language, type: token}
    - {name: phonetic, definition: /SearchParameter/Patient.phonetic, type: string}
    - {name: death-date, definition: /SearchParameter/Patient.death-date, type: date}
    - {name: animal-breed, definition: /SearchParameter/Patient.animal-breed, type: token}
    - {name: deceased, definition: /SearchParameter/Patient.deceased, type: token}
    - {name: address, definition: /SearchParameter/Patient.address, type: string}
    - {name: email, definition: /SearchParameter/, type: token}
    - {name: organization, definition: /SearchParameter/Patient.organization, type: reference}
    - {name: birthdate, definition: /SearchParameter/Patient.birthdate, type: date}
    - {name: address-country, definition: /SearchParameter/Patient.address-country,
      type: string}
    - {name: phone, definition: /SearchParameter/, type: token}
    - {name: address-postalcode, definition: /SearchParameter/Patient.address-postalcode,
      type: string}

The information returned depends on the value of the mode parameter:



full (or mode not present)

A Capability Statement that specifies which resource types and interactions are supported


As above, but only the normative portions of the Capability Statement


A TerminologyCapabilities resource that provides further information about terminologies are supported by the server

Servers MAY ignore the mode parameter and return a CapabilityStatement resource.

Configure CapabilityStatement

You can reconfigure specific parts of CapabilityStatement by creating AidboxConfig/box resource:

PUT /AidboxConfig/box

  # override name and title of CapabilityStatement
  name: MyFHIRServer
  title: My FHIR server
  description: Description of my FHIR server
  # override
  - coding:
    - {system: '', code: SMART-on-FHIR}
    text: Very smart!!!
  # override
    - url:
      - {url: token, valueUri: ''}
      - {url: authorize, valueUri: ''}

If you want more control over CapabilityStatement, please contact us in the community chat!



The profile property is set when zen profiling is enabled and the following conditions are met:

  • the corresponding resource is defined in zen profile

  • there is exactly one zen schema tagged with base-profile for the corresponding resource

Aidbox native metadata

To get metadata in the internal Aidbox format, use /$metadata?_format=yaml

Get Aidbox native metadata

GET <your-domain>/$metadata

Path Parameters




yaml | json | edn

Query Parameters




Path to specific part of metadata (for example Entity.Patient)

Capability statements can become quite large; servers are encouraged to support the _summary and _elements parameters on the capabilities interaction, though this is not required. In addition, servers are encouraged to implement the $subset and $implements operations to make it easy for a client to check conformance.

Last updated