Four steps: sign in, fund, mint a key, call it.
1

Sign in and get a wallet

Go to app.nanorouter.ai/login. Signing in creates an embedded wallet for you — there is nothing to install, and no seed phrase to write down.That wallet is the one the router signs charges against. It is yours: you can withdraw from it at any time, and the router can only move money out of it by signing a charge for a request you made.
2

Deposit USDC

Open Overview → Deposit USDC and send USDC to the address shown, on Arc.That address is your own wallet, so the USDC can come from anywhere — an exchange, a hardware wallet, another account. The router sweeps it into Gateway by depositing from your wallet, and that is what makes it spendable.
Send it to that address, not to Circle’s GatewayWallet contract. Gateway credits whoever deposited, so a transfer into the contract from somewhere else creates a balance keyed to that address and unusable here.
What arrives in the wallet is swept into Circle Gateway automatically, usually within a minute. The balance on the Overview page is the Gateway figure, and that is the one requests are paid from. Until it is non-zero, a call is refused with a 402 before it ever reaches a model.5isplentytostartwith.At5 is plenty to start with. At 1/$5 per million tokens, an ordinary chat turn costs a fraction of a cent.
3

Mint an API key

Go to app.nanorouter.ai/keysCreate key.The key looks like nr_… and is shown once. Copy it then; the router stores only a hash, so a lost key is replaced rather than recovered.You can give a key a spending limit and an expiry when you create it. Both are worth setting on anything that runs unattended — see Keys and spend controls.
4

Make a request

The API is OpenAI-compatible, so use the OpenAI SDK you already have and point it at https://nanorouter-wcg9d.ondigitalocean.app/v1.

What it cost

Two response headers tell you, before you go looking anywhere else: The authorized figure is the worst case. The charged figure is the truth, and on a streamed response it is not known until the last token — so it cannot be sent as a header. Read it back by id instead:
The difference between the two is refunded to your credit balance and netted into your next quote. How billing works explains why the quote is high in the first place.

Set a max_tokens you mean

The quote is priced at max_tokens, not at what the model ends up writing. Ask for 64,000 tokens on a one-line answer and 64,000 tokens’ worth of balance is held until the request settles — refunded, but held. On a small balance that is the difference between your next call working and a 402. Name a real ceiling. Leave it out and the router uses 8,192.

Next

Migrating from OpenAI

What is identical, what differs, and what is not supported.

Streaming

SSE, usage chunks, and reading the settled cost after the stream ends.

Keys and spend controls

Per-key limits, expiry, and what happens when one is hit.

Errors

Which status codes you should retry, and which mean top up.