Payments and costs
Your balance is in US dollars. You top up in advance, and each request deducts the tokens it used. No subscriptions.
1How to top up
Dashboard → Payments, minimum $1:
| Method | Fee on top |
|---|---|
| SBP (in rubles at the market rate) | ≈ 8.5% |
| Crypto | — |
| Foreign card ($2–$594 per payment) | ≈ 13% |
Russian cards are temporarily unavailable — use SBP. You see the final amount before paying.
Bonuses: $0.50 for subscribing to @zukkopro (once per Telegram account, claim it in the dashboard). 10% of top-ups by people you invite, via the referral link in the dashboard. There's no sign-up bonus.
2What a request costs
Cost = input tokens × input price + output tokens × output price. Prices per 1M tokens are in Models and pricing. Input read from the cache costs less.
Rule of thumb: a page of English text is about 700 tokens.
An hour in Claude Code usually costs $0.8–1.6. To spend less, see How to pay less.
3When a request is refused
- Email not verified —
403 email_unverified(not needed if you signed in with Telegram). - Balance below $0.01 —
402 insufficient_balance.
Charges happen after the answer, for what was used. A long request can take the balance negative; then the next ones get 402, and a top-up clears the negative first.
4What's free
- Requests refused before the model: no money, key limit, unknown model, invalid key.
- Error responses.
- Answers from the Zukko cache (
X-Zukko-Cache: true) and repeats with the sameIdempotency-Key. /v1/balanceand/v1/usage.
5What's paid, though not obvious
- An interrupted stream — the answer is read to the end and charged in full.
POST /v1/messages/count_tokens— at the input price.POST /v1/web-search— as a small token charge.- Reasoning by "thinking" models — that's tokens too.
6Where to see spending
- Dashboard → Usage — each request with its model, tokens and cost.
- API: GET /v1/usage and GET /v1/balance.
- The
X-Zukko-Cost-Microsheader on a regular (non-streaming) response — the request's cost.
The balance is shared: all keys, the web chat and the Telegram bot spend the same money.
About a minute after a request, its cost is recalculated with exact cache data — the difference is refunded or charged.
7Per-key limits
In the dashboard you can set a daily and monthly limit and a list of allowed models for each key.
| Situation | Response |
|---|---|
| Model not in the key's list | 403 model_not_allowed_for_key |
| Daily limit reached | 429 key_daily_limit_reached |
| Monthly limit reached | 429 key_monthly_limit_reached |
Resets at 00:00 UTC and on the 1st. An empty limit or 0 means no limit. The last request may go slightly over. More: Key limits and cache.
8Units in the API
| Where | Unit | Example |
|---|---|---|
GET /v1/balance → balance_cents | cents, rounded down | 1234 = $12.34 |
GET /v1/usage → cost_cents | fractional cents | 0.0525 = $0.000525 |
X-Zukko-Cost-Micros | microdollars | 525 = $0.000525 |
X-Fetch-Balance-Cents | microdollars | 12340000 = $12.34 |
Dashboard /api/*, *_cents fields | microdollars | 12340000 = $12.34 |