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
| Plan | Price | First month | Credits a month | Per 5 hours | Per week | Requests a minute |
|---|---|---|---|---|---|---|
$10 plan plan10 | $10 / month | $5 | 1,000 | 200 | 500 | 60 |
$25 plan plan25 | $25 / month | $12.50 | 2,750 | 550 | 1,375 | 120 |
$50 plan plan50 | $50 / month | $25 | 5,500 | 1,100 | 2,750 | 240 |
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 forRetry-After.
How far credits go
Loading the current figures…
Limits and resets
| Window | Limit | Resets |
|---|---|---|
5h | 20% of the month's credits | 5 hours after your first request in it |
week | 50% | Every 7 days from when your plan started |
month | 100% | 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/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:
| Header | Value |
|---|---|
X-Caft-Plan | Your plan: plan10, plan25, plan50. |
X-Caft-Plan-5h-Pct | Percent of the 5-hour window used. |
X-Caft-Plan-Week-Pct | Percent of the week used. |
X-Caft-Plan-Month-Pct | Percent of the month used. |
X-Caft-Plan-Reset | When 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).
curl https://caft.dev/api/plan \ -H "Authorization: Bearer $CAFT_API_KEY"
{
"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.