---
title: "Update tenant quota and rate-limit configuration"
method: PUT
path: "/api/tenants/:id/quotas"
tags: ["Tenant Quotas"]
---

# Update tenant quota and rate-limit configuration

`PUT /api/tenants/:id/quotas`

## Request

- Base URL: `https://api.cernion.de`
- URL: `https://api.cernion.de/api/tenants/:id/quotas`
- Auth: none declared

Write/admin endpoint for tenant-specific quota and endpoint-class rate-limit overrides. Requires full-access token at gateway level and tenant-scope check in service.

## Path parameters

- `id` string, required

## Query parameters

- `token` string

## Request body

- object
  - `rateLimits` object
    - `read` integer
    - `write` integer
    - `compute` integer
  - `quotas` object
    - `project_max_bytes` integer: Project byte limit; 0 inherits CET_PROJECT_MAX_BYTES.
    - `project_max_files` integer: Project object limit; 0 inherits CET_PROJECT_MAX_FILES.
    - `project_max_file_bytes` integer: Object byte limit; 0 inherits CET_PROJECT_MAX_FILE_BYTES.
    - `project_chunk_bytes` integer: Upload chunk size; 0 inherits CET_PROJECT_CHUNK_BYTES.
    - `llm_tokens_per_day` integer
    - `llm_tokens_per_month` integer
    - `max_async_jobs_per_day` integer
    - `max_rag_chunks_per_month` integer
  - `token` string: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.

## Response `200`

Updated tenant quota snapshot.

## Other responses

- `403`: Tenant scope violation or missing full-access authorization.
- `422`: Invalid payload (unknown keys or non-numeric values).

---

[API](https://skmtc.dev/cernion/apis/cernion-energy-tools-api.md) · [All operations](https://skmtc.dev/cernion/apis/cernion-energy-tools-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cernion/apis/cernion-energy-tools-api/revisions/cdb94473b538?raw)
