Docs

Amp

Amp routes models server-side, so there is no base-URL variable to set on your machine — you add a Custom URL connection in Model Routing and Amp's cloud calls the endpoint. It is behind a paid tier, and the tier is the first thing to check.

A Custom URL connection in Amp's Model Routing — API format chat-completions, base URL https://api.kunavo.com/v1, key as a bearer token — moves mapped models onto one key, on the tiers that have the option.

Settings → Model Routing → Add → Custom URL
Connection type    Custom URL            (Model Routing → Add)
API format         chat-completions      OpenAI Chat Completions API, the default
Base URL           https://api.kunavo.com/v1
Key                sk-kn-...             sent as Authorization: Bearer <key>
Headers            —                     nothing extra is needed
Query Parameters   —                     nothing extra is needed
Model mapping      anthropic/claude-opus-4-6 -> claude-opus-4-6
                   anthropic/claude-fable-5  -> claude-fable-5
                   openai/gpt-5.6-sol        -> gpt-5-6-sol
Check your Amp tier before anything else. Amp's Model Routing page says, on 2026-09-21, that “AI model routers and gateways are experimental and in early access for Megawatt, Gigawatt, and Enterprise customers only. We will roll them out to everyone soon.” A Custom URL connection is in that class, so on a Hobby account the Add menu will not offer it. Amp publishes no rollout date, and this page is not predicting one.
Kunavo has not run Amp against this endpoint. Every field above is read off Amp's own documentation, not off a session anyone here completed — the feature sits behind a paid Amp tier. Treat this as a transcription of Amp's spec, and let Check Access be the thing that tells you it works.
chat-completions keeps the /v1 suffix on the base URL, because Amp appends only the route. Its own worked example is the sentence that settles it: “a base URL of https://api.example.com/v1 with chat-completions sends requests to https://api.example.com/v1/chat/completions.” The same page adds that a base URL already ending in /v1 is “accepted and not doubled”, and that the connection form shows the request URL as you type — so you can read the joined URL back before saving.
Amp's Dictation and Realtime Voice system models are voice features, and Kunavo serves no speech-to-text model and no text-to-speech model. A Custom URL connection here cannot stand behind either of them; leave those rows to Amp.

Step by step

  1. Create a key at /app/keys and copy it — it is shown once.
  2. Open Model Routing in your personal settings (workspace admins use Workspace Model Routing to share one connection with every member), open the Add menu and choose Custom URL.
  3. Set the API format to chat-completions, paste https://api.kunavo.com/v1 as the base URL and your sk-kn- key as the key. Amp sends it as Authorization: Bearer <key> in every format, which is the header Kunavo authenticates on, so Headers and Query Parameters stay empty.
  4. Write the model mapping, one pattern per line. The left-hand side is Amp's canonical model ID and the right-hand side after -> is the id Kunavo receives — the two spellings differ (Amp writes openai/gpt-5.6-sol, Kunavo answers to gpt-5-6-sol), so the arrow is not optional here. Use the Models picker to insert the canonical IDs rather than typing them from memory.
  5. Press Check Access. Amp lists the endpoint's models when the mapping is broad and sends a one-token request when the mapping names exactly one model. Then confirm the routing graph under the connection list shows Kunavo serving the models you mapped, and that everything you did not map still says Amp.

Checked against Amp's Model Routing documentation on September 21, 2026. Third-party settings move; if a field name here no longer matches what you see, that page is the authority, not this one.

This is the short version. The full walkthrough — model choice, what a real session costs, and the failure modes — is in what Amp itself costs, and where a connection does and does not move the bill.

Verify before you debug the client

One request settles whether a failure is the endpoint, the key, or the configuration file. If this returns JSON, the same base URL and key work in Amp.

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

Which model id to put in the field

Every text model is reachable as a model id — the live list is GET /v1/models, and the catalog with prices is on the models page. Rates are USD per 1M tokens, input / output.

Model idKunavo in / outWhere it fits in Amp
gpt-5-6-sol$2.00 / $12.00Medium mode's main agent and Puck — Amp's default working model
gpt-6-astra$4.00 / $20.00High mode's main agent, and the Oracle subagent in most modes
claude-fable-5-1$7.00 / $35.00Ultra mode's main agent, the one reserved for hard open-ended work
gpt-5-6-terra$0.70 / $4.20the Search subagent — codebase retrieval, where volume dominates
gemini-3-7-flash$0.525 / $2.625View Media, Amp's model for images, PDFs and video
Billing is per token from a prepaid balance with no monthly fee — see billing. On repeated context — which is most of what an editor or a chat client sends — prompt caching moves the bill more than the model choice does.

What a connection does not move

Model routing changes who bills your tokens and nothing else. Amp's orb compute is metered separately and by the minute, so a connection leaves that line exactly where it was — and non-model tools such as web search keep consuming Amp credits however models are routed. The Amp subscription that unlocks the Custom URL option is itself a fixed cost that arrives before the first token.

Two models Amp runs by default are not in the table above because Kunavo does not carry them: the GLM models behind Low mode and the Read Thread subagent. A connection cannot reproduce Amp's cheapest lane as configured, so a mapping of */* will quietly leave those two on Amp. That is the correct outcome, not a misconfiguration — Amp's own rule is that anything no connection serves is served by Amp.

FAQ

Can Amp use a custom API endpoint?

Yes, through a Custom URL connection in Model Routing, but not on every plan. Amp's Model Routing documentation says AI model routers and gateways, which is the class Custom URL belongs to, are experimental and in early access for Megawatt, Gigawatt and Enterprise customers only, and that Amp will roll them out to everyone soon without naming a date. That was the state on September 21, 2026. On a Hobby account the Add menu does not offer the option at all, so the tier is the first thing to check rather than the base URL.

Does the Amp base URL need /v1 at the end?

It depends on the API format you pick, which is why this field is misread so often. With chat-completions Amp appends only /chat/completions, so the base URL has to be the /v1 root — its own documented example turns https://api.example.com/v1 into https://api.example.com/v1/chat/completions. With anthropic-messages Amp appends /v1/messages instead, so the bare origin is correct there. Amp also states that a base URL already ending in /v1 is accepted and not doubled, and the connection form shows the joined request URL as you type, so you can read it back before saving.

Where does Amp store the API key for a custom endpoint?

On Amp's servers, not on your machine. Amp brokers inference from its own cloud, so a Custom URL connection is configured in Model Routing in your account settings rather than in a local config file or an environment variable, and the endpoint you name has to be reachable from Amp's infrastructure. Amp sends the credential as an Authorization: Bearer header in all three of its API formats. There is no base-URL setting and no API-key setting in Amp's published CLI settings reference, which is the same fact seen from the client side.

Why does Amp still use its own models after I add a connection?

Because a connection only serves the models its mapping includes, and Amp serves everything else itself. Check three things in order: whether the connection is active, where it sits in the precedence list — personal connections first, then workspace, then Amp, with priority 0 tried first — and whether the model mapping actually matches the model your mode is running. The routing graph under the connection list shows which connection serves each model, and amp config model-providers check-access --provider-model runs one short inference and reports which connection really served it.

Has Kunavo tested Amp against its endpoint?

No. Kunavo has not runtime-tested Amp, and this page is a transcription of Amp's own Model Routing documentation as read on September 21, 2026, not a report of a completed session. The Custom URL feature is gated behind a paid Amp tier, so the fields here were checked against Amp's published specification rather than against a running client. Amp's Check Access button verifies the credential with the provider and is the authoritative test; if a field name on this page no longer matches what Amp shows you, Amp's page is the authority.