Data Products API
Manage data products through a dedicated API surface that mirrors the existing Workspaces API. Data products provide the same capabilities — data assets, semantic models, verified queries, system prompts, front page configs, chat, skills, and compositions — under a streamlined data-products URL namespace. This enables API consumers to work with data products directly without needing to understand the internal workspace abstraction.
What's New
- Full CRUD operations for data products: list, create, get, update, and delete
- All workspace sub-resources available under data products: semantic models, verified queries, system prompts, front page configs, data assets, chat, compositions, skills, and unstructured assets
- Automatic field name translation — responses use
dataProductId,dataProductType, andexternalDataProductIdinstead of workspace terminology - Request bodies accept data-product field names (e.g.,
sourceDataProductId) which are transparently mapped to internal representations - OpenAPI documentation with dedicated "Data Products" tag groups
New Endpoints
Data Product CRUD
GET /api/v1/accounts/{accountId}/data-products— List data productsPOST /api/v1/accounts/{accountId}/data-products— Create data productGET /api/v1/accounts/{accountId}/data-products/{dataProductId}— Get data product detailsPATCH /api/v1/accounts/{accountId}/data-products/{dataProductId}— Update data product settingsDELETE /api/v1/accounts/{accountId}/data-products/{dataProductId}— Delete a data product
Data Product Sub-Resources
All workspace sub-resource endpoints are mirrored under /data-products/{dataProductId}/:
- Semantic Models:
GET,POST,PATCHat.../semantic-models/... - Verified Queries:
GET,POST,DELETEat.../verified-queries/... - System Prompts:
GET,POST,DELETEat.../system-prompts/... - Front Page Configs:
GET,POST,DELETEat.../front-page-configs/... - Data Assets:
GET,PATCHat.../data-assets - Chat:
POSTat.../chatand.../chat/stream - Skills:
GET,PUT,DELETEat.../skills/... - Unstructured Assets:
GET,POST,PATCH,DELETEat.../unstructured-assets/... - Users:
GET,PATCHat.../users - Compositions:
GET,POST,DELETEat.../compositions/...
Example Request
POST /api/v1/accounts/{accountId}/data-products
{
"name": "Sales Analytics",
"description": "Sales data product for reporting",
"dataSourceId": "default",
"dataAssets": [
{
"externalId": "asset-123",
"tableName": "orders",
"schemaName": "sales"
}
]
}Example Response
{
"ok": true,
"data": {
"dataProduct": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"accountId": "123e4567-e89b-12d3-a456-426614174000",
"name": "Sales Analytics",
"description": "Sales data product for reporting",
"dataSourceId": "987fcdeb-51a2-43e7-b123-456789abcdef",
"externalDataProductId": "ws-abc123",
"createdAt": "2026-03-02T12:00:00Z",
"updatedAt": "2026-03-02T12:00:00Z"
},
"dataAssets": [
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"dataProductId": "550e8400-e29b-41d4-a716-446655440000",
"tableName": "orders",
"schemaName": "sales"
}
]
}
}Deprecation Notice
All /workspaces/ endpoints are now marked as deprecated in the OpenAPI spec. They continue to function but will be removed in a future release. Migrate to the equivalent /data-products/ endpoints at your earliest convenience.
Getting Started
Replace /workspaces/{workspaceId} with /data-products/{dataProductId} in your API calls. Field names in request bodies and responses automatically use data-product terminology. The existing Workspaces API continues to work unchanged — both APIs operate on the same underlying resources.