Skip to contentKumoDocs
Sections
On this page
Resources

Questions and answers

Short answers to what people trip over most, each with the page where it is worked through in full.

View as Markdown

Connecting

Which base URL do I use?

For an OpenAI-compatible client, https://api.kumorouter.com/v1. For a client written against Anthropic's native API, https://api.kumorouter.com — the bare origin, with no path: such a client composes the path itself, and a base URL carrying a prefix sends it somewhere nothing is served.

How the header is written → Your first call →

Which models can I name?

The ones the gateway itself lists at https://api.kumorouter.com/v1/models, which are the ones in the price list. This documentation names no model on purpose: the examples carry a placeholder, and the current list belongs to the catalog rather than to a text.

The catalog and how to read it →

Why is my request refused without `max_tokens`?

An output ceiling is required. On the Chat Completions surface that is max_tokens or max_completion_tokens; on the Messages surface it is max_tokens, and it has no default. The reason is money: a billable dimension with no finite ceiling cannot be reserved for before the upstream call.

Every request member →

Do I have to change my code for Kumo?

No: the surfaces answer in their own protocols rather than in a translation of somebody else's. What changes is the base URL and the key.

Ready-made recipes → SDKs →

Keys

I lost a key's secret. How do I see it?

You do not. The secret is shown once, at creation; after that the platform holds only its hash, and nothing can read it back — not a screen, not an operation, not support. The cure is a new key.

The life of a key →

Can a key be renamed?

No. The name is fixed at creation, and the key has no rename operation. What does change is the expiry, the project and the switch.

What changes after creation →

How do I check a key is alive without spending a call?

The identity echo answers about the key itself rather than with a model's output: its name, its display fragments, what it spends from, and its expiry. Right here on this site, from a browser.

Check a key →

Why does `401` not say what exactly is wrong?

Because missing, malformed, unknown, revoked, switched-off and expired keys are answered identically — on purpose. Telling them apart would make the gateway an oracle on key material: with a list of guesses you could learn which of them exist.

One refusal, and only one →

Refusals

`429` or `503` — what is the difference?

429 is a ceiling you ended up above, and time cures it. 503 means nobody upstream can serve this call right now. Neither is cured by an immediate retry.

Every status → The ceilings →

My stream ended early — is the answer complete?

No. Treat a stream that ended without its terminal frame as a failed call rather than a short one: a failure after the stream started simply ends it, and nothing in the bytes you received will say the answer was truncated.

How to read a cut stream → How a refusal behaves →

How do I raise my limits?

By talking to support. No ceiling is editable in the console, and no request member asks for a higher one.

What a key is issued with → How to write →

Money

Wallet or package — which do I pick?

The wallet counts in dollars and is topped up by any amount; a package is a prepaid token limit, one per account, bought from 30 million tokens up and only topped up after that. Each key chooses what it spends from — the package or the balance — and the choice can be changed any time; a key on the package can carry on from the balance once the limit runs out.

Compared side by side → How the wallet counts →

Is there a minimum top-up?

Yes: $2, or the rouble equivalent at the checkout's own exchange rate the moment you pay. A package, meanwhile, is bought by a token volume — from 30 million up.

How a payment runs →

Can I try it without money?

No. A wallet with nothing on it refuses every call of the keys spending from the balance with a 402: issuing a key is free, making a call is not.

When there is nothing to pay with →

Where is the price list?

On the pricing page. There are no prices in the text of this documentation on purpose: the price list publishes them, and a page that repeated a figure would go stale in silence.

Why is spend shown as two numbers rather than one?

Because they are two different units: the wallet's dollars and the package's tokens. The platform publishes no rate between them, so their sum would be a figure with no unit.

The units of spend →

Data and tools

Does Kumo store my prompts?

A call is recorded by its shape and not by its content: no prompt, no answer, no headers, no client address is in the history — they are not stored at all. The other side of that is the same: you cannot reconstruct from the log what a request was about either.

What the log holds →

How long is the money history kept?

Money movements for five years. One request reads a window of at most 366 days, so an older period is taken by moving the window back.

Money movements →

How do I connect Claude Code, Cursor or another tool?

With a ready-made recipe: the platform publishes them itself, together with a prompt that will configure the tool for you.

Every tool → Claude Code → Cursor →

I changed my password and was signed out everywhere. Is that right?

Yes. Changing the password ends every session, including the one it was changed from: if a password is changed because the old one leaked, somebody else's open tab has to stop working at once.

Signing in and the password →