Nanorouter is an OpenAI-compatible inference API that charges per request in USDC. You deposit once, and every call settles against that balance — priced, metered, and refunded to the token. There is no monthly plan, no committed spend, and no invoice at the end of the month. If you already call OpenAI, you change two lines:

Quickstart

A funded account and a first paid request, in about five minutes.

Pricing

Every model, its per-million-token rate, and what a web search costs.

How billing works

Why you are quoted the worst case, and how the difference comes back.

API reference

Parameters, response headers, and the errors worth handling.

What is different about it

You are charged for the request, not the month. A quote is taken against your Circle Gateway balance before the model runs, and the unused part is refunded as credit the moment it finishes. From your second request onward, the credit is netted into the next quote — so you are charged approximately your true cost. Payment is gasless. Each charge is an EIP-3009 authorization signed on your behalf against the balance you hold in Circle Gateway. You never submit a transaction, and you never hold native gas. On Arc, USDC is the gas token, and the router pays it. Prices are published in the API. GET /v1/models returns the per-token rate for every model beside its name, plus what the router’s web search costs. A router that hides its prices is not a marketplace. Every request is auditable. Each response carries an x-nanorouter-request-id, and that id resolves to a ledger row showing what was quoted, what was charged, what was refunded, and how much of the bill was inference versus search.

What it costs

gpt-6-astra is half of OpenAI’s list price. The 5.6 family is 1in,1 in, 5 out per million tokens. All prices in USDC. The live list is always GET /v1/models.

What it does not do yet

Worth knowing before you build against it:
  • One model per call. n > 1 is rejected.
  • Text only. Image and audio content parts are refused; a message’s content must be a string or an array of text parts.
  • No /v1/embeddings, /v1/completions, or /v1/responses. The surface is /v1/chat/completions and /v1/models.
  • Reasoning is not priced separately, because the upstream bills it as output and only the model decides how much of it there is.
  • A turn that searches the web costs far more than the quote suggests. See Web search before you enable it on a budget.

Start here

Fund an account, mint a key, and make a paid request.