v4

latestOpenAPI 3.0.22026-07-3188146256.6 KB
Entities

getEntity

Gets Entity and relations by id.

Relations

When hydrate=true, relation attributes are replaced in-place with nested entity values.

Example:

{
  "_id": "123",
  "name": "parent",
  "_tags": ["parent"],
  "contacts": {
    "$relation": [
      { "entity_id": "456", "_tags": ["primary"] },
      { "entity_id": "789", "_tags": ["secondary"] },
    ]
  },
  "addresses": {
    "$relation_ref": [
      { "entity_id": "123", "_tags": ["primary"], "path": "address.0" },
      { "entity_id": "234", "_tags": ["secondary"], "path": "address.0" },
    ]
  }
}

Becomes:

{
  "_id": "123",
  "name": "parent",
  "_tags": ["parent"],
  "contacts": [
    {
      "$relation": { "entity_id": "456", "_tags": ["primary"] },
      "_id": "456",
      "name": "child 1",
      "_tags": ["child"]
    },
    {
      "$relation": { "entity_id": "789", "_tags": ["secondary"] },
      "_id": "789",
      "name": "child 2",
      "_tags": ["child"]
    }
  ],
  "addresses": [
    {
      "$relation_ref": { "entity_id": "123", "_tags": ["primary"], "path": "address.0" },
      "_id": "123",
      "address": "address 1",
      "_tags": ["child"]
    },
    {
      "$relation_ref": { "entity_id": "234", "_tags": ["secondary"], "path": "address.0" },
      "_id": "234",
      "address": "address 2",
      "_tags": ["child"]
    }
  ]
}
get/v1/entity/{slug}/{id}

Path parameters

idstring uuid required

Entity id

slugstring required

URL-friendly identifier for the entity schema

Example:contact

Entity Type

Query parameters

hydrateboolean

When true, enables entity hydration to resolve nested $relation & $relation_ref references in-place.

anonymizeboolean

When true, anonymizes PII in the response: identifiers (names, emails, phone numbers, IBANs) are replaced with deterministic pseudonyms (stable within an org), addresses are generalized to postal code / city / country, and well-known free-text fields (e.g. note content) are redacted.

Useful for AI agents and data analysis use cases that must not access personal data.

Anonymization is forced (regardless of this parameter) when the access token was created with anonymize: true.

Response

Success

Example response

{
  "entity": {
    "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "_org": "123",
    "_owners": [
      {
        "org_id": "123",
        "user_id": "123"
      }
    ],
    "_schema": "contact",
    "_tags": [
      "example",
      "mock"
    ],
    "_created_at": "2021-02-09T12:41:43.662Z",
    "_updated_at": "2021-02-09T12:41:43.662Z",
    "_acl": {
      "view": [
        "org:456",
        "org:789"
      ],
      "edit": [
        "org:456"
      ],
      "delete": [
        "org:456"
      ]
    },
    "_manifest": [
      "123e4567-e89b-12d3-a456-426614174000"
    ]
  },
  "relations": [
    {
      "_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "_org": "123",
      "_owners": [
        {
          "org_id": "123",
          "user_id": "123"
        }
      ],
      "_schema": "contact",
      "_tags": [
        "example",
        "mock"
      ],
      "_created_at": "2021-02-09T12:41:43.662Z",
      "_updated_at": "2021-02-09T12:41:43.662Z",
      "_acl": {
        "view": [
          "org:456",
          "org:789"
        ],
        "edit": [
          "org:456"
        ],
        "delete": [
          "org:456"
        ]
      },
      "_manifest": [
        "123e4567-e89b-12d3-a456-426614174000"
      ]
    }
  ]
}