Cadasto Demographic API

The openEHR ITS-REST Demographic API: create, read, update and delete PERSON, ORGANISATION, ROLE, AGENT and GROUP parties, read versioned parties and their revision history, create demographic CONTRIBUTIONs, and manage ITEM_TAGs on every party type. 42 operations. Demographic data is versioned and stored separately from clinical content by design.

Operations 42

POST /demographic/agent Create AGENT #
GET /demographic/agent/{uid_based_id} Get AGENT #
PUT /demographic/agent/{uid_based_id} Update AGENT #
DELETE /demographic/agent/{uid_based_id} Delete AGENT #
POST /demographic/group Create GROUP #
GET /demographic/group/{uid_based_id} Get GROUP #
PUT /demographic/group/{uid_based_id} Update GROUP #
DELETE /demographic/group/{uid_based_id} Delete GROUP #
POST /demographic/organisation Create ORGANISATION #
GET /demographic/organisation/{uid_based_id} Get ORGANISATION #
PUT /demographic/organisation/{uid_based_id} Update ORGANISATION #
DELETE /demographic/organisation/{uid_based_id} Delete ORGANISATION #
POST /demographic/person Create PERSON #
GET /demographic/person/{uid_based_id} Get PERSON #
PUT /demographic/person/{uid_based_id} Update PERSON #
DELETE /demographic/person/{uid_based_id} Delete PERSON #
POST /demographic/role Create ROLE #
GET /demographic/role/{uid_based_id} Get ROLE #
PUT /demographic/role/{uid_based_id} Update ROLE #
DELETE /demographic/role/{uid_based_id} Delete ROLE #
GET /demographic/versioned_party/{versioned_object_uid} Get VERSIONED_PARTY #
GET /demographic/versioned_party/{versioned_object_uid}/revision_history Get VERSIONED_PARTY revision history #
GET /demographic/versioned_party/{versioned_object_uid}/version Get VERSIONED_PARTY version at time #
GET /demographic/versioned_party/{versioned_object_uid}/version/{version_uid} Get VERSIONED_PARTY version by id #
POST /demographic/contribution Create CONTRIBUTION #
GET /demographic/contribution/{contribution_uid} Get CONTRIBUTION by id #
GET /demographic/tags Get demographic tags #
GET /demographic/agent/{uid_based_id}/tags Get AGENT tags #
PUT /demographic/agent/{uid_based_id}/tags Update AGENT tags #
DELETE /demographic/agent/{uid_based_id}/tags/{key} Delete AGENT tag by key #
GET /demographic/group/{uid_based_id}/tags Get GROUP tags #
PUT /demographic/group/{uid_based_id}/tags Update GROUP tags #
DELETE /demographic/group/{uid_based_id}/tags/{key} Delete GROUP tag by key #
GET /demographic/organisation/{uid_based_id}/tags Get ORGANISATION tags #
PUT /demographic/organisation/{uid_based_id}/tags Update ORGANISATION tags #
DELETE /demographic/organisation/{uid_based_id}/tags/{key} Delete ORGANISATION tag by key #
GET /demographic/person/{uid_based_id}/tags Get PERSON tags #
PUT /demographic/person/{uid_based_id}/tags Update PERSON tags #
DELETE /demographic/person/{uid_based_id}/tags/{key} Delete PERSON tag by key #
GET /demographic/role/{uid_based_id}/tags Get ROLE tags #
PUT /demographic/role/{uid_based_id}/tags Update ROLE tags #
DELETE /demographic/role/{uid_based_id}/tags/{key} Delete ROLE tag by key #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/cadasto-demographic-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

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

OpenAPI Specification

