Skip to main content
PUT
https://sandbox.getcollate.io/api
/
v1
/
dataProducts
/
{id}
/
assets
/
add
PUT /v1/dataProducts/{id}/assets/add
from metadata.sdk import configure
from metadata.sdk.entities import DataProducts

configure(
    host="https://your-company.getcollate.io/api",
    jwt_token="your-jwt-token"
)

# Add input ports
DataProducts.add_input_ports(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "table-uuid-1", "type": "table"}]
)

# Remove input ports
DataProducts.remove_input_ports(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "table-uuid-1", "type": "table"}]
)

# Add output ports
DataProducts.add_output_ports(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "dashboard-uuid-1", "type": "dashboard"}]
)

# Remove output ports
DataProducts.remove_output_ports(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "dashboard-uuid-1", "type": "dashboard"}]
)

# Add assets
DataProducts.add_assets(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "table-uuid-2", "type": "table"}]
)

# Remove assets
DataProducts.remove_assets(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "table-uuid-2", "type": "table"}]
)
{
  "id": "b1839f98-f046-5f35-bdef-20f9b3395cb2",
  "name": "CustomerInsights",
  "fullyQualifiedName": "Marketing.CustomerInsights",
  "description": "Curated customer analytics data product",
  "version": 0.3,
  "updatedAt": 1769984330261,
  "updatedBy": "admin",
  "href": "http://localhost:8585/api/v1/dataProducts/b1839f98-f046-5f35-bdef-20f9b3395cb2",
  "domain": {
    "id": "a0729e98-e946-4e25-acde-10e8a2294ba1",
    "type": "domain",
    "name": "Marketing",
    "fullyQualifiedName": "Marketing",
    "deleted": false
  },
  "deleted": false,
  "owners": [],
  "experts": []
}

Ports & Assets

Manage the input ports, output ports, and associated assets of a data product. These endpoints allow you to add or remove data assets from a data product without replacing the entire entity.

Add Assets

Use PUT /v1/dataProducts/{id}/assets/add to add assets to a data product.
id
string
required
UUID of the data product.
assets
array
required
Array of entity references to add as assets.

Remove Assets

Use PUT /v1/dataProducts/{id}/assets/remove to remove assets from a data product.
id
string
required
UUID of the data product.
assets
array
required
Array of entity references to remove.
PUT /v1/dataProducts/{id}/assets/add
from metadata.sdk import configure
from metadata.sdk.entities import DataProducts

configure(
    host="https://your-company.getcollate.io/api",
    jwt_token="your-jwt-token"
)

# Add input ports
DataProducts.add_input_ports(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "table-uuid-1", "type": "table"}]
)

# Remove input ports
DataProducts.remove_input_ports(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "table-uuid-1", "type": "table"}]
)

# Add output ports
DataProducts.add_output_ports(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "dashboard-uuid-1", "type": "dashboard"}]
)

# Remove output ports
DataProducts.remove_output_ports(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "dashboard-uuid-1", "type": "dashboard"}]
)

# Add assets
DataProducts.add_assets(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "table-uuid-2", "type": "table"}]
)

# Remove assets
DataProducts.remove_assets(
    "b1839f98-f046-5f35-bdef-20f9b3395cb2",
    [{"id": "table-uuid-2", "type": "table"}]
)
{
  "id": "b1839f98-f046-5f35-bdef-20f9b3395cb2",
  "name": "CustomerInsights",
  "fullyQualifiedName": "Marketing.CustomerInsights",
  "description": "Curated customer analytics data product",
  "version": 0.3,
  "updatedAt": 1769984330261,
  "updatedBy": "admin",
  "href": "http://localhost:8585/api/v1/dataProducts/b1839f98-f046-5f35-bdef-20f9b3395cb2",
  "domain": {
    "id": "a0729e98-e946-4e25-acde-10e8a2294ba1",
    "type": "domain",
    "name": "Marketing",
    "fullyQualifiedName": "Marketing",
    "deleted": false
  },
  "deleted": false,
  "owners": [],
  "experts": []
}

Returns

Returns the updated data product object with the new version number reflecting the asset changes.

Error Handling

CodeError TypeDescription
400BAD_REQUESTInvalid request body or asset references
401UNAUTHORIZEDInvalid or missing authentication token
403FORBIDDENUser lacks permission to modify this data product
404NOT_FOUNDData product or referenced asset does not exist