---
title: "list_domains"
method: GET
path: "/v1/domains"
tags: ["domains"]
---

# list_domains

`GET /v1/domains`

## Request

- Base URL: `https://ndi-api.nace.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://ndi-api.nace.ai/v1/domains`
- Auth: API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/nace/apis/ndi-service/docs/v1/domains/get.ts> (a function with typed inputs; its response is checked against the schema)

List every domain visible to the caller. Cost class: cacheable.

Returns the platform-owned domains (``generic`` and the curated verticals,
all published and selectable) and the calling tenant's own rows.

Args:
    session: Database session.
    caller: The authenticated tenant.
    owner: Restrict to ``platform`` or ``tenant`` rows.
    status: Restrict to ``draft`` or ``published`` rows.
    cursor: Opaque cursor from a previous page.
    limit: Rows per page.

Returns:
    One page of domain summaries with an exact total.

## Query parameters

- `owner` 'platform' | 'tenant', nullable: Filter by ownership: `platform` (standard) or `tenant` (yours).
- `status` 'draft' | 'published', nullable: Filter by lifecycle status.
- `cursor` string, nullable: Opaque cursor from a previous page's `next_cursor`. Omit for the first page.
- `limit` integer: Rows per page.

## Response `200`

Successful Response

- PageDomainSummary
  - `items` DomainSummary[], required: This page's rows, in the list's order.
    - `domain_id` string, uuid, required
    - `slug` string, required
    - `display_name` string, required
    - `owner` 'platform' | 'tenant', required
    - `version` integer, required
    - `status` 'draft' | 'published', required
    - `parent_slug` string, nullable: Inheritance lineage for platform domains that extend a base vocabulary.
    - `class_count` integer, required
    - `selectable` boolean, required: True once published; a workspace may only pin a published version.
  - `next_cursor` string, nullable: Opaque; null means the last page.
  - `total_count` integer, required: Exact, and filtered by the caller's access predicate.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `402`: Payment Required
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `410`: Gone
- `413`: Request Entity Too Large
- `422`: Unprocessable Entity
- `424`: Failed Dependency
- `429`: Too Many Requests
- `500`: Internal Server Error
- `501`: Not Implemented
- `503`: Service Unavailable
- `504`: Gateway Timeout

---

[API](https://skmtc.dev/nace/apis/ndi-service.md) - [All operations](https://skmtc.dev/nace/apis/ndi-service/llms.txt) - [OpenAPI document](https://skmtc.dev/nace/apis/ndi-service/revisions/d9d1f8ec2207?raw)
