generic, financial, legal, audit, etc.)
are published and ready to use. Tenant domains are authored by your organization and
visible only to you.
All list routes use keyset cursor pagination (cursor / next_cursor).
Generate domain draft
POST /v1/domains.
Request body:
description(required) — What kinds of files belong in this domain.display_name(optional) — Preferred display name; overrides the model’s suggestion.slug(optional) — Preferred slug; overrides the model’s suggestion.
suggested_slug, suggested_display_name, and
a validation object (same shape as create/publish). The draft is normalized so
rule R0 and the other publish gates are satisfied.
List domains
owner(optional) —platformortenant.status(optional) —draftorpublished.cursor(optional) — Opaque cursor fromnext_cursor.limit(optional, default 50, max 200)
Get domain
Create domain
draft status. Drafts are editable and not yet
usable by workspaces. Omitting ontology copies the platform’s generic ontology.
Request:
slug(required) — Unique slug for the tenant, slug pattern, max 64 chars. Reserved platform slugs are refused.display_name(required, 1–200 chars) — Human-readable label.taxonomy(required) — The classification vocabulary.ontology(optional) — Knowledge-graph node and edge types. Omit to inherit the platform generic ontology.
validation block so you know whether
a publish call would succeed before you make it.
Errors:
reserved_domain_slug(409) — Slug is reserved for platform use.domain_validation_failed(422) — Taxonomy or ontology failed validation.
Update domain
- Editing a draft mutates the draft in place.
- Editing a published domain creates version n+1 as a new draft, leaving version n untouched.
display_name, taxonomy, ontology.
Response: Same shape as Create.
Publish domain
domain_validation_failed with the full error list.
Request body: {} (empty)
Response: Same shape as Create, with status: "published" and published_at set.
Errors:
domain_validation_failed(422) — Taxonomy or ontology failed the publish gate.