caft/docs
Dashboard

Monthly plans

A fixed monthly price for a number of credits, used in 5-hour, weekly and monthly windows.

Requests to the models a plan covers use its credits instead of your balance. One plan covers every API key on your account and works with any OpenAI-compatible tool.

Plans

PlanPriceFirst monthCredits a monthPer 5 hoursPer weekRequests a minute
$10 plan plan10$10 / month$51,00020050060
$25 plan plan25$25 / month$12.502,7505501,375120
$50 plan plan50$50 / month$255,5001,1002,750240

Plans cover GLM-5.3, GLM-5.3-Flash and DeepSeek V4.1 Flash. Other models bill your balance. Model ids: glm-5.3-flash, glm-5.3, deepseek-v4.1-flash.

What a request uses

  • Credits for its input, cached input and output tokens, at that model's rates. The rates follow the market and can change at any time.
  • A request that fails before any output uses nothing.
  • The Usage page in the dashboard shows the credits each request used.
  • Over the requests-a-minute limit: 429 rate_limit_exceeded. Wait for Retry-After.

How far credits go

Loading the current figures…

Limits and resets

WindowLimitResets
5h20% of the month's credits5 hours after your first request in it
week50%Every 7 days from when your plan started
month100%At the end of the paid period

A request goes through when every window has room. Its credits count in full, even past a limit; the next request then waits for the reset. Unused credits don't carry over.

When you reach a limit

The request gets HTTP 429 with code plan_limit, and nothing is charged. Retry-After is the seconds until the window resets.

HTTP
HTTP/2 429
retry-after: 7800
x-caft-plan-limit: 5h
x-caft-plan-reset: 2026-10-19T14:05:00Z

{
  "error": {
    "code": "plan_limit",
    "type": "plan_limit",
    "window": "5h",
    "resets_at": "2026-10-19T14:05:00Z",
    "message": "Plan limit reached for the 5h window. It resets at 2026-10-19T14:05:00Z. To keep going at pay-as-you-go prices, turn on Use balance under Billing in the dashboard."
  }
}

To keep going at normal prices, turn on Use balance when the plan limit is reached under Billing in the dashboard. It is off by default.

Check your usage

Response headers

On every response a plan pays for:

HeaderValue
X-Caft-PlanYour plan: plan10, plan25, plan50.
X-Caft-Plan-5h-PctPercent of the 5-hour window used.
X-Caft-Plan-Week-PctPercent of the week used.
X-Caft-Plan-Month-PctPercent of the month used.
X-Caft-Plan-ResetWhen the next window resets (RFC 3339, UTC).

Plan API

GET https://caft.dev/api/plan with your API key returns your plan and its windows in credits ({"plan": null} without a plan).

Shell
curl https://caft.dev/api/plan \
  -H "Authorization: Bearer $CAFT_API_KEY"
JSON
{
  "plan": { "tier": "plan10", "status": "active", "currentPeriodEnd": "2026-11-18T09:12:00.000Z", "useBalanceAtLimit": false, ... },
  "card": {
    "bars": [
      { "name": "5h", "pct": 42, "resetsAt": 1792418700, "credits": 200, "creditsLeft": 116 },
      { "name": "week", "pct": 18, "resetsAt": 1792833120, "credits": 500, "creditsLeft": 410 },
      { "name": "month", "pct": 7, "resetsAt": 1794993120, "credits": 1000, "creditsLeft": 930 }
    ],
    "tightest": "5h",
    "creditsLeft": 116
  }
}

card.creditsLeft is what you can use right now. Accounts with an email address also get an email at 80% and 100% of the month.

Buying a plan

Under Billing in the dashboard:

  • By card: renews monthly until you cancel.
  • From your balance: 30 days. Auto-renew from balance renews it if your balance covers the price.
  • With x402 (agents and wallet accounts): POST https://caft.dev/api/x402/plan?tier=plan10, paid like an x402 top-up. 30 days, no renewal.

The first month is half price, once per person, by card or from the balance. It needs a verified email address: a wallet-opened account without one doesn't get it, and neither does a purchase through x402. It is also once per card: a discounted plan paid with a card that already had it on another account is cancelled and refunded in full, and you can buy it again at the full price.

Changing or cancelling

  • Upgrade: starts at once. The unused part of the old plan is credited to your balance: the price × (1 − the larger of the period used and the credits used).
  • Downgrade: takes effect at the next renewal.
  • Cancel a card plan under Billing → Manage. It runs to the end of the period you paid for.
  • A failed card renewal keeps the plan working for 1 day while it is retried. When a plan ends, your keys bill your balance.
  • No refunds for part of a period. See section 5 of the Terms.

Fair use

A plan is for one person's own use, with any number of keys and tools. Don't share it or resell access to it.