Your first $5 becomes $15Get started
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 240+ 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%Pro platform feePro plan — vs OpenRouter’s published 5.5% per call
  • 240+Models behind one keyAlibaba US, OpenAI, AWS Bedrock, Azure Foundry, Google Vertex AI & Anthropic 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 — NemoRouter (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 — NemoRouter (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 — NemoRouter (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 messages=[
15 {"role": "user", "content": "Hello! What models do you support?"},
16 ],
17 extra_body={
18 # "nemo_cache": False, # Uncomment to skip cache
19 },
20)
21
22print(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 NemoRouter 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 NemoRouter 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 NemoRouter 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 NemoRouter endpoint.
  • Replace your sk-or-… key with a NemoRouter virtual key (sk-nemo-…).
  • Pro is 0% platform fee, and pay-as-you-go is a flat 4% with no minimum fee. OpenRouter charges its published 5.5% on every call, plus a minimum on small top-ups.
  • 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 NemoRouter keeps the OpenAI API but unlocks the catalog.

What changes
  • Replace api.openai.com/v1 with the NemoRouter endpoint.
  • Use a NemoRouter 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 & usage tracking, guardrails, and budgets on top.

Portkey

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

What changes
  • Swap api.portkey.ai/v1 for the NemoRouter endpoint.
  • Use a NemoRouter 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.

  • Flat 4% pay-as-you-go — no minimum fee. 0% on Pro. 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 NemoRouter take?

Most teams migrate in under five minutes. NemoRouter 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. NemoRouter 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 NemoRouter?

Yes. OpenRouter is also OpenAI-compatible, so the migration is a base-URL and key swap. NemoRouter additionally gives you built-in guardrails, team management, audit logs, and a lower platform fee — 0% platform fee on Pro ($50/mo or $500/yr) versus OpenRouter's published per-call fee.

Can I migrate from OpenAI directly to NemoRouter?

Yes. Replace api.openai.com with the NemoRouter endpoint and use a NemoRouter 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 & usage tracking — without managing provider keys yourself.

What about model names — do they change?

You select models by their NemoRouter 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 NemoRouter alongside your current gateway during cutover — point a percentage of traffic at the new base URL, verify, then move the rest. NemoRouter only charges the platform fee on credits you actually buy.

Two lines · zero migration fee

Migrate to NemoRouter today.

Create an 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.