Data Domains API
Manage data domains — logical groupings of data products organized by business function.
Endpoints Overview
| Method | Endpoint | Description |
|---|---|---|
| GET | /organizations/{org_id}/domains | List all domains |
| POST | /organizations/{org_id}/domains | Create domain |
| GET | /organizations/{org_id}/domains/{id} | Get domain |
| PATCH | /organizations/{org_id}/domains/{id} | Update domain |
| DELETE | /organizations/{org_id}/domains/{id} | Delete domain |
| GET | /organizations/{org_id}/domains/{id}/products | List domain products |
| POST | /organizations/{org_id}/domains/{id}/products | Assign products |
| DELETE | /organizations/{org_id}/domains/{id}/products/{product_id} | Remove product |
| GET | /organizations/{org_id}/domains/{id}/scorecard | Get governance scorecard |
List Domains
GET /organizations/{org_id}/domains
Query Parameters
| Parameter | Type | Description |
|---|---|---|
parent_id | uuid | Filter by parent domain (for sub-domains) |
include_children | boolean | Include sub-domains in results (default: false) |
Response
{
"items": [
{
"id": "...",
"name": "Finance",
"description": "All finance-related data products",
"icon": "💰",
"owner": {"id": "...", "name": "CFO"},
"stewards": [{"id": "...", "name": "Finance Steward"}],
"parent_id": null,
"product_count": 42,
"created_at": "2025-06-01T00:00:00Z"
}
],
"total": 8
}
Create Domain
POST /organizations/{org_id}/domains
Request Body
{
"name": "Revenue Recognition",
"description": "Revenue recognition and billing data products",
"icon": "📊",
"owner_id": "user-uuid",
"steward_ids": ["user-uuid-1", "user-uuid-2"],
"parent_id": "finance-domain-uuid"
}
Required Fields
| Field | Type | Description |
|---|---|---|
name | string | Domain display name |
Optional Fields
| Field | Type | Description |
|---|---|---|
description | string | Domain description |
icon | string | Emoji icon |
owner_id | uuid | Domain owner user ID |
steward_ids | array | Steward user IDs |
parent_id | uuid | Parent domain ID (for sub-domains) |
Response
Returns the created domain with status 201 Created.
Update Domain
PATCH /organizations/{org_id}/domains/{id}
Include only fields to update.
Delete Domain
DELETE /organizations/{org_id}/domains/{id}
caution
Deleting a domain does not delete its products — they are unlinked from the domain.
List Domain Products
GET /organizations/{org_id}/domains/{id}/products
Returns all data products assigned to this domain, across all spaces.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number |
size | integer | Items per page |
space_slug | string | Filter by space |
Assign Products
POST /organizations/{org_id}/domains/{id}/products
{
"product_ids": ["product-uuid-1", "product-uuid-2"]
}
Governance Scorecard
GET /organizations/{org_id}/domains/{id}/scorecard
Response
{
"domain_id": "...",
"domain_name": "Finance",
"total_products": 42,
"documentation_coverage": 0.85,
"ownership_coverage": 0.95,
"quality_coverage": 0.72,
"contract_coverage": 0.60,
"overall_score": 0.78
}