NemoRouter
Getting Started

Quick Start

Make your first API call in under 2 minutes

Quick Start

Make your first NemoRouter API call in under 2 minutes. NemoRouter is OpenAI-compatible, so you can use any existing OpenAI SDK or plain HTTP requests.

Prerequisites

Before you begin, make sure you have:

  1. A NemoRouter account — sign up here
  2. An API key from your dashboard's API Keys page
  3. Credits in your account (new accounts start with a trial balance)

Sign-up page — create your NemoRouter account in 30 seconds

Dashboard screenshot pending

Replace this with dashboard-keys.jpg showing the API Keys page after a key is created. The full key is shown exactly once on creation — copy it before navigating away.

Set your API key as an environment variable:

export NEMOROUTER_API_KEY="sk-nemo-your-key-here"

cURL

The simplest way to test NemoRouter is with cURL:

curl https://api.nemorouter.ai/v1/chat/completions \
  -H "Authorization: Bearer $NEMOROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "What is NemoRouter?"
      }
    ],
    "temperature": 0.7,
    "max_tokens": 256
  }'

You should receive a JSON response with the model's completion:

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1709251200,
  "model": "gpt-4o",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "NemoRouter is an enterprise LLM gateway..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 48,
    "total_tokens": 73
  }
}

Python

Install the OpenAI Python SDK:

pip install openai

Use it with NemoRouter by setting the base_url:

from openai import OpenAI

client = OpenAI(
    api_key="sk-nemo-your-key-here",  # or use NEMOROUTER_API_KEY env var
    base_url="https://api.nemorouter.ai/v1",
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is NemoRouter?"},
    ],
    temperature=0.7,
    max_tokens=256,
)

print(response.choices[0].message.content)

Streaming

To stream the response token by token:

stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "user", "content": "Write a haiku about APIs."},
    ],
    stream=True,
)

for chunk in stream:
    if chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="")

Node.js / TypeScript

Install the OpenAI Node.js SDK:

npm install openai

Use it with NemoRouter:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.NEMOROUTER_API_KEY,
  baseURL: "https://api.nemorouter.ai/v1",
});

async function main() {
  const response = await client.chat.completions.create({
    model: "gpt-4o",
    messages: [
      { role: "system", content: "You are a helpful assistant." },
      { role: "user", content: "What is NemoRouter?" },
    ],
    temperature: 0.7,
    max_tokens: 256,
  });

  console.log(response.choices[0].message.content);
}

main();

Streaming

const stream = await client.chat.completions.create({
  model: "claude-4-sonnet",
  messages: [
    { role: "user", content: "Write a haiku about APIs." },
  ],
  stream: true,
});

for await (const chunk of stream) {
  const content = chunk.choices[0]?.delta?.content;
  if (content) {
    process.stdout.write(content);
  }
}

Try a Different Model

Models catalog — switch providers without changing your SDK

One of NemoRouter's key benefits is switching models with a single line change. Just update the model field:

# OpenAI
response = client.chat.completions.create(model="gpt-4o", messages=messages)

# Anthropic
response = client.chat.completions.create(model="claude-4-sonnet", messages=messages)

# Google
response = client.chat.completions.create(model="gemini-2.5-pro", messages=messages)

# Meta
response = client.chat.completions.create(model="llama-4-scout", messages=messages)

No provider keys, no SDK changes, no configuration. Just change the model name.

What's Next?