---
title: "List Internal Tenants"
method: GET
path: "/api/v2/freshness/internal/tenants"
tags: ["APPS_V2"]
---

# List Internal Tenants

`GET /api/v2/freshness/internal/tenants`

Tenants the dashboard can inspect, for the selector.

Reads the company registry, not the freshness view: the registry is a
small table while a fleet-wide `DISTINCT` over the view is a full rollup
(~10s measured on prod).

## Headers

- `x-tenant` string, nullable

## Response `200`

Successful Response

- InternalTenantListResponse — Tenants the internal dashboard can inspect, from the company registry. Sourced from `public_companies` rather than from the freshness view: the registry is a small table, whereas a `DISTINCT tenant_name` over the view is a fleet-wide rollup. Listing a tenant here says it EXISTS, not that it has ingestion runs — a tenant with none is exactly what an operator needs to be able to see.
  - `tenants` InternalTenant[]
    - `name` string, required
    - `platform` string, required
    - `status` string, required

## Other responses

- `403` — Internal dashboard — Altimate staff only
- `404` — Unknown tenant
- `422` — Validation Error

---

[API](https://skmtc.net/myaltimate/apis/fastapi.md) · [All operations](https://skmtc.net/myaltimate/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/myaltimate/fastapi/revisions/b9cc757ca795/schema)
