Guide
Limits
What counts, what is free, and what happens when you go over.
What counts as a request
Only code attempts on
POST /v1/jobs/redeem.
1 code = 1 request, whether that code succeeds or fails.
- 240 UC built from 4 codes → 4 requests
- Polling
GET /v1/jobs/{id}→ free - Job rejected before any attempt (
NO_STOCK, bad body) → not billed
Free endpoints
| Call | Notes |
|---|---|
GET /health | No API key |
GET /v1/me | Plan, key status, wallet snapshot |
GET /v1/quota | Used / included / overage today |
GET /v1/stock | Your KA BOT inventory counts |
GET /v1/player/lookup | Nickname check before charge |
GET /v1/jobs/{id} | Receipt / history |
Plans
| Plan | Price | Included / day | After cap |
|---|---|---|---|
| Pay as you go | — | no daily cap | $0.01 / request from wallet |
| API 3K | $50 / 30 days | 3,000 | $0.01 / request overage |
| API 10K | $90 / 30 days | 10,000 | $0.01 / request overage |
Paid from KA BOT /wallet.
Daily counter resets at 00:00 UTC.
Check live numbers: GET /v1/quota.
When the wallet cannot pay
PayG or overage that your wallet cannot cover →
402 payment_required. Top up /wallet, then retry.
{
"error": "payment_required",
"message": "Insufficient wallet balance for API usage"
}
Do not show that raw body to your end customer — tell them the shop is temporarily unavailable.
Rate limit (429)
Separate from daily plan caps. If you send too many HTTP calls too fast:
HTTP/1.1 429 Too Many Requests
Retry-After: 30
{
"error": "rate_limited",
"retry_after": 30
}
- Respect
Retry-After/retry_after(seconds) - Backoff on your side — do not tight-loop poll faster than ~1–2s
- 429 itself does not consume redeem quota
Not API quota
- Manual redeem in the KA BOT chat (active Telegram subscription)
- Checker — priced separately