0% platform fee — first 1,000,000 customersClaim 0% fee
Migrate

Switch gateways in two lines.
Keep every line of your code.

Migrating from OpenRouter, OpenAI, or Portkey means changing the base URL and the API key — nothing else. Your SDKs and frameworks work unchanged, and you land on 97+ models, one bill, and built-in guardrails.

No migration fee · run both in parallel during cutover

  • 2Lines you changebase_url + api_key — your logic is untouched
  • < 5 minTypical migrationNo SDK swap, no code rewrite
  • 0%Tier 3 platform feeAnnual plan — vs OpenRouter’s published 5.5% per call
  • 97+Models behind one keyAnthropic, Google & OpenAI today, more shipping
Before & after

Two lines. That is the migration.

Whichever gateway or provider you start from, the diff is the same shape: repoint the base URL, swap the key. Your prompts, parameters, streaming, and error handling are unchanged.

From OpenRouter · Python · OpenAI SDK
# Before — OpenRouter
client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="sk-or-...",
)

# After — Nemo Router (only two lines change)
client = OpenAI(
    base_url="https://api.nemorouter.ai/v1",
    api_key=os.environ["NEMOROUTER_API_KEY"],
)
From OpenAI · Python · OpenAI SDK
# Before — OpenAI direct
client = OpenAI(
    base_url="https://api.openai.com/v1",
    api_key=os.environ["OPENAI_API_KEY"],
)

# After — Nemo Router (only two lines change)
client = OpenAI(
    base_url="https://api.nemorouter.ai/v1",
    api_key=os.environ["NEMOROUTER_API_KEY"],
)
From Portkey · Python · OpenAI SDK
# Before — Portkey gateway
client = OpenAI(
    base_url="https://api.portkey.ai/v1",
    api_key=os.environ["PORTKEY_API_KEY"],
)

# After — Nemo Router (only two lines change)
client = OpenAI(
    base_url="https://api.nemorouter.ai/v1",
    api_key=os.environ["NEMOROUTER_API_KEY"],
)
Installpip install openai
1# Cache: enabled (org default). Pass nemo_cache: false to skip.
2from openai import OpenAI
3import os
4
5client = OpenAI(
6 api_key=os.environ["NEMOROUTER_API_KEY"],
7 base_url="https://api.nemorouter.ai/v1",
8)
9
10response = client.chat.completions.create(
11 model="gemini-2.5-flash-lite",
12 temperature=1,
13 max_tokens=1024,
14 top_p=1,
15 messages=[
16 {"role": "user", "content": "Hello! What models do you support?"},
17 ],
18 extra_body={
19 # "nemo_cache": False, # Uncomment to skip cache
20 },
21)
22
23print(response.choices[0].message.content)

The canonical post-migration client, generated from the same SDK examples the playground and dashboard use. Base URL is always https://api.nemorouter.ai/v1.

Step by step

The four-step cutover.

Run Nemo Router alongside your current setup if you want — repoint a slice of traffic, verify, then move the rest. There is no migration fee and no lock-in.

Step 1

Create a key

Sign up at nemorouter.ai, add credits, and generate a Nemo Router virtual key (sk-nemo-…).

Step 2

Repoint the base URL

Set your client base_url to https://api.nemorouter.ai/v1 — the same OpenAI-compatible path your code already calls.

Step 3

Swap the key

Replace your old provider/gateway key with the Nemo Router virtual key. That is the second and final line.

Step 4

Verify and cut over

Send a test request, confirm the response shape, then shift the rest of your traffic when you are ready.

OpenRouter

OpenRouter is OpenAI-compatible, so the migration is purely a base-URL and key swap. The upside is on the bill and the controls.

What changes
  • Swap https://openrouter.ai/api/v1 for the Nemo Router endpoint.
  • Replace your sk-or-… key with a Nemo Router virtual key (sk-nemo-…).
  • Tier 3 annual is 0% platform fee — OpenRouter charges its published 5.5% on every call.
  • You gain built-in guardrails, RBAC teams, audit logs, and per-team budgets.

OpenAI direct

Calling OpenAI directly means one provider and your own key management. Routing through Nemo Router keeps the OpenAI API but unlocks the catalog.

What changes
  • Replace api.openai.com/v1 with the Nemo Router endpoint.
  • Use a Nemo Router virtual key — we manage the underlying provider keys (no BYOK).
  • Switch models by changing one string; no new SDK, no new account per provider.
  • Get real-time per-key cost tracking, guardrails, and budgets on top.

Portkey

Portkey is also a gateway, so you are already used to repointing a base URL. Nemo Router keeps that model and folds the add-ons into every tier.

What changes
  • Swap api.portkey.ai/v1 for the Nemo Router endpoint.
  • Use a Nemo Router virtual key in place of your Portkey key.
  • Guardrails, observability callbacks, prompts, and A/B tests are included — not metered add-ons.
  • One credit balance, one bill — platform fee charged on top, never skimmed from credits.

Comparing in detail? See Nemo vs OpenRouter and Nemo vs Portkey.

After the switch

What the two lines actually buy you.

The migration is trivial on purpose. The point is everything that happens once your traffic flows through a managed gateway — lower fees, guardrails, real team management, and zero feature gating.

  • 0% platform fee on Tier 3. 2% on Tier 2. 4% pay-as-you-go. The fee is charged on top of credits — you always keep 100% of what you buy.
  • PII redaction, prompt-injection detection, and secret scanning on every request, on every tier
  • Owner / admin / member / viewer roles, per-team budgets, and per-key spend — RLS-enforced isolation
  • Every feature unlocked on every plan — tiers only change the platform fee and RPM/TPM guarantees

Day 0 — before

Per-call gateway fees, no controls

Spend untracked per team · guardrails are your problem

Day 0 — after two lines

Same code, managed gateway

Guardrails, budgets, and audit logs on every request

Every day after

One bill, exact costs

Credits reserve + settle from the provider-reported cost

FAQ

Migration questions, answered.

How long does migrating to Nemo Router take?

Most teams migrate in under five minutes. Nemo Router exposes an OpenAI-compatible REST API, so you change two things — the base URL and the API key — and your existing code, SDKs, and frameworks keep working without modification.

Do I have to rewrite my code or swap SDKs?

No. Nemo Router speaks the OpenAI API. If you use the OpenAI Python or Node SDK, LangChain, LlamaIndex, the Vercel AI SDK, or any OpenAI-compatible client, you only repoint the base URL. Request and response shapes are identical.

Can I migrate from OpenRouter to Nemo Router?

Yes. OpenRouter is also OpenAI-compatible, so the migration is a base-URL and key swap. Nemo Router additionally gives you built-in guardrails, team management, audit logs, and a lower platform fee — 0% platform fee on Tier 3 annual ($1,200+/yr) versus OpenRouter's published per-call fee.

Can I migrate from OpenAI directly to Nemo Router?

Yes. Replace api.openai.com with the Nemo Router endpoint and use a Nemo Router virtual key. You keep one OpenAI-style API but gain access to multiple model providers, built-in guardrails, per-team budgets, and real-time cost tracking — without managing provider keys yourself.

What about model names — do they change?

You select models by their Nemo Router model id (for example gemini-2.5-flash). The catalog and exact ids are listed on the models page; switching models is a one-string change with no SDK swap.

Is there a cost to migrate or run both in parallel?

No migration fee. You can run Nemo Router alongside your current gateway during cutover — point a percentage of traffic at the new base URL, verify, then move the rest. Nemo Router only charges the platform fee on credits you actually buy.

Two lines · zero migration fee

Migrate to Nemo Router today.

Create a free account, generate a key, repoint your base URL. Keep your code, your SDKs, and your frameworks — gain one bill, guardrails, and lower fees.

Moving a large workload? Email sales@nemorouter.ai for assisted, parallel-run migration support.