---
title: "List Tenants"
method: GET
path: "/api/admin/tenants"
tags: ["admin"]
---

# List Tenants

`GET /api/admin/tenants`

## Request

- Base URL: `https://api.advisorppc.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.advisorppc.com/api/admin/tenants`
- Auth: HTTP bearer

Platform-wide tenant roster with each tenant's entitlement.

Cross-tenant by definition, so it runs on the audited superuser bypass path
rather than pretending to be a tenant-scoped read. Returns no email address
and no Stripe identifier — an operator picking a plan needs the tenant, its
tier, and who owns the row, not the customer's PII.

## Query parameters

- `q` string, nullable
- `limit` integer
- `offset` integer

## Headers

- `X-Tenant-Id` integer, nullable

## Response `200`

Successful Response

- TenantRoster
  - `tenants` TenantPlanRow[], required
    - `tenantId` string, required
    - `name` string, required
    - `tier` string, required
    - `status` string, required
    - `billingSource` string, required
    - `members` integer, required
    - `updatedAt` string, nullable
    - `editable` boolean, required
  - `total` integer, required
  - `limit` integer, required
  - `offset` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/advisorppc/apis/advisorppc-api.md) · [All operations](https://skmtc.dev/advisorppc/apis/advisorppc-api/llms.txt) · [OpenAPI document](https://skmtc.dev/advisorppc/apis/advisorppc-api/revisions/3441bd729e0c?raw)
