---
title: "Your monthly allowance: limit, used, remaining, percent, and what it buys per model"
method: GET
path: "/v1/usage/quota"
tags: ["usage"]
---

# Your monthly allowance: limit, used, remaining, percent, and what it buys per model

`GET /v1/usage/quota`

## Request

- Base URL: `https://api.ditto.audio` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ditto.audio/v1/usage/quota`
- Auth: HTTP bearer

The allowance is BILLED SECONDS, and each model spends it at its own rate: a second of Kokoro costs 1.5, a second of XTTS costs 3. So there is one `percentUsed`, and `byModel[].remainingSeconds` says how much audio the remainder buys in each model — those are ALTERNATIVES drawn from the same pot, not separate budgets.

`limitSeconds` and `remainingSeconds` are `null` when the account is unmetered. Exceeding the allowance answers `402 QUOTA_EXCEEDED` — deliberately not 429, because waiting does not help until `resetsAt`.

The aggregate numbers ride on every synthesis response as `X-Ditto-Quota-*` headers, so an integration can watch its own headroom without polling this.

## Response `200`

---

[API](https://skmtc.dev/ditto/apis/ditto-audio-api.md) · [All operations](https://skmtc.dev/ditto/apis/ditto-audio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ditto/apis/ditto-audio-api/revisions/30c8d7c218da?raw)
