# Tenants: List tenants (https://docs.envocal.ai/api-reference/tenants/list-tenants/) > Every tenant the caller can act on: the key's own tenant and all its sub-tenants, sorted by name. ## GET `/v1/tenants` Every tenant the caller can act on: the key's own tenant and all its sub-tenants, sorted by name. **Required permission:** `tenants:read` ### Parameters | Name | In | | Type | Description | | --- | --- | --- | --- | --- | | `extraId` | query | | string | Only tenants with this external id (the `extraId` you gave them, e.g. your own customer number). | ### Responses **200** — TenantDto[]: The reachable tenants. | Field | Type | | Description | | --- | --- | --- | --- | | `id` | string | required | Tenant id. | | `name` | string | required | Display name. | | `parentId` | string | nullable | Parent tenant id. | | `type` | `main` \| `sub` \| `customer` | required | Tenant type. Determines which child types it may contain: `main` → `main`, `sub`, `customer`; `sub` → `customer`; `customer` has no children. | | `domain` | string | nullable | Email domain of the organisation (e.g. `example.com`), unique across tenants. Optional. | | `extraId` | string | nullable | Your own reference for this tenant (e.g. a CRM or billing id). Optional, free text. | | `region` | string | required | Data region the tenant's data lives in (`eu`); chosen when the tenant was created, and carried by its API keys (`evk_eu_...`). | **401**: Missing, invalid, revoked or expired API key. **403**: The key lacks the required permission, or the tenant/resource is outside its reach. **429**: Rate limit exceeded. Retry after the number of seconds in the Retry-After header. ### Example ```bash curl -X GET "https://api.envocal.ai/v1/tenants" \ -H "Authorization: Bearer evk_eu_..." ```