Models
List available models and their capabilities
Last updated
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-sonnet-4-20250514",
"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 live providers:
| Provider cloud | Example Models | Capabilities |
|---|---|---|
| Alibaba US | Qwen and DeepSeek models | Chat, vision, function calling, long context |
| OpenAI | gpt-4o, gpt-4-turbo, o1, o3, gpt-4o-mini | Chat, embeddings, vision, function calling, JSON mode |
| AWS Bedrock | Claude, Llama, DeepSeek, Nova, Qwen | Chat, vision, function calling, long context |
| Azure Foundry | OpenAI-format and native/partner models | Chat, embeddings, vision, function calling |
| Google Vertex AI | gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite | Chat, vision, function calling, long context |
| Anthropic | claude-sonnet-4-20250514, claude-opus-4-20250514 | Chat, vision, function calling, long context |
240+ models are live today across six provider clouds — Alibaba US, OpenAI, AWS Bedrock, Azure Foundry, Google Vertex AI, and Anthropic. More providers land on a rolling basis.
This is not an exhaustive list. Use the Models API to get the full, up-to-date list of available models.
Model Naming
Model names match or closely follow each provider's own naming convention — no provider prefix required:
- Use
gpt-4oinstead ofopenai/gpt-4o - Use
claude-sonnet-4-20250514instead ofanthropic/claude-sonnet-4-20250514 - 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