Skip to main content
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

Every chat completion also carries the same standing inline — see Quota feedback — so long-running clients rarely need to poll /v1/usage at all.
Budgets are account-level: all of your API keys draw from the same session and weekly pools.