---
title: "Get effective rate limits + override row for a tenant (admin only)"
method: GET
path: "/v1/admin/tenants/{tenant_id}/rate-limits"
---

# Get effective rate limits + override row for a tenant (admin only)

`GET /v1/admin/tenants/{tenant_id}/rate-limits`

## Request

- Base URL: `https://api.clichefactory.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.clichefactory.com/v1/admin/tenants/{tenant_id}/rate-limits`
- Auth: none declared

## Path parameters

- `tenant_id` string, required

## Headers

- `X-API-KEY` string, nullable

## Response `200`

Successful Response

- TenantRateLimitsResponse: Body for ``GET /v1/admin/tenants/{tenant_id}/rate-limits``. Carries: * ``defaults`` — the server-wide :class:`Settings` values, so the admin UI can render placeholders like "Default: 2/s" alongside each input. * ``effective`` — what the limiter would actually use right now (defaults merged with the cached override, per-field). * ``override`` — the raw override row (or ``None`` if no overrides set). * ``ceilings`` — the validation upper bounds so the UI can surface them next to inputs without hard-coding the numbers.
  - `tenant_id` string, required
  - `defaults` object, required
  - `effective` object, required
  - `override` TenantRateLimitsOverride: Raw override row as persisted in ``tenant_rate_overrides``.
    - `tenant_id` string, required
    - `heavy_rate_per_sec` number, nullable
    - `heavy_burst` integer, nullable
    - `general_rate_per_sec` number, nullable
    - `general_burst` integer, nullable
    - `notes` string, nullable
    - `updated_at` string, date-time, nullable
    - `updated_by` string, nullable
  - `ceilings` object, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/clichefactory/apis/aio-server.md) · [All operations](https://skmtc.dev/clichefactory/apis/aio-server/llms.txt) · [OpenAPI document](https://skmtc.dev/clichefactory/apis/aio-server/revisions/9bd59f9bbb31?raw)