cadasto-demographic-api-openapi.json Raw ↑
{
  "openapi": "3.1.1",
  "info": {
    "title": "Demographic API",
    "version": "development",
    "x-status": "DEVELOPMENT",
    "x-spec": "demographic"
  },
  "servers": [
    {
      "url": "https://{baseUrl}/v1",
      "description": "An example openEHR server URL.",
      "variables": {
        "baseUrl": {
          "default": "cataniamc.prod.cadasto.com",
          "description": "The (example) server base URL prefix providing openEHR services. This may contain server name, port and base path prefix."
        }
      }
    }
  ],
  "security": [],
  "tags": [
    {
      "name": "AGENT",
      "description": "Management of the [AGENT](https://specifications.openehr.org/releases/RM/latest/demographic.html#_agent_class) class.\n"
    },
    {
      "name": "GROUP",
      "description": "Management of the [GROUP](https://specifications.openehr.org/releases/RM/latest/demographic.html#_group_class) class.\n"
    },
    {
      "name": "ORGANISATION",
      "description": "Management of the [ORGANISATION](https://specifications.openehr.org/releases/RM/latest/demographic.html#_organisation_class) class.\n"
    },
    {
      "name": "PERSON",
      "description": "Management of the [PERSON](https://specifications.openehr.org/releases/RM/latest/demographic.html#_person_class) class.\n"
    },
    {
      "name": "ROLE",
      "description": "Management of the [ROLE](https://specifications.openehr.org/releases/RM/latest/demographic.html#_role_class) class.\n"
    },
    {
      "name": "VERSIONED_PARTY",
      "description": "Management of the [VERSIONED_PARTY](https://specifications.openehr.org/releases/RM/latest/demographic.html#_versioned_party_class) class.\n"
    },
    {
      "name": "CONTRIBUTION",
      "description": "Management of [CONTRIBUTION](https://specifications.openehr.org/releases/RM/latest/common.html#_contribution_class) class.\n"
    },
    {
      "name": "ITEM_TAG",
      "description": "Management of [ITEM_TAG](https://specifications.openehr.org/releases/RM/latest/common.html#_item_tag_class) resources attached to demographic versioned objects (PERSON, AGENT, GROUP, ORGANISATION, ROLE). See also the [ITEM_TAG guide](/docs/guides/item-tag).\n"
    },
    {
      "name": "CAPABILITY_schema",
      "x-displayName": "CAPABILITY",
      "description": "The `CAPABILITY` schema, formally specified in the Reference Model as the [CAPABILITY](https://specifications.openehr.org/releases/RM/latest/demographic.html#_capability_class) class.\n"
    },
    {
      "name": "CONTACT_schema",
      "x-displayName": "CONTACT",
      "description": "The `CONTACT` schema, formally specified in the Reference Model as the [CONTACT](https://specifications.openehr.org/releases/RM/latest/demographic.html#_contact_class) class.\n"
    },
    {
      "name": "PARTY_IDENTITY_schema",
      "x-displayName": "PARTY_IDENTITY",
      "description": "The `PARTY_IDENTITY` schema, formally specified in the Reference Model as the [PARTY_IDENTITY](https://specifications.openehr.org/releases/RM/latest/demographic.html#_party_identity_class) class.\n"
    },
    {
      "name": "PARTY_RELATIONSHIP_schema",
      "x-displayName": "PARTY_RELATIONSHIP",
      "description": "The `PARTY_RELATIONSHIP` resource, formally specified in the Reference Model as the [PARTY_RELATIONSHIP](https://specifications.openehr.org/releases/RM/latest/demographic.html#_party_relationship_class) class.\n"
    },
    {
      "name": "ITEM_schema",
      "x-displayName": "ITEM",
      "description": "The abstract `ITEM` class.\n"
    },
    {
      "name": "ITEM_STRUCTURE_schema",
      "x-displayName": "ITEM_STRUCTURE",
      "description": "The abstract `ITEM_STRUCTURE` class.\n"
    }
  ],
  "paths": {
    "/demographic/agent": {
      "post": {
        "operationId": "agent_create",
        "summary": "Create AGENT",
        "description": "Creates the first version of a new AGENT.\n",
        "tags": [
          "AGENT"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Prefer"
          },
          {
            "$ref": "#/components/parameters/openehr-item-tag"
          }
        ],
        "requestBody": {
          "description": "The AGENT.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Agent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201_AGENT"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        }
      }
    },
    "/demographic/agent/{uid_based_id}": {
      "get": {
        "operationId": "agent_get",
        "summary": "Get AGENT",
        "description": "Retrieves a version of the AGENT identified by `uid_based_id`.\n\nThe `uid_based_id` can take a form of an OBJECT_VERSION_ID identifier taken from VERSION.uid.value (i.e. a `version_uid`), or a form of a HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`).\nThe former is used to retrieve a specific known version of the AGENT (e.g. one identified by `8849182c-82ad-4088-a07f-48ead4180515::cataniamc.prod.cadasto.com::1`), whereas the later (e.g. an identifier like `8849182c-82ad-4088-a07f-48ead4180515`) is be used to retrieve a version from the version container whenever the _version_tree_id_ is unknown or irrelevant (such as when most recent version is requested).\n\nWhen the `uid_based_id` has the form of a HIER_OBJECT_ID, if the `version_at_time` is supplied, retrieves the version extant _at specified time_, otherwise retrieves the _latest_ AGENT version.\n\nSee [Resource identification](overview.html#tag/Resources/Resource-identification) for more details about the identifiers usage and meaning.\n",
        "tags": [
          "AGENT"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id"
          },
          {
            "$ref": "#/components/parameters/version_at_time"
          },
          {
            "$ref": "#/components/parameters/Prefer"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200_AGENT_retrieved"
          },
          "204": {
            "$ref": "#/components/responses/204_deleted_at_time"
          },
          "404": {
            "$ref": "#/components/responses/404_not_found_or_no_version_at_time"
          }
        }
      },
      "put": {
        "operationId": "agent_update",
        "summary": "Update AGENT",
        "description": "Updates AGENT identified by `uid_based_id`.\n\nThe `uid_based_id` can take only a form of an HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`).\n\nIf the request body already contains a AGENT.uid.value, it must match the `uid_based_id` in the URL. \n\nThe existing latest `version_uid` of AGENT resource (i.e. the `preceding_version_uid`) must be specified in the `If-Match` header.\n",
        "tags": [
          "AGENT"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id_as_versioned_object_uid"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/Prefer"
          },
          {
            "$ref": "#/components/parameters/openehr-item-tag"
          }
        ],
        "requestBody": {
          "description": "The new AGENT.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Agent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/200_AGENT_updated"
          },
          "204": {
            "$ref": "#/components/responses/204_version_updated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "412": {
            "$ref": "#/components/responses/412_AGENT"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        }
      },
      "delete": {
        "operationId": "agent_delete",
        "summary": "Delete AGENT",
        "description": "Deletes the AGENT identified by `uid_based_id`.\n\nThe `uid_based_id` MUST be in a form of an OBJECT_VERSION_ID identifier taken from the last (most recent) VERSION.uid.value, representing the `preceding_version_uid` to be deleted.\n",
        "tags": [
          "AGENT"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id_as_version_uid"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204_version_deleted"
          },
          "400": {
            "$ref": "#/components/responses/400_already_deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "409": {
            "$ref": "#/components/responses/409_AGENT_with_uid_based_id"
          }
        }
      }
    },
    "/demographic/group": {
      "post": {
        "operationId": "group_create",
        "summary": "Create GROUP",
        "description": "Creates the first version of a new GROUP.\n",
        "tags": [
          "GROUP"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Prefer"
          },
          {
            "$ref": "#/components/parameters/openehr-item-tag"
          }
        ],
        "requestBody": {
          "description": "The GROUP.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Group"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201_GROUP"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        }
      }
    },
    "/demographic/group/{uid_based_id}": {
      "get": {
        "operationId": "group_get",
        "summary": "Get GROUP",
        "description": "Retrieves a version of the GROUP identified by `uid_based_id`.\n\nThe `uid_based_id` can take a form of an OBJECT_VERSION_ID identifier taken from VERSION.uid.value (i.e. a `version_uid`), or a form of a HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`).\nThe former is used to retrieve a specific known version of the GROUP (e.g. one identified by `8849182c-82ad-4088-a07f-48ead4180515::cataniamc.prod.cadasto.com::1`), whereas the later (e.g. an identifier like `8849182c-82ad-4088-a07f-48ead4180515`) is be used to retrieve a version from the version container whenever the _version_tree_id_ is unknown or irrelevant (such as when most recent version is requested).\n\nWhen the `uid_based_id` has the form of a HIER_OBJECT_ID, if the `version_at_time` is supplied, retrieves the version extant _at specified time_, otherwise retrieves the _latest_ GROUP version.\n\nSee [Resource identification](overview.html#tag/Resources/Resource-identification) for more details about the identifiers usage and meaning.\n",
        "tags": [
          "GROUP"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id"
          },
          {
            "$ref": "#/components/parameters/version_at_time"
          },
          {
            "$ref": "#/components/parameters/Prefer"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200_GROUP_retrieved"
          },
          "204": {
            "$ref": "#/components/responses/204_deleted_at_time"
          },
          "404": {
            "$ref": "#/components/responses/404_not_found_or_no_version_at_time"
          }
        }
      },
      "put": {
        "operationId": "group_update",
        "summary": "Update GROUP",
        "description": "Updates GROUP identified by `uid_based_id`.\n\nThe `uid_based_id` can take only a form of an HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`).\n\nIf the request body already contains a GROUP.uid.value, it must match the `uid_based_id` in the URL. \n\nThe existing latest `version_uid` of GROUP resource (i.e. the `preceding_version_uid`) must be specified in the `If-Match` header.\n",
        "tags": [
          "GROUP"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id_as_versioned_object_uid"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/Prefer"
          },
          {
            "$ref": "#/components/parameters/openehr-item-tag"
          }
        ],
        "requestBody": {
          "description": "The new GROUP.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Group"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/200_GROUP_updated"
          },
          "204": {
            "$ref": "#/components/responses/204_version_updated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "412": {
            "$ref": "#/components/responses/412_GROUP"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        }
      },
      "delete": {
        "operationId": "group_delete",
        "summary": "Delete GROUP",
        "description": "Deletes the GROUP identified by `uid_based_id`.\n\nThe `uid_based_id` MUST be in a form of an OBJECT_VERSION_ID identifier taken from the last (most recent) VERSION.uid.value, representing the `preceding_version_uid` to be deleted.\n",
        "tags": [
          "GROUP"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id_as_version_uid"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204_version_deleted"
          },
          "400": {
            "$ref": "#/components/responses/400_already_deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "409": {
            "$ref": "#/components/responses/409_GROUP_with_uid_based_id"
          }
        }
      }
    },
    "/demographic/organisation": {
      "post": {
        "operationId": "organisation_create",
        "summary": "Create ORGANISATION",
        "description": "Creates the first version of a new ORGANISATION.\n",
        "tags": [
          "ORGANISATION"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Prefer"
          },
          {
            "$ref": "#/components/parameters/openehr-item-tag"
          }
        ],
        "requestBody": {
          "description": "The ORGANISATION.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Organisation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201_ORGANISATION"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        }
      }
    },
    "/demographic/organisation/{uid_based_id}": {
      "get": {
        "operationId": "organisation_get",
        "summary": "Get ORGANISATION",
        "description": "Retrieves a version of the ORGANISATION identified by `uid_based_id`.\n\nThe `uid_based_id` can take a form of an OBJECT_VERSION_ID identifier taken from VERSION.uid.value (i.e. a `version_uid`), or a form of a HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`).\nThe former is used to retrieve a specific known version of the ORGANISATION (e.g. one identified by `8849182c-82ad-4088-a07f-48ead4180515::cataniamc.prod.cadasto.com::1`), whereas the later (e.g. an identifier like `8849182c-82ad-4088-a07f-48ead4180515`) is be used to retrieve a version from the version container whenever the _version_tree_id_ is unknown or irrelevant (such as when most recent version is requested).\n\nWhen the `uid_based_id` has the form of a HIER_OBJECT_ID, if the `version_at_time` is supplied, retrieves the version extant _at specified time_, otherwise retrieves the _latest_ ORGANISATION version.\n\nSee [Resource identification](overview.html#tag/Resources/Resource-identification) for more details about the identifiers usage and meaning.\n",
        "tags": [
          "ORGANISATION"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id"
          },
          {
            "$ref": "#/components/parameters/version_at_time"
          },
          {
            "$ref": "#/components/parameters/Prefer"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200_ORGANISATION_retrieved"
          },
          "204": {
            "$ref": "#/components/responses/204_deleted_at_time"
          },
          "404": {
            "$ref": "#/components/responses/404_not_found_or_no_version_at_time"
          }
        }
      },
      "put": {
        "operationId": "organisation_update",
        "summary": "Update ORGANISATION",
        "description": "Updates ORGANISATION identified by `uid_based_id`.\n\nThe `uid_based_id` can take only a form of an HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`).\n\nIf the request body already contains a ORGANISATION.uid.value, it must match the `uid_based_id` in the URL. \n\nThe existing latest `version_uid` of ORGANISATION resource (i.e. the `preceding_version_uid`) must be specified in the `If-Match` header.\n",
        "tags": [
          "ORGANISATION"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id_as_versioned_object_uid"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/Prefer"
          },
          {
            "$ref": "#/components/parameters/openehr-item-tag"
          }
        ],
        "requestBody": {
          "description": "The new ORGANISATION.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Organisation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/200_ORGANISATION_updated"
          },
          "204": {
            "$ref": "#/components/responses/204_version_updated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "412": {
            "$ref": "#/components/responses/412_ORGANISATION"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        }
      },
      "delete": {
        "operationId": "organisation_delete",
        "summary": "Delete ORGANISATION",
        "description": "Deletes the ORGANISATION identified by `uid_based_id`.\n\nThe `uid_based_id` MUST be in a form of an OBJECT_VERSION_ID identifier taken from the last (most recent) VERSION.uid.value, representing the `preceding_version_uid` to be deleted.\n",
        "tags": [
          "ORGANISATION"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id_as_version_uid"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204_version_deleted"
          },
          "400": {
            "$ref": "#/components/responses/400_already_deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "409": {
            "$ref": "#/components/responses/409_ORGANISATION_with_uid_based_id"
          }
        }
      }
    },
    "/demographic/person": {
      "post": {
        "operationId": "person_create",
        "summary": "Create PERSON",
        "description": "Creates the first version of a new PERSON.\n",
        "tags": [
          "PERSON"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Prefer"
          },
          {
            "$ref": "#/components/parameters/openehr-item-tag"
          }
        ],
        "requestBody": {
          "description": "The PERSON.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Person"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201_PERSON"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        }
      }
    },
    "/demographic/person/{uid_based_id}": {
      "get": {
        "operationId": "person_get",
        "summary": "Get PERSON",
        "description": "Retrieves a version of the PERSON identified by `uid_based_id`.\n\nThe `uid_based_id` can take a form of an OBJECT_VERSION_ID identifier taken from VERSION.uid.value (i.e. a `version_uid`), or a form of a HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`).\nThe former is used to retrieve a specific known version of the PERSON (e.g. one identified by `8849182c-82ad-4088-a07f-48ead4180515::cataniamc.prod.cadasto.com::1`), whereas the later (e.g. an identifier like `8849182c-82ad-4088-a07f-48ead4180515`) is be used to retrieve a version from the version container whenever the _version_tree_id_ is unknown or irrelevant (such as when most recent version is requested).\n\nWhen the `uid_based_id` has the form of a HIER_OBJECT_ID, if the `version_at_time` is supplied, retrieves the version extant _at specified time_, otherwise retrieves the _latest_ PERSON version.\n\nSee [Resource identification](overview.html#tag/Resources/Resource-identification) for more details about the identifiers usage and meaning.\n",
        "tags": [
          "PERSON"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id"
          },
          {
            "$ref": "#/components/parameters/version_at_time"
          },
          {
            "$ref": "#/components/parameters/Prefer"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200_PERSON_retrieved"
          },
          "204": {
            "$ref": "#/components/responses/204_deleted_at_time"
          },
          "404": {
            "$ref": "#/components/responses/404_not_found_or_no_version_at_time"
          }
        }
      },
      "put": {
        "operationId": "person_update",
        "summary": "Update PERSON",
        "description": "Updates PERSON identified by `uid_based_id`.\n\nThe `uid_based_id` can take only a form of an HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`).\n\nIf the request body already contains a PERSON.uid.value, it must match the `uid_based_id` in the URL. \n\nThe existing latest `version_uid` of PERSON resource (i.e. the `preceding_version_uid`) must be specified in the `If-Match` header.\n",
        "tags": [
          "PERSON"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id_as_versioned_object_uid"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/Prefer"
          },
          {
            "$ref": "#/components/parameters/openehr-item-tag"
          }
        ],
        "requestBody": {
          "description": "The new PERSON.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Person"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/200_PERSON_updated"
          },
          "204": {
            "$ref": "#/components/responses/204_version_updated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "412": {
            "$ref": "#/components/responses/412_PERSON"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        }
      },
      "delete": {
        "operationId": "person_delete",
        "summary": "Delete PERSON",
        "description": "Deletes the PERSON identified by `uid_based_id`.\n\nThe `uid_based_id` MUST be in a form of an OBJECT_VERSION_ID identifier taken from the last (most recent) VERSION.uid.value, representing the `preceding_version_uid` to be deleted.\n",
        "tags": [
          "PERSON"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id_as_version_uid"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204_version_deleted"
          },
          "400": {
            "$ref": "#/components/responses/400_already_deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "409": {
            "$ref": "#/components/responses/409_PERSON_with_uid_based_id"
          }
        }
      }
    },
    "/demographic/role": {
      "post": {
        "operationId": "role_create",
        "summary": "Create ROLE",
        "description": "Creates the first version of a new ROLE.\n",
        "tags": [
          "ROLE"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Prefer"
          },
          {
            "$ref": "#/components/parameters/openehr-item-tag"
          }
        ],
        "requestBody": {
          "description": "The ROLE.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Role"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201_ROLE"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        }
      }
    },
    "/demographic/role/{uid_based_id}": {
      "get": {
        "operationId": "role_get",
        "summary": "Get ROLE",
        "description": "Retrieves a version of the ROLE identified by `uid_based_id`.\n\nThe `uid_based_id` can take a form of an OBJECT_VERSION_ID identifier taken from VERSION.uid.value (i.e. a `version_uid`), or a form of a HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`).\nThe former is used to retrieve a specific known version of the ROLE (e.g. one identified by `8849182c-82ad-4088-a07f-48ead4180515::cataniamc.prod.cadasto.com::1`), whereas the later (e.g. an identifier like `8849182c-82ad-4088-a07f-48ead4180515`) is be used to retrieve a version from the version container whenever the _version_tree_id_ is unknown or irrelevant (such as when most recent version is requested).\n\nWhen the `uid_based_id` has the form of a HIER_OBJECT_ID, if the `version_at_time` is supplied, retrieves the version extant _at specified time_, otherwise retrieves the _latest_ ROLE version.\n\nSee [Resource identification](overview.html#tag/Resources/Resource-identification) for more details about the identifiers usage and meaning.\n",
        "tags": [
          "ROLE"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id"
          },
          {
            "$ref": "#/components/parameters/version_at_time"
          },
          {
            "$ref": "#/components/parameters/Prefer"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200_ROLE_retrieved"
          },
          "204": {
            "$ref": "#/components/responses/204_deleted_at_time"
          },
          "404": {
            "$ref": "#/components/responses/404_not_found_or_no_version_at_time"
          }
        }
      },
      "put": {
        "operationId": "role_update",
        "summary": "Update ROLE",
        "description": "Updates ROLE identified by `uid_based_id`.\n\nThe `uid_based_id` can take only a form of an HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`).\n\nIf the request body already contains a ROLE.uid.value, it must match the `uid_based_id` in the URL. \n\nThe existing latest `version_uid` of ROLE resource (i.e. the `preceding_version_uid`) must be specified in the `If-Match` header.\n",
        "tags": [
          "ROLE"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id_as_versioned_object_uid"
          },
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/Prefer"
          },
          {
            "$ref": "#/components/parameters/openehr-item-tag"
          }
        ],
        "requestBody": {
          "description": "The new ROLE.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Role"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/200_ROLE_updated"
          },
          "204": {
            "$ref": "#/components/responses/204_version_updated"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "412": {
            "$ref": "#/components/responses/412_ROLE"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        }
      },
      "delete": {
        "operationId": "role_delete",
        "summary": "Delete ROLE",
        "description": "Deletes the ROLE identified by `uid_based_id`.\n\nThe `uid_based_id` MUST be in a form of an OBJECT_VERSION_ID identifier taken from the last (most recent) VERSION.uid.value, representing the `preceding_version_uid` to be deleted.\n",
        "tags": [
          "ROLE"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/uid_based_id_as_version_uid"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204_version_deleted"
          },
          "400": {
            "$ref": "#/components/responses/400_already_deleted"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "409": {
            "$ref": "#/components/responses/409_ROLE_with_uid

# --- truncated at 32 KB (172 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cadasto/refs/heads/main/openapi/cadasto-demographic-api-openapi.json