---
title: "list_tenants"
method: GET
path: "/v1/tenants"
tags: ["tenants"]
---

# list_tenants

`GET /v1/tenants`

## Request

- Base URL: `https://ndi-api.nace.ai`
- URL: `https://ndi-api.nace.ai/v1/tenants`
- Auth: API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/nace/apis/ndi-platform-api/docs/v1/tenants/get.ts> (a function with typed inputs; its response is checked against the schema)

List the partner's tenants, oldest first, disabled ones included. Cost class: cacheable.

## Query parameters

- `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

- PageTenant
  - `items` Tenant[], required: This page's rows, in the list's order.
    - `created_at` string, date-time, required: When the tenant was created.
    - `data_retention` 'short' | 'zero_retention', required: Retention for document operations — a **client** setting, not a request field. A data-handling guarantee a caller can accidentally opt out of on one endpoint is not a guarantee, so this is configured per client at onboarding and appears in no request body.
    - `disabled` boolean, required: Whether the tenant is disabled. Its data is kept.
    - `display_name` string, nullable, required: Human-readable name of the tenant.
    - `external_ref` string, required: The partner's own reference for the tenant, unique per partner.
    - `id` string, uuid, required: NDI's id for the tenant; X-NDI-Tenant accepts it too.
    - `limits` TenantLimits, required: The limits in force for a tenant.
      - `max_concurrent_jobs` integer, required: Parse, split, classify, categorize, extract, ground and agent jobs this tenant may have running at once; more wait in the queue. NDI's own per-tenant cap applies when it is lower.
      - `rpm` integer, required: Requests per minute this tenant may make.
  - `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

- `504`: Gateway Timeout
- `default`: Typed error envelope used by every 4xx and 5xx. ``error.code`` distinguishes the failure; HTTP status is a consequence of the code.

---

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