EHRbase · OpenAPI Overlay 1.0.0

API Evangelist overlay for EHRbase openEHR REST API

7 actions 7 updates update extends openapi/ehrbase-openehr-rest-api-openapi.json
Derived by API Evangelist Built from the contracts EHRbase publishes. EHRbase did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-idempotentx-apievangelistx-standardx-license-spdxx-conventionsx-authenticationx-errorsx-data-model

Targets 7

$.info
$
$.servers
$.paths['/rest/openehr/v1/ehr/{ehr_id}/composition'].post
$.paths['/rest/openehr/v1/ehr/{ehr_id}'].put
$.paths['/rest/openehr/v1/ehr/{ehr_id}/composition/{versioned_object_uid}'].put
$.paths['/rest/openehr/v1/query/aql'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist overlay for EHRbase openEHR REST API
  version: 1.0.0
  x-generated: '2026-09-02'
  x-method: generated
  x-source: openapi/ehrbase-openehr-rest-api-openapi.json
  x-note: Captures API Evangelist enhancements over the harvested EHRbase contract. Applies on top of
    the original document; the original is never mutated.
extends: openapi/ehrbase-openehr-rest-api-openapi.json
actions:
- target: $.info
  description: Record what this document actually is and where it came from.
  update:
    x-apievangelist:
      harvested-from: https://sandkiste.ehrbase.org/ehrbase/v3/api-docs/openehr-rest
      harvested: '2026-09-02'
      surface: EHRbase openEHR REST API
      note: The standard openEHR ITS-REST 1.0.2 surface.
      ownership: info.title "EHRbase API", license Apache-2.0 at github.com/ehrbase/ehrbase, servers[]
        sandkiste.ehrbase.org (the project own public sandbox). Contract confirmed to belong to EHRbase.
    x-standard:
      name: openEHR ITS-REST
      version: 1.0.2
      reference-model: 1.1.0
      body: openEHR International
      specification: https://specifications.openehr.org/releases/ITS-REST/latest/
    x-license-spdx: Apache-2.0
- target: $
  description: Point at the cross-cutting semantics this document does not carry inline.
  update:
    x-conventions: conventions/ehrbase-conventions.yml
    x-authentication: authentication/ehrbase-authentication.yml
    x-errors: errors/ehrbase-problem-types.yml
    x-data-model: data-model/ehrbase-data-model.yml
    x-conformance: conformance/ehrbase-conformance.yml
- target: $.servers
  description: The single server is a shared public sandbox, not a production host. Say so.
  update:
  - url: https://sandkiste.ehrbase.org/ehrbase
    description: EHRbase public sandbox (Sandkiste). Shared, resettable, unauthenticated. Not for real
      patient data.
    x-environment: sandbox
  - url: '{scheme}://{host}/ehrbase'
    description: Any self-hosted EHRbase deployment. EHRbase is software you run; there is no vendor-operated
      production host.
    x-environment: self-hosted
    variables:
      scheme:
        default: https
        enum:
        - https
        - http
      host:
        default: localhost:8080
- target: $.paths['/rest/openehr/v1/ehr/{ehr_id}/composition'].post
  description: No idempotency key exists on this operation - a retried POST creates a second version.
  update:
    x-idempotent: false
    x-retry-guidance: Read back /ehr/{ehr_id}/contribution before retrying after an ambiguous timeout.
- target: $.paths['/rest/openehr/v1/ehr/{ehr_id}'].put
  description: Client-supplied identifier create - safe to retry; a duplicate returns 409.
  update:
    x-idempotent: true
    x-duplicate-status: 409
- target: $.paths['/rest/openehr/v1/ehr/{ehr_id}/composition/{versioned_object_uid}'].put
  description: 'Optimistic concurrency: If-Match carries the preceding version_uid; a stale value fails
    412.'
  update:
    x-concurrency: if-match
    x-conflict-status: 412
    x-reversible: logical (append a new version)
- target: $.paths['/rest/openehr/v1/query/aql'].post
  description: AQL is the query language; result-set bounding happens inside the query, not through pagination
    parameters.
  update:
    x-query-language: AQL
    x-pagination: in-query (LIMIT/OFFSET)

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/ehrbase-openehr-rest-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.