Skip to main content

Master Data

Space-scoped endpoints for creating and managing version-controlled reference and master datasets. Supports schema editing, row management, draft/publish versioning, import/export, and foreign key relationships.

Feature Gate

All master data endpoints require the master_data.enabled feature to be enabled.

Base Path

/spaces/{slug}/master-data

All endpoints are scoped to a space via the {slug} path parameter.

Authentication

All endpoints require an authenticated user session. Mutating operations enforce audit logging and authorization.


Dataset CRUD

Create Dataset

POST /spaces/{slug}/master-data/datasets

Create a new reference or master dataset.

Request Body

{
"name": "Country Codes",
"description": "ISO 3166-1 country codes",
"category": "reference",
"slug": "country-codes"
}
FieldTypeRequiredDescription
namestringYesDisplay name
descriptionstringNoDataset description
categorystringNoreference or master
slugstringNoURL-friendly identifier

List Datasets

GET /spaces/{slug}/master-data/datasets
ParameterTypeDefaultDescription
categorystringnullFilter by reference or master
skipint0Pagination offset
limitint100Page size (max 500)

Get Dataset

GET /spaces/{slug}/master-data/datasets/{dataset_id}

Returns the dataset including column definitions.

Get Dataset by Slug

GET /spaces/{slug}/master-data/datasets/by-slug/{dataset_slug}

Alternative lookup by dataset slug instead of UUID.

Update Dataset

PATCH /spaces/{slug}/master-data/datasets/{dataset_id}

Update mutable metadata (name, description, category).

Delete Dataset

DELETE /spaces/{slug}/master-data/datasets/{dataset_id}

Deletes a dataset and all its versions, rows, and drafts.


Schema (Columns)

Add Column

POST /spaces/{slug}/master-data/datasets/{dataset_id}/columns

Request Body

{
"name": "country_code",
"data_type": "string",
"is_primary_key": true,
"is_nullable": false,
"description": "ISO 3166-1 alpha-2 code"
}

Update Column

PATCH /spaces/{slug}/master-data/columns/{column_id}

Delete Column

DELETE /spaces/{slug}/master-data/columns/{column_id}

Rows

Add Row

POST /spaces/{slug}/master-data/datasets/{dataset_id}/rows

List Rows

GET /spaces/{slug}/master-data/datasets/{dataset_id}/rows

Supports filtering, sorting, and pagination.

ParameterTypeDescription
skipintPagination offset
limitintPage size (max 500)
sort_columnstringColumn name to sort by
sort_directionstringasc or desc
filter_columnstringColumn name to filter
filter_valuestringFilter value

Update Row

PATCH /spaces/{slug}/master-data/rows/{row_id}

Delete Row

DELETE /spaces/{slug}/master-data/rows/{row_id}

Bulk Import Rows

POST /spaces/{slug}/master-data/datasets/{dataset_id}/rows/import

Import rows from CSV or JSON format. Supports upsert and replace strategies.

Export Rows

GET /spaces/{slug}/master-data/datasets/{dataset_id}/rows/export

Export rows as CSV or JSON.

ParameterTypeDefaultDescription
formatstringcsvcsv or json

Versioning

List Versions

GET /spaces/{slug}/master-data/datasets/{dataset_id}/versions

Get Version

GET /spaces/{slug}/master-data/versions/{version_id}

Publish Version

POST /spaces/{slug}/master-data/datasets/{dataset_id}/publish

Creates an immutable point-in-time snapshot of the current dataset state.

Get Version Rows

GET /spaces/{slug}/master-data/versions/{version_id}/rows

Read-only access to rows as they existed at the time of publishing.

Compare Versions

GET /spaces/{slug}/master-data/datasets/{dataset_id}/versions/compare
ParameterTypeDescription
from_versionUUIDBaseline version
to_versionUUIDComparison version

Drafts

Create Draft

POST /spaces/{slug}/master-data/datasets/{dataset_id}/drafts

Create a working copy for editing before publishing.

List Drafts

GET /spaces/{slug}/master-data/datasets/{dataset_id}/drafts

Get Draft

GET /spaces/{slug}/master-data/drafts/{draft_id}

Update Draft

PATCH /spaces/{slug}/master-data/drafts/{draft_id}

Delete Draft

DELETE /spaces/{slug}/master-data/drafts/{draft_id}

Apply Draft

POST /spaces/{slug}/master-data/drafts/{draft_id}/apply

Apply draft changes to the live dataset.


Foreign Keys

Add Foreign Key

POST /spaces/{slug}/master-data/datasets/{dataset_id}/foreign-keys

Define a relationship between columns across datasets.

List Foreign Keys

GET /spaces/{slug}/master-data/datasets/{dataset_id}/foreign-keys

Delete Foreign Key

DELETE /spaces/{slug}/master-data/foreign-keys/{fk_id}