For the complete documentation index, see llms.txt. This page is also available as Markdown.

Data Structures

Get bucket structures

post

Searches bucket structures using the provided filters and returns matching data structures.

Body
Other propertiesanyOptional
Responses
200

Bucket structures response

application/json
scroll_idstring · nullableOptional
post/api/buckets/structures
POST /api/buckets/structures HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 69

{
  "filters": {
    "domain_id": [
      101
    ]
  },
  "page": 0,
  "query": "customer",
  "size": 20
}
{
  "data": [
    {
      "domain_ids": [
        101
      ],
      "external_id": "ds_customer_email",
      "id": 123,
      "inserted_at": "2026-06-10T10:00:00Z",
      "metadata": {
        "description": "some description"
      },
      "name": "customer_email",
      "system": {
        "external_id": "sys1",
        "id": 1,
        "name": "System1"
      },
      "type": "Table",
      "updated_at": "2026-06-10T10:00:00Z",
      "version": 0
    }
  ],
  "filters": {
    "domain": [
      {
        "count": 1,
        "key": 101
      }
    ]
  },
  "scroll_id": null
}

Bulk update template content for data structures

post

Updates template content for data structures using a CSV upload.

Body
auto_publishbooleanOptional
langstringOptional
structuresstring · binaryRequired
Responses
200

Bulk update template content response

application/json
hashstringOptional
statusstringOptional
post/api/data_structures/bulk_update_template_content
POST /api/data_structures/bulk_update_template_content HTTP/1.1
Content-Type: multipart/form-data
Accept: */*
Content-Length: 71

{
  "auto_publish": false,
  "lang": "en",
  "structures": "@template_updates.csv"
}
{
  "hash": "abc123",
  "status": "JUST_STARTED",
  "task_reference": {
    "job_id": "1"
  }
}

Bulk upload data structure domains

post

Bulk uploads domain assignments for data structures from a CSV payload.

Body
structures_domainsstring · binaryRequired
Responses
200

Bulk upload domains response

application/json
idsinteger[]Optional
post/api/data_structures/bulk_upload_domains
POST /api/data_structures/bulk_upload_domains HTTP/1.1
Content-Type: multipart/form-data
Accept: */*
Content-Length: 48

{
  "structures_domains": "@structures_domains.csv"
}
{
  "errors": [
    {
      "external_id": "ds_customer_name",
      "message": {
        "field": [
          "missing"
        ]
      },
      "row": 2
    }
  ],
  "ids": [
    123,
    456
  ]
}

Update data structure

put

Updates the specified data structure using the supplied payload and optional inheritance flag.

Path parameters
idintegerRequired

Data structure ID

Query parameters
inheritbooleanOptional

Whether to inherit changes to versions

Default: false
Body
inheritbooleanOptional
Responses
200

Data structure updated

application/json
put/api/data_structures/{id}
PUT /api/data_structures/{id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 84

{
  "data_structure": {
    "name": "customer_email",
    "note": "Updated by API"
  },
  "inherit": false
}
{
  "data": {
    "domain_ids": [
      101
    ],
    "external_id": "ds_customer",
    "id": 123,
    "inserted_at": "2026-06-10T10:00:00Z",
    "metadata": {
      "description": "some description"
    },
    "name": "customer_table",
    "system": {
      "external_id": "sys1",
      "id": 1,
      "name": "SystemA"
    },
    "type": "Table",
    "updated_at": "2026-06-10T10:00:00Z",
    "user_permissions": {
      "confidential": true,
      "update": false,
      "view_profiling_permission": false
    },
    "version": 0
  },
  "user_permissions": {
    "confidential": true,
    "update": false,
    "view_profiling_permission": false
  }
}

Delete data structure

delete

Deletes the specified data structure, either logically or permanently depending on query parameters.

Path parameters
idintegerRequired

Data structure ID

Query parameters
logicalstring · enumOptional

If true, performs logical deletion (soft delete)

Default: falsePossible values:
Responses
204

Data structure deleted

No content

delete/api/data_structures/{id}
DELETE /api/data_structures/{id} HTTP/1.1
Accept: */*

No content

Update data structure

patch

Updates the specified data structure using the supplied payload and optional inheritance flag.

Path parameters
idintegerRequired

Data structure ID

Query parameters
inheritbooleanOptional

Whether to inherit changes to versions

Default: false
Body
inheritbooleanOptional
Responses
200

Data structure updated

application/json
patch/api/data_structures/{id}
PATCH /api/data_structures/{id} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 84

{
  "data_structure": {
    "name": "customer_email",
    "note": "Updated by API"
  },
  "inherit": false
}
{
  "data": {
    "domain_ids": [
      101
    ],
    "external_id": "ds_customer",
    "id": 123,
    "inserted_at": "2026-06-10T10:00:00Z",
    "metadata": {
      "description": "some description"
    },
    "name": "customer_table",
    "system": {
      "external_id": "sys1",
      "id": 1,
      "name": "SystemA"
    },
    "type": "Table",
    "updated_at": "2026-06-10T10:00:00Z",
    "user_permissions": {
      "confidential": true,
      "update": false,
      "view_profiling_permission": false
    },
    "version": 0
  },
  "user_permissions": {
    "confidential": true,
    "update": false,
    "view_profiling_permission": false
  }
}

Upload data structures metadata

post

Uploads data structures metadata via multipart form data and returns the uploaded version.

Body
data_fieldsstring · binary · nullableOptional

CSV file with field metadata

data_structure_relationsstring · binary · nullableOptional

CSV file with structure relations

data_structuresstring · binaryRequired

CSV file with structure metadata

domainstring · nullableOptional

Domain external ID to assign to all structures

external_idstring · nullableOptional

External ID of the structure to update synchronously

inherit_domainsstring · nullableOptional

Inherit domains from parent (true/false)

job_idstring · nullableOptional

Job ID for tracking

opstring · nullableOptional

Operation type (upsert, etc.)

parent_external_idstring · nullableOptional

Parent external ID for synchronous update

sourcestring · nullableOptional

Source external ID

Responses
200

Metadata upload completed

application/json
post/api/data_structures/metadata
POST /api/data_structures/metadata HTTP/1.1
Content-Type: multipart/form-data
Accept: */*
Content-Length: 179

{
  "data_fields": "@data_fields.csv",
  "data_structure_relations": "@data_structure_relations.csv",
  "data_structures": "@data_structures.csv",
  "external_id": "parent_structure_external_id"
}
{
  "data": {
    "external_id": "ds_customer_email",
    "group": "Group1",
    "id": 123,
    "name": "customer_email",
    "system": {
      "id": 1,
      "name": "System1"
    },
    "type": "table",
    "version": 1
  }
}

Upload data structures metadata

patch

Uploads data structures metadata via multipart form data and returns the uploaded version.

Body
data_fieldsstring · binary · nullableOptional

CSV file with field metadata

data_structure_relationsstring · binary · nullableOptional

CSV file with structure relations

data_structuresstring · binaryRequired

CSV file with structure metadata

domainstring · nullableOptional

Domain external ID to assign to all structures

external_idstring · nullableOptional

External ID of the structure to update synchronously

inherit_domainsstring · nullableOptional

Inherit domains from parent (true/false)

job_idstring · nullableOptional

Job ID for tracking

opstring · nullableOptional

Operation type (upsert, etc.)

parent_external_idstring · nullableOptional

Parent external ID for synchronous update

sourcestring · nullableOptional

Source external ID

Responses
200

Metadata upload completed

application/json
patch/api/data_structures/metadata
PATCH /api/data_structures/metadata HTTP/1.1
Content-Type: multipart/form-data
Accept: */*
Content-Length: 179

{
  "data_fields": "@data_fields.csv",
  "data_structure_relations": "@data_structure_relations.csv",
  "data_structures": "@data_structures.csv",
  "external_id": "parent_structure_external_id"
}
{
  "data": {
    "external_id": "ds_customer_email",
    "group": "Group1",
    "id": 123,
    "name": "customer_email",
    "system": {
      "id": 1,
      "name": "System1"
    },
    "type": "table",
    "version": 1
  }
}

List data structures

get

Retrieves a paginated list of data structures based on search parameters and permissions.

Responses
200

Data structures list response

application/json
scroll_idstring · nullableOptional
get/api/data_structures
GET /api/data_structures HTTP/1.1
Accept: */*
{
  "data": [
    {
      "domain_ids": [
        101
      ],
      "external_id": "ds_customer_email",
      "id": 123,
      "inserted_at": "2026-06-10T10:00:00Z",
      "metadata": {
        "description": "some description"
      },
      "name": "customer_email",
      "system": {
        "external_id": "sys1",
        "id": 1,
        "name": "System1"
      },
      "type": "Table",
      "updated_at": "2026-06-10T10:00:00Z",
      "version": 0
    }
  ],
  "filters": {
    "domain": [
      {
        "count": 1,
        "key": 101
      }
    ]
  },
  "scroll_id": null
}

Search structure tags

post

Searches structure tags with the given filters and returns paginated results including total count.

Body
min_idinteger · nullableOptional

Return structure tags with ID greater than or equal to this value

sincestring · nullableOptional

Return structure tags updated at or after this timestamp (ISO 8601)

sizeinteger · min: 1 · nullableOptional

Maximum number of results to return

Responses
200

Structure tag search response

application/json
post/api/data_structures/structure_tags/search
POST /api/data_structures/structure_tags/search HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 53

{
  "min_id": 1,
  "since": "2026-05-01T00:00:00Z",
  "size": 20
}
{
  "data": [
    {
      "comment": "example",
      "data_structure_id": 123,
      "id": 1,
      "inserted_at": "2026-05-07T10:00:00Z",
      "tag_id": 456,
      "updated_at": "2026-05-07T10:00:00Z"
    }
  ]
}

Get data structures metrics

post

Retrieves metrics for data structures using the provided filters, when permitted.

Body
pageintegerOptionalDefault: 0
sincestring · date_timeOptional
sizeintegerOptionalDefault: 50
Responses
200

Data structures metrics

application/json
post/api/data_structures/metrics
POST /api/data_structures/metrics HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 51

{
  "page": 0,
  "since": "2026-05-01T00:00:00Z",
  "size": 20
}
{
  "data": [
    {
      "confidential": false,
      "domain_ids": [
        101
      ],
      "id": 123,
      "inserted_at": "2026-06-10T10:00:00Z",
      "name": "customer_table",
      "system_id": 1,
      "type": "table",
      "updated_at": "2026-06-10T10:00:00Z",
      "version": 1
    }
  ]
}

Bulk update data structures

post

Performs a bulk update on matching data structures using the supplied update payload.

Body
Responses
200

Bulk update response

application/json
idsinteger[]Optional
post/api/data_structures/bulk_update
POST /api/data_structures/bulk_update HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 140

{
  "bulk_update_request": {
    "auto_publish": false,
    "search_params": {
      "filters": {
        "domain_id": [
          101
        ]
      }
    },
    "update_attributes": {
      "note": "Updated by API"
    }
  }
}
{
  "errors": [
    {
      "external_id": "ds_customer_name",
      "field": null,
      "message": "content_unchanged"
    }
  ],
  "ids": [
    123,
    456
  ]
}

Search data structures

post

Searches data structures using the supplied filters and returns matching results.

Body
Other propertiesanyOptional
Responses
200

Search data structures response

application/json
scroll_idstring · nullableOptional
post/api/data_structures/search
POST /api/data_structures/search HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 69

{
  "filters": {
    "domain_id": [
      101
    ]
  },
  "page": 0,
  "query": "customer",
  "size": 20
}
{
  "data": [
    {
      "domain_ids": [
        101
      ],
      "external_id": "ds_customer_email",
      "id": 123,
      "inserted_at": "2026-06-10T10:00:00Z",
      "metadata": {
        "description": "some description"
      },
      "name": "customer_email",
      "system": {
        "external_id": "sys1",
        "id": 1,
        "name": "System1"
      },
      "type": "Table",
      "updated_at": "2026-06-10T10:00:00Z",
      "version": 0
    }
  ],
  "filters": {
    "domain": [
      {
        "count": 1,
        "key": 101
      }
    ]
  },
  "scroll_id": null
}

Get structures for a system

get

Retrieves all data structures for the specified system.

Path parameters
system_idintegerRequired

System ID

Responses
200

System structures response

application/json
scroll_idstring · nullableOptional
get/api/systems/{system_id}/structures
GET /api/systems/{system_id}/structures HTTP/1.1
Accept: */*
{
  "data": [
    {
      "domain_ids": [
        101
      ],
      "external_id": "ds_customer_email",
      "id": 123,
      "inserted_at": "2026-06-10T10:00:00Z",
      "metadata": {
        "description": "some description"
      },
      "name": "customer_email",
      "system": {
        "external_id": "sys1",
        "id": 1,
        "name": "System1"
      },
      "type": "Table",
      "updated_at": "2026-06-10T10:00:00Z",
      "version": 0
    }
  ],
  "filters": {
    "domain": [
      {
        "count": 1,
        "key": 101
      }
    ]
  },
  "scroll_id": null
}

Last updated