Skip to main content
A domain is a taxonomy (classification vocabulary) and a knowledge-graph ontology, versioned together. Platform domains (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

Ask the model for an unsaved taxonomy and ontology from a free-text domain description. Cost class: slow. Nothing is persisted and no job is created — edit the draft, then create it with 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.
Response: taxonomy, ontology, 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

List all domains visible to the caller: platform-owned published domains plus the tenant’s own domains in any status. Query parameters:
  • owner (optional) — platform or tenant.
  • status (optional) — draft or published.
  • cursor (optional) — Opaque cursor from next_cursor.
  • limit (optional, default 50, max 200)
Response:

Get domain

Read one domain version with inheritance already resolved. The taxonomy and ontology include any entries inherited from a parent domain. Response:

Create domain

Create a tenant-owned domain in draft status. Drafts are editable and not yet usable by workspaces. Omitting ontology copies the platform’s generic ontology. Request:
Body fields:
  • 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.
Response (201 Created):
Every create and update response includes a 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

Edit a draft, or spin a published domain into a new draft version.
  • Editing a draft mutates the draft in place.
  • Editing a published domain creates version n+1 as a new draft, leaving version n untouched.
Existing workspaces remain pinned to the version they were created with. Request:
Body fields: Any subset of display_name, taxonomy, ontology. Response: Same shape as Create.

Publish domain

Freeze a draft and make it selectable by workspaces. Validation must pass; a failing publish returns 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.

Built-in platform domains

The following slugs are reserved and available to every organization: