Models
List available models and their capabilities
Models
The Models endpoint lists all models available through NemoRouter. Use it to discover available models, check capabilities, and build dynamic model selection in your applications.

List Models
GET https://api.nemorouter.ai/v1/modelsRequest Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <NEMOROUTER_API_KEY> |
Example Request
curl https://api.nemorouter.ai/v1/models \
-H "Authorization: Bearer $NEMOROUTER_API_KEY"Python
from openai import OpenAI
client = OpenAI(
api_key="sk-nemo-your-key-here",
base_url="https://api.nemorouter.ai/v1",
)
models = client.models.list()
for model in models.data:
print(f"{model.id} — owned by {model.owned_by}")Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.NEMOROUTER_API_KEY,
baseURL: "https://api.nemorouter.ai/v1",
});
const models = await client.models.list();
for (const model of models.data) {
console.log(`${model.id} — owned by ${model.owned_by}`);
}Response
{
"object": "list",
"data": [
{
"id": "gpt-4o",
"object": "model",
"created": 1709251200,
"owned_by": "openai"
},
{
"id": "claude-4-sonnet",
"object": "model",
"created": 1709251200,
"owned_by": "anthropic"
},
{
"id": "gemini-2.5-pro",
"object": "model",
"created": 1709251200,
"owned_by": "google"
}
]
}Response Fields
| Field | Type | Description |
|---|---|---|
object | string | Always "list" |
data | array | Array of model objects |
data[].id | string | The model identifier to use in API calls |
data[].object | string | Always "model" |
data[].created | integer | Unix timestamp of when the model was added |
data[].owned_by | string | The provider that owns this model |
Retrieve a Model
GET https://api.nemorouter.ai/v1/models/{model_id}Example
curl https://api.nemorouter.ai/v1/models/gpt-4o \
-H "Authorization: Bearer $NEMOROUTER_API_KEY"Response
{
"id": "gpt-4o",
"object": "model",
"created": 1709251200,
"owned_by": "openai"
}Supported Providers
NemoRouter routes requests to these providers:
| Provider | Example Models | Capabilities |
|---|---|---|
| OpenAI | gpt-4o, gpt-4-turbo, o1, o3, gpt-4o-mini | Chat, embeddings, vision, function calling, JSON mode |
| Anthropic | claude-4-opus, claude-4-sonnet, claude-3.5-haiku | Chat, vision, function calling, long context |
gemini-2.5-pro, gemini-2.5-flash | Chat, vision, function calling, long context | |
| Meta | llama-3.3-70b, llama-4-scout, llama-4-maverick | Chat, function calling |
| Mistral | mistral-large, codestral, mistral-small | Chat, code generation, function calling |
| Cohere | command-r-plus, command-r | Chat, RAG-optimized, embeddings |
| Deepseek | deepseek-chat, deepseek-reasoner | Chat, reasoning, code generation |
This is not an exhaustive list. Use the Models API to get the full, up-to-date list of available models.
Model Naming
NemoRouter uses the model_group name from the underlying routing configuration. In most cases, model names match or closely follow the provider's naming convention:
- Use
gpt-4oinstead ofopenai/gpt-4o - Use
claude-4-sonnetinstead ofanthropic/claude-4-sonnet - Use
gemini-2.5-proinstead ofgoogle/gemini-2.5-pro
The exact model names available depend on your organization's configuration. Use the Models API to verify the correct model identifier.
Filtering Models by Provider
The API returns all available models. To filter by provider in your code:
models = client.models.list()
# Filter for OpenAI models
openai_models = [m for m in models.data if m.owned_by == "openai"]
for model in openai_models:
print(model.id)
# Filter for Anthropic models
anthropic_models = [m for m in models.data if m.owned_by == "anthropic"]
for model in anthropic_models:
print(model.id)const models = await client.models.list();
// Filter for Google models
const googleModels = models.data.filter((m) => m.owned_by === "google");
googleModels.forEach((model) => console.log(model.id));Building a Model Selector
Use the Models API to build a dynamic model dropdown in your application:
async function getAvailableModels(): Promise<string[]> {
const client = new OpenAI({
apiKey: process.env.NEMOROUTER_API_KEY,
baseURL: "https://api.nemorouter.ai/v1",
});
const models = await client.models.list();
return models.data.map((m) => m.id).sort();
}Error Responses
| Status | Description |
|---|---|
401 Unauthorized | Invalid or missing API key |
404 Not Found | Model not found (for single model retrieval) |
Next Steps
- Chat Completions API — Use a model for chat completions
- Embeddings API — Generate vector embeddings
- Quick Start — Make your first API call