> For the complete documentation index, see [llms.txt](https://docs.truedat.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.truedat.io/v8.12/api-integrations/data-catalog-data-lineage-and-grants-apis/systems.md).

# Systems

## Get system

> Retrieves the details of a specific system by its ID. Returns the full system details including dynamic content.<br>

```json
{"openapi":"3.0.0","info":{"title":"td-dd","version":"Truedat 8.12.2"},"paths":{"/api/systems/{id}":{"get":{"description":"Retrieves the details of a specific system by its ID. Returns the full system details including dynamic content.\n","operationId":"TdDdWeb.SystemController.show","parameters":[{"description":"System ID","in":"path","name":"id","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemResponse"}}},"description":"System details"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnauthorizedResponse"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdNotFoundErrorResponse"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdInternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Get system","tags":["Systems"]}}},"components":{"schemas":{"SystemResponse":{"additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"deleted_at":{"format":"date-time","nullable":true,"type":"string"},"df_content":{"additionalProperties":true,"nullable":true,"type":"object"},"dynamic_content":{"additionalProperties":true,"nullable":true,"type":"object"},"external_id":{"nullable":true,"type":"string"},"id":{"type":"integer"},"inserted_at":{"format":"date-time","nullable":true,"type":"string"},"name":{"type":"string"},"updated_at":{"format":"date-time","nullable":true,"type":"string"}},"required":["id","name"],"type":"object"}},"required":["data"],"title":"SystemResponse","type":"object"},"TdDdUnauthorizedResponse":{"anyOf":[{"$ref":"#/components/schemas/TdDdUnauthorizedMessageResponse"},{"$ref":"#/components/schemas/TdDdUnauthorizedErrorResponse"}],"description":"Unauthorized response from auth plug or error view","title":"TdDdUnauthorizedResponse"},"TdDdUnauthorizedMessageResponse":{"additionalProperties":false,"properties":{"message":{"type":"string"}},"required":["message"],"title":"TdDdUnauthorizedMessageResponse","type":"object"},"TdDdUnauthorizedErrorResponse":{"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnauthorizedErrorResponse","type":"object"},"TdDdNotFoundErrorResponse":{"additionalProperties":false,"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdNotFoundErrorResponse","type":"object"},"TdDdInternalServerErrorResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdInternalServerErrorResponse","type":"object"}}}}
```

## Update system

> Updates an existing system with the provided payload. Only the provided fields are updated; omitted fields retain their previous values.\
> \
> Requires administrative privileges (\*\*administrator or service account\*\*).\
> \
> \*\*Request body:\*\*\
> \- \`system\` (required) – Object containing fields to update:\
> &#x20; \- \`name\` (optional, string) – Updated system name.\
> &#x20; \- \`external\_id\` (optional, string) – Updated external ID.\
> &#x20; \- \`df\_content\` (optional, object) – Updated dynamic template fields.<br>

```json
{"openapi":"3.0.0","info":{"title":"td-dd","version":"Truedat 8.12.2"},"paths":{"/api/systems/{id}":{"put":{"description":"Updates an existing system with the provided payload. Only the provided fields are updated; omitted fields retain their previous values.\n\nRequires administrative privileges (**administrator or service account**).\n\n**Request body:**\n- `system` (required) – Object containing fields to update:\n  - `name` (optional, string) – Updated system name.\n  - `external_id` (optional, string) – Updated external ID.\n  - `df_content` (optional, object) – Updated dynamic template fields.\n","operationId":"TdDdWeb.SystemController.update","parameters":[{"description":"System ID","in":"path","name":"id","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemUpdateRequest"}}},"description":"System update payload","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemResponse"}}},"description":"System updated"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnauthorizedResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdForbiddenResponse"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnprocessableEntityObjectResponse"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdInternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Update system","tags":["Systems"]}}},"components":{"schemas":{"SystemUpdateRequest":{"additionalProperties":false,"properties":{"system":{"additionalProperties":true,"properties":{"df_content":{"additionalProperties":true,"description":"Dynamic content","nullable":true,"type":"object"},"external_id":{"description":"External ID","nullable":true,"type":"string"},"name":{"description":"System name","nullable":true,"type":"string"}},"type":"object"}},"required":["system"],"title":"SystemUpdateRequest","type":"object"},"SystemResponse":{"additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"deleted_at":{"format":"date-time","nullable":true,"type":"string"},"df_content":{"additionalProperties":true,"nullable":true,"type":"object"},"dynamic_content":{"additionalProperties":true,"nullable":true,"type":"object"},"external_id":{"nullable":true,"type":"string"},"id":{"type":"integer"},"inserted_at":{"format":"date-time","nullable":true,"type":"string"},"name":{"type":"string"},"updated_at":{"format":"date-time","nullable":true,"type":"string"}},"required":["id","name"],"type":"object"}},"required":["data"],"title":"SystemResponse","type":"object"},"TdDdUnauthorizedResponse":{"anyOf":[{"$ref":"#/components/schemas/TdDdUnauthorizedMessageResponse"},{"$ref":"#/components/schemas/TdDdUnauthorizedErrorResponse"}],"description":"Unauthorized response from auth plug or error view","title":"TdDdUnauthorizedResponse"},"TdDdUnauthorizedMessageResponse":{"additionalProperties":false,"properties":{"message":{"type":"string"}},"required":["message"],"title":"TdDdUnauthorizedMessageResponse","type":"object"},"TdDdUnauthorizedErrorResponse":{"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnauthorizedErrorResponse","type":"object"},"TdDdForbiddenResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdForbiddenResponse","type":"object"},"TdDdUnprocessableEntityObjectResponse":{"additionalProperties":false,"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnprocessableEntityObjectResponse","type":"object"},"TdDdInternalServerErrorResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdInternalServerErrorResponse","type":"object"}}}}
```

## Delete system

> Marks a system as deleted (soft-delete) by setting its \`deleted\_at\` timestamp. The system is not physically removed from the database.\
> \
> Requires administrative privileges (\*\*administrator or service account\*\*).\
> \
> Once deleted, the system is excluded from default listings. It can still be included in searches by passing \`all=true\` as a filter.<br>

```json
{"openapi":"3.0.0","info":{"title":"td-dd","version":"Truedat 8.12.2"},"paths":{"/api/systems/{id}":{"delete":{"description":"Marks a system as deleted (soft-delete) by setting its `deleted_at` timestamp. The system is not physically removed from the database.\n\nRequires administrative privileges (**administrator or service account**).\n\nOnce deleted, the system is excluded from default listings. It can still be included in searches by passing `all=true` as a filter.\n","operationId":"TdDdWeb.SystemController.delete","parameters":[{"description":"System ID","in":"path","name":"id","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"System deleted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnauthorizedResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdForbiddenResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdNotFoundErrorResponse"}}},"description":"Not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnprocessableEntityObjectResponse"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdInternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Delete system","tags":["Systems"]}}},"components":{"schemas":{"TdDdUnauthorizedResponse":{"anyOf":[{"$ref":"#/components/schemas/TdDdUnauthorizedMessageResponse"},{"$ref":"#/components/schemas/TdDdUnauthorizedErrorResponse"}],"description":"Unauthorized response from auth plug or error view","title":"TdDdUnauthorizedResponse"},"TdDdUnauthorizedMessageResponse":{"additionalProperties":false,"properties":{"message":{"type":"string"}},"required":["message"],"title":"TdDdUnauthorizedMessageResponse","type":"object"},"TdDdUnauthorizedErrorResponse":{"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnauthorizedErrorResponse","type":"object"},"TdDdForbiddenResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdForbiddenResponse","type":"object"},"TdDdNotFoundErrorResponse":{"additionalProperties":false,"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdNotFoundErrorResponse","type":"object"},"TdDdUnprocessableEntityObjectResponse":{"additionalProperties":false,"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnprocessableEntityObjectResponse","type":"object"},"TdDdInternalServerErrorResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdInternalServerErrorResponse","type":"object"}}}}
```

## Update system

> Updates an existing system with the provided payload. Only the provided fields are updated; omitted fields retain their previous values.\
> \
> Requires administrative privileges (\*\*administrator or service account\*\*).\
> \
> \*\*Request body:\*\*\
> \- \`system\` (required) – Object containing fields to update:\
> &#x20; \- \`name\` (optional, string) – Updated system name.\
> &#x20; \- \`external\_id\` (optional, string) – Updated external ID.\
> &#x20; \- \`df\_content\` (optional, object) – Updated dynamic template fields.<br>

```json
{"openapi":"3.0.0","info":{"title":"td-dd","version":"Truedat 8.12.2"},"paths":{"/api/systems/{id}":{"patch":{"description":"Updates an existing system with the provided payload. Only the provided fields are updated; omitted fields retain their previous values.\n\nRequires administrative privileges (**administrator or service account**).\n\n**Request body:**\n- `system` (required) – Object containing fields to update:\n  - `name` (optional, string) – Updated system name.\n  - `external_id` (optional, string) – Updated external ID.\n  - `df_content` (optional, object) – Updated dynamic template fields.\n","operationId":"TdDdWeb.SystemController.update (2)","parameters":[{"description":"System ID","in":"path","name":"id","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemUpdateRequest"}}},"description":"System update payload","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemResponse"}}},"description":"System updated"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnauthorizedResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdForbiddenResponse"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnprocessableEntityObjectResponse"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdInternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Update system","tags":["Systems"]}}},"components":{"schemas":{"SystemUpdateRequest":{"additionalProperties":false,"properties":{"system":{"additionalProperties":true,"properties":{"df_content":{"additionalProperties":true,"description":"Dynamic content","nullable":true,"type":"object"},"external_id":{"description":"External ID","nullable":true,"type":"string"},"name":{"description":"System name","nullable":true,"type":"string"}},"type":"object"}},"required":["system"],"title":"SystemUpdateRequest","type":"object"},"SystemResponse":{"additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"deleted_at":{"format":"date-time","nullable":true,"type":"string"},"df_content":{"additionalProperties":true,"nullable":true,"type":"object"},"dynamic_content":{"additionalProperties":true,"nullable":true,"type":"object"},"external_id":{"nullable":true,"type":"string"},"id":{"type":"integer"},"inserted_at":{"format":"date-time","nullable":true,"type":"string"},"name":{"type":"string"},"updated_at":{"format":"date-time","nullable":true,"type":"string"}},"required":["id","name"],"type":"object"}},"required":["data"],"title":"SystemResponse","type":"object"},"TdDdUnauthorizedResponse":{"anyOf":[{"$ref":"#/components/schemas/TdDdUnauthorizedMessageResponse"},{"$ref":"#/components/schemas/TdDdUnauthorizedErrorResponse"}],"description":"Unauthorized response from auth plug or error view","title":"TdDdUnauthorizedResponse"},"TdDdUnauthorizedMessageResponse":{"additionalProperties":false,"properties":{"message":{"type":"string"}},"required":["message"],"title":"TdDdUnauthorizedMessageResponse","type":"object"},"TdDdUnauthorizedErrorResponse":{"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnauthorizedErrorResponse","type":"object"},"TdDdForbiddenResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdForbiddenResponse","type":"object"},"TdDdUnprocessableEntityObjectResponse":{"additionalProperties":false,"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnprocessableEntityObjectResponse","type":"object"},"TdDdInternalServerErrorResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdInternalServerErrorResponse","type":"object"}}}}
```

## Delete a system group

> Permanently removes a group from a system. The group is immediately removed from the system's group list.\
> \
> Requires administrative privileges (\*\*administrator or service account\*\*).<br>

```json
{"openapi":"3.0.0","info":{"title":"td-dd","version":"Truedat 8.12.2"},"paths":{"/api/systems/{system_id}/groups/{id}":{"delete":{"description":"Permanently removes a group from a system. The group is immediately removed from the system's group list.\n\nRequires administrative privileges (**administrator or service account**).\n","operationId":"TdDdWeb.GroupController.delete","parameters":[{"description":"System external ID","in":"path","name":"system_id","required":true,"schema":{"type":"string"}},{"description":"Group name","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Group deleted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnauthorizedResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdForbiddenResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdNotFoundErrorResponse"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdInternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Delete a system group","tags":["Systems"]}}},"components":{"schemas":{"TdDdUnauthorizedResponse":{"anyOf":[{"$ref":"#/components/schemas/TdDdUnauthorizedMessageResponse"},{"$ref":"#/components/schemas/TdDdUnauthorizedErrorResponse"}],"description":"Unauthorized response from auth plug or error view","title":"TdDdUnauthorizedResponse"},"TdDdUnauthorizedMessageResponse":{"additionalProperties":false,"properties":{"message":{"type":"string"}},"required":["message"],"title":"TdDdUnauthorizedMessageResponse","type":"object"},"TdDdUnauthorizedErrorResponse":{"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnauthorizedErrorResponse","type":"object"},"TdDdForbiddenResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdForbiddenResponse","type":"object"},"TdDdNotFoundErrorResponse":{"additionalProperties":false,"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdNotFoundErrorResponse","type":"object"},"TdDdInternalServerErrorResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdInternalServerErrorResponse","type":"object"}}}}
```

## List groups for a system

> Returns the list of groups associated with a specific system.\
> \
> Requires administrative privileges (\*\*administrator or service account\*\*).<br>

```json
{"openapi":"3.0.0","info":{"title":"td-dd","version":"Truedat 8.12.2"},"paths":{"/api/systems/{system_id}/groups":{"get":{"description":"Returns the list of groups associated with a specific system.\n\nRequires administrative privileges (**administrator or service account**).\n","operationId":"TdDdWeb.GroupController.index","parameters":[{"description":"System external ID","in":"path","name":"system_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupListResponse"}}},"description":"Group list response"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnauthorizedResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdForbiddenResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdNotFoundErrorResponse"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdInternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"List groups for a system","tags":["Systems"]}}},"components":{"schemas":{"GroupListResponse":{"additionalProperties":false,"properties":{"data":{"description":"List of group names for the system","items":{"type":"string"},"type":"array"}},"required":["data"],"title":"GroupListResponse","type":"object"},"TdDdUnauthorizedResponse":{"anyOf":[{"$ref":"#/components/schemas/TdDdUnauthorizedMessageResponse"},{"$ref":"#/components/schemas/TdDdUnauthorizedErrorResponse"}],"description":"Unauthorized response from auth plug or error view","title":"TdDdUnauthorizedResponse"},"TdDdUnauthorizedMessageResponse":{"additionalProperties":false,"properties":{"message":{"type":"string"}},"required":["message"],"title":"TdDdUnauthorizedMessageResponse","type":"object"},"TdDdUnauthorizedErrorResponse":{"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnauthorizedErrorResponse","type":"object"},"TdDdForbiddenResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdForbiddenResponse","type":"object"},"TdDdNotFoundErrorResponse":{"additionalProperties":false,"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdNotFoundErrorResponse","type":"object"},"TdDdInternalServerErrorResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdInternalServerErrorResponse","type":"object"}}}}
```

## List systems

> Returns a list of systems visible to the current user.\
> \
> \*\*Search behavior:\*\*\
> \- Uses the active search permission from the request context.\
> \- Supports the standard search payload conventions: \`query\`, \`filters\`, \`must\`, \`must\_not\`, \`with\`, and \`without\` keys.\
> \- By default, soft‑deleted systems are excluded via \`without = deleted\_at\`.\
> \- The \`class\` parameter can be used as a direct filter.\
> \
> Each system includes a \`structures\_count\` field with the count and type breakdown of associated data structures.\
> \
> No pagination is applied; the full list is returned.<br>

```json
{"openapi":"3.0.0","info":{"title":"td-dd","version":"Truedat 8.12.2"},"paths":{"/api/systems":{"get":{"description":"Returns a list of systems visible to the current user.\n\n**Search behavior:**\n- Uses the active search permission from the request context.\n- Supports the standard search payload conventions: `query`, `filters`, `must`, `must_not`, `with`, and `without` keys.\n- By default, soft‑deleted systems are excluded via `without = deleted_at`.\n- The `class` parameter can be used as a direct filter.\n\nEach system includes a `structures_count` field with the count and type breakdown of associated data structures.\n\nNo pagination is applied; the full list is returned.\n","operationId":"TdDdWeb.SystemController.index","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemListResponse"}}},"description":"System list response"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnauthorizedResponse"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdInternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"List systems","tags":["Systems"]}}},"components":{"schemas":{"SystemListResponse":{"additionalProperties":false,"properties":{"data":{"items":{"additionalProperties":false,"properties":{"df_content":{"additionalProperties":true,"nullable":true,"type":"object"},"dynamic_content":{"additionalProperties":true,"description":"Dynamic content with metadata","nullable":true,"type":"object"},"external_id":{"nullable":true,"type":"string"},"id":{"type":"integer"},"inserted_at":{"format":"date-time","nullable":true,"type":"string"},"name":{"type":"string"},"structures_count":{"additionalProperties":false,"nullable":true,"properties":{"count":{"type":"integer"},"types":{"items":{"additionalProperties":false,"properties":{"count":{"type":"integer"},"name":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"updated_at":{"format":"date-time","nullable":true,"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"}},"required":["data"],"title":"SystemListResponse","type":"object"},"TdDdUnauthorizedResponse":{"anyOf":[{"$ref":"#/components/schemas/TdDdUnauthorizedMessageResponse"},{"$ref":"#/components/schemas/TdDdUnauthorizedErrorResponse"}],"description":"Unauthorized response from auth plug or error view","title":"TdDdUnauthorizedResponse"},"TdDdUnauthorizedMessageResponse":{"additionalProperties":false,"properties":{"message":{"type":"string"}},"required":["message"],"title":"TdDdUnauthorizedMessageResponse","type":"object"},"TdDdUnauthorizedErrorResponse":{"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnauthorizedErrorResponse","type":"object"},"TdDdInternalServerErrorResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdInternalServerErrorResponse","type":"object"}}}}
```

## Create system

> Creates a new system with the provided payload.\
> \
> Requires administrative privileges (\*\*administrator or service account\*\*).\
> \
> \*\*Request body:\*\*\
> \- \`system\` (required) – Object containing:\
> &#x20; \- \`name\` (required, string) – The system name.\
> &#x20; \- \`external\_id\` (required, string) – Unique external identifier.\
> &#x20; \- \`df\_content\` (optional, object) – Dynamic template fields.<br>

```json
{"openapi":"3.0.0","info":{"title":"td-dd","version":"Truedat 8.12.2"},"paths":{"/api/systems":{"post":{"description":"Creates a new system with the provided payload.\n\nRequires administrative privileges (**administrator or service account**).\n\n**Request body:**\n- `system` (required) – Object containing:\n  - `name` (required, string) – The system name.\n  - `external_id` (required, string) – Unique external identifier.\n  - `df_content` (optional, object) – Dynamic template fields.\n","operationId":"TdDdWeb.SystemController.create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemCreateRequest"}}},"description":"System create payload","required":false},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemResponse"}}},"description":"System created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnauthorizedResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdForbiddenResponse"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnprocessableEntityObjectResponse"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdInternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Create system","tags":["Systems"]}}},"components":{"schemas":{"SystemCreateRequest":{"additionalProperties":false,"properties":{"system":{"additionalProperties":true,"properties":{"df_content":{"additionalProperties":true,"description":"Dynamic content (template fields)","nullable":true,"type":"object"},"external_id":{"description":"Unique external ID","type":"string"},"name":{"description":"System name","type":"string"}},"required":["name","external_id"],"type":"object"}},"required":["system"],"title":"SystemCreateRequest","type":"object"},"SystemResponse":{"additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"deleted_at":{"format":"date-time","nullable":true,"type":"string"},"df_content":{"additionalProperties":true,"nullable":true,"type":"object"},"dynamic_content":{"additionalProperties":true,"nullable":true,"type":"object"},"external_id":{"nullable":true,"type":"string"},"id":{"type":"integer"},"inserted_at":{"format":"date-time","nullable":true,"type":"string"},"name":{"type":"string"},"updated_at":{"format":"date-time","nullable":true,"type":"string"}},"required":["id","name"],"type":"object"}},"required":["data"],"title":"SystemResponse","type":"object"},"TdDdUnauthorizedResponse":{"anyOf":[{"$ref":"#/components/schemas/TdDdUnauthorizedMessageResponse"},{"$ref":"#/components/schemas/TdDdUnauthorizedErrorResponse"}],"description":"Unauthorized response from auth plug or error view","title":"TdDdUnauthorizedResponse"},"TdDdUnauthorizedMessageResponse":{"additionalProperties":false,"properties":{"message":{"type":"string"}},"required":["message"],"title":"TdDdUnauthorizedMessageResponse","type":"object"},"TdDdUnauthorizedErrorResponse":{"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnauthorizedErrorResponse","type":"object"},"TdDdForbiddenResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdForbiddenResponse","type":"object"},"TdDdUnprocessableEntityObjectResponse":{"additionalProperties":false,"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnprocessableEntityObjectResponse","type":"object"},"TdDdInternalServerErrorResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdInternalServerErrorResponse","type":"object"}}}}
```

## Create or upload metadata for a system

> Uploads or creates metadata for the specified system. This endpoint supports both file uploads (multipart/form-data) and JSON payloads.\
> \
> Requires administrative privileges (\*\*administrator or service account\*\*).\
> \
> \*\*Request body (multipart/form-data or JSON):\*\*\
> \- \`data\_structures\` (required) – Structure metadata (CSV file or JSON object).\
> \- \`data\_fields\` (optional) – Field metadata (CSV file).\
> \- \`data\_structure\_relations\` (optional) – Structure relations (CSV file or JSON object).\
> \- \`domain\` (optional, string) – Domain external ID.\
> \- \`source\` (optional, string) – Source external ID.\
> \- \`inherit\_domains\` (optional, string) – Whether to inherit domains (\`true\`/\`false\`).\
> \- \`job\_id\` (optional, string) – Job ID for tracking.\
> \
> The request is processed asynchronously by the configured loader worker. The endpoint returns \`202 Accepted\` immediately.<br>

```json
{"openapi":"3.0.0","info":{"title":"td-dd","version":"Truedat 8.12.2"},"paths":{"/api/systems/{system_id}/metadata":{"post":{"description":"Uploads or creates metadata for the specified system. This endpoint supports both file uploads (multipart/form-data) and JSON payloads.\n\nRequires administrative privileges (**administrator or service account**).\n\n**Request body (multipart/form-data or JSON):**\n- `data_structures` (required) – Structure metadata (CSV file or JSON object).\n- `data_fields` (optional) – Field metadata (CSV file).\n- `data_structure_relations` (optional) – Structure relations (CSV file or JSON object).\n- `domain` (optional, string) – Domain external ID.\n- `source` (optional, string) – Source external ID.\n- `inherit_domains` (optional, string) – Whether to inherit domains (`true`/`false`).\n- `job_id` (optional, string) – Job ID for tracking.\n\nThe request is processed asynchronously by the configured loader worker. The endpoint returns `202 Accepted` immediately.\n","operationId":"TdDdWeb.SystemMetadataController.create","parameters":[{"description":"System external ID","in":"path","name":"system_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemMetadataUploadRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/SystemMetadataUploadRequest"}}},"description":"System metadata payload","required":false},"responses":{"202":{"description":"Metadata accepted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnauthorizedResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdForbiddenResponse"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdInternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Create or upload metadata for a system","tags":["Systems"]}}},"components":{"schemas":{"SystemMetadataUploadRequest":{"additionalProperties":false,"properties":{"data_fields":{"description":"CSV file with field metadata","format":"binary","nullable":true,"type":"string"},"data_structure_relations":{"anyOf":[{"description":"CSV file with structure relations","format":"binary","type":"string"},{"additionalProperties":true,"description":"JSON object with structure relations","type":"object"}],"nullable":true},"data_structures":{"anyOf":[{"description":"CSV file with structure metadata","format":"binary","type":"string"},{"additionalProperties":true,"description":"JSON object with structure metadata","type":"object"}],"description":"Structure metadata (file or JSON object)"},"domain":{"description":"Domain external ID","nullable":true,"type":"string"},"inherit_domains":{"description":"Inherit domains (true/false)","nullable":true,"type":"string"},"job_id":{"description":"Job ID for tracking","nullable":true,"type":"string"},"source":{"description":"Source external ID","nullable":true,"type":"string"}},"required":["data_structures"],"title":"SystemMetadataUploadRequest","type":"object"},"TdDdUnauthorizedResponse":{"anyOf":[{"$ref":"#/components/schemas/TdDdUnauthorizedMessageResponse"},{"$ref":"#/components/schemas/TdDdUnauthorizedErrorResponse"}],"description":"Unauthorized response from auth plug or error view","title":"TdDdUnauthorizedResponse"},"TdDdUnauthorizedMessageResponse":{"additionalProperties":false,"properties":{"message":{"type":"string"}},"required":["message"],"title":"TdDdUnauthorizedMessageResponse","type":"object"},"TdDdUnauthorizedErrorResponse":{"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnauthorizedErrorResponse","type":"object"},"TdDdForbiddenResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdForbiddenResponse","type":"object"},"TdDdInternalServerErrorResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdInternalServerErrorResponse","type":"object"}}}}
```

## Update metadata for a system

> Updates system metadata using the provided payload. This endpoint is used for JSON‑based metadata updates.\
> \
> Requires administrative privileges (\*\*administrator or service account\*\*).\
> \
> \*\*Request body:\*\*\
> \- \`op\` (required, string) – The operation type (e.g., \`"merge"\`, \`"replace"\`).\
> \- \`values\` (required, array) – List of metadata records to apply.\
> \
> The request is processed asynchronously. The endpoint returns \`202 Accepted\` immediately.<br>

```json
{"openapi":"3.0.0","info":{"title":"td-dd","version":"Truedat 8.12.2"},"paths":{"/api/systems/{system_id}/metadata":{"put":{"description":"Updates system metadata using the provided payload. This endpoint is used for JSON‑based metadata updates.\n\nRequires administrative privileges (**administrator or service account**).\n\n**Request body:**\n- `op` (required, string) – The operation type (e.g., `\"merge\"`, `\"replace\"`).\n- `values` (required, array) – List of metadata records to apply.\n\nThe request is processed asynchronously. The endpoint returns `202 Accepted` immediately.\n","operationId":"TdDdWeb.SystemMetadataController.update","parameters":[{"description":"System external ID","in":"path","name":"system_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemMetadataUpdateRequest"}}},"description":"System metadata update payload","required":false},"responses":{"202":{"description":"Metadata update accepted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnauthorizedResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdForbiddenResponse"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdInternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Update metadata for a system","tags":["Systems"]}}},"components":{"schemas":{"SystemMetadataUpdateRequest":{"additionalProperties":false,"properties":{"op":{"description":"Operation type (e.g., 'merge', 'replace')","type":"string"},"values":{"description":"List of metadata records to apply","items":{"additionalProperties":true,"type":"object"},"type":"array"}},"required":["op","values"],"title":"SystemMetadataUpdateRequest","type":"object"},"TdDdUnauthorizedResponse":{"anyOf":[{"$ref":"#/components/schemas/TdDdUnauthorizedMessageResponse"},{"$ref":"#/components/schemas/TdDdUnauthorizedErrorResponse"}],"description":"Unauthorized response from auth plug or error view","title":"TdDdUnauthorizedResponse"},"TdDdUnauthorizedMessageResponse":{"additionalProperties":false,"properties":{"message":{"type":"string"}},"required":["message"],"title":"TdDdUnauthorizedMessageResponse","type":"object"},"TdDdUnauthorizedErrorResponse":{"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnauthorizedErrorResponse","type":"object"},"TdDdForbiddenResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdForbiddenResponse","type":"object"},"TdDdInternalServerErrorResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdInternalServerErrorResponse","type":"object"}}}}
```

## Update metadata for a system

> Updates system metadata using the provided payload. This endpoint is used for JSON‑based metadata updates.\
> \
> Requires administrative privileges (\*\*administrator or service account\*\*).\
> \
> \*\*Request body:\*\*\
> \- \`op\` (required, string) – The operation type (e.g., \`"merge"\`, \`"replace"\`).\
> \- \`values\` (required, array) – List of metadata records to apply.\
> \
> The request is processed asynchronously. The endpoint returns \`202 Accepted\` immediately.<br>

```json
{"openapi":"3.0.0","info":{"title":"td-dd","version":"Truedat 8.12.2"},"paths":{"/api/systems/{system_id}/metadata":{"patch":{"description":"Updates system metadata using the provided payload. This endpoint is used for JSON‑based metadata updates.\n\nRequires administrative privileges (**administrator or service account**).\n\n**Request body:**\n- `op` (required, string) – The operation type (e.g., `\"merge\"`, `\"replace\"`).\n- `values` (required, array) – List of metadata records to apply.\n\nThe request is processed asynchronously. The endpoint returns `202 Accepted` immediately.\n","operationId":"TdDdWeb.SystemMetadataController.update (2)","parameters":[{"description":"System external ID","in":"path","name":"system_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemMetadataUpdateRequest"}}},"description":"System metadata update payload","required":false},"responses":{"202":{"description":"Metadata update accepted"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdUnauthorizedResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdForbiddenResponse"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TdDdInternalServerErrorResponse"}}},"description":"Internal Server Error"}},"summary":"Update metadata for a system","tags":["Systems"]}}},"components":{"schemas":{"SystemMetadataUpdateRequest":{"additionalProperties":false,"properties":{"op":{"description":"Operation type (e.g., 'merge', 'replace')","type":"string"},"values":{"description":"List of metadata records to apply","items":{"additionalProperties":true,"type":"object"},"type":"array"}},"required":["op","values"],"title":"SystemMetadataUpdateRequest","type":"object"},"TdDdUnauthorizedResponse":{"anyOf":[{"$ref":"#/components/schemas/TdDdUnauthorizedMessageResponse"},{"$ref":"#/components/schemas/TdDdUnauthorizedErrorResponse"}],"description":"Unauthorized response from auth plug or error view","title":"TdDdUnauthorizedResponse"},"TdDdUnauthorizedMessageResponse":{"additionalProperties":false,"properties":{"message":{"type":"string"}},"required":["message"],"title":"TdDdUnauthorizedMessageResponse","type":"object"},"TdDdUnauthorizedErrorResponse":{"properties":{"errors":{"properties":{"detail":{"type":"string"}},"type":"object"}},"required":["errors"],"title":"TdDdUnauthorizedErrorResponse","type":"object"},"TdDdForbiddenResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdForbiddenResponse","type":"object"},"TdDdInternalServerErrorResponse":{"additionalProperties":false,"properties":{"errors":{"additionalProperties":false,"properties":{"detail":{"type":"string"}},"required":["detail"],"type":"object"}},"required":["errors"],"title":"TdDdInternalServerErrorResponse","type":"object"}}}}
```
