> ## Documentation Index
> Fetch the complete documentation index at: https://docs.square1.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Quotas

> Session, weekly, and per-model budgets

Square1 is a shared pool, so usage is governed by three independent
budgets. A request must clear **all three** to run; each rejection has its
own error code so you always know which budget you hit.

## The three budgets

### 1. Session pool (yours)

A rolling activity window: your first request after a quiet period starts
a session (5 hours by default), and every request in that window draws
from the session budget. When the window ends, the budget resets.

* Exhaustion → `429 session_exhausted`, with `resets_at` in the error
  envelope.
* Standing → `x-session-*` headers, the `wellspring.session` block, or
  `GET /v1/usage`.

### 2. Weekly pool (yours)

A 7-day budget anchored to your activity. It resets automatically seven
days after it was anchored.

* Exhaustion → `429 weekly_exhausted`, with `resets_at`.
* Standing → `x-weekly-*` headers, `wellspring.weekly`, or
  `GET /v1/usage`.

### 3. Per-model daily cap (shared)

Each model has an operator-set daily token cap shared by **everyone**. It
resets at 09:00 KST.

* Exhaustion → `429 model_quota_exceeded`. Other models may still have
  headroom — this cap is per model, not per account.

## Weighted tokens

Your session and weekly pools are counted in **weighted** tokens: each
model has an operator-assigned weight, so heavier models consume your
budget faster than light ones. The weights themselves are not exposed —
every surface reports **percentages only** (`used_pct`,
`remaining_pct`), which is all you need for pacing and countdowns.

## Checking where you stand

```bash theme={null}
curl https://inference.square1.dev/v1/usage \
  -H "Authorization: Bearer $SQUARE1_API_KEY"
```

```json theme={null}
{
  "object": "usage",
  "session": {
    "used_pct": 42.1, "remaining_pct": 57.9,
    "resets_at": "2026-08-30T04:00:00.000Z", "resets_in_seconds": 9120,
    "by_model": [
      { "model_id": "kimi-k2.6", "request_count": 14, "pct_of_total": 61.0 },
      { "model_id": "deepseek-v4-pro", "request_count": 9, "pct_of_total": 39.0 }
    ]
  },
  "weekly": { "...": "same shape" }
}
```

Every chat completion also carries the same standing inline — see
[Quota feedback](/concepts/quota-feedback) — so long-running clients
rarely need to poll `/v1/usage` at all.

<Note>
  Budgets are **account-level**: all of your API keys draw from the same
  session and weekly pools.
</Note>
