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:
- A NemoRouter account — sign up here
- An API key from your dashboard's API Keys page
- Credits in your account (new accounts start with a trial balance)

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 openaiUse 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 openaiUse 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

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?
- Authentication — Learn about API key management and security
- Chat Completions API — Full API reference with all parameters
- Embeddings API — Generate vector embeddings
- Python SDK — In-depth Python guide
- Node.js SDK — In-depth Node.js guide