NemoRouter
API Reference

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.

Models catalog — every major provider through one endpoint

List Models

GET https://api.nemorouter.ai/v1/models

Request Headers

HeaderRequiredDescription
AuthorizationYesBearer <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

FieldTypeDescription
objectstringAlways "list"
dataarrayArray of model objects
data[].idstringThe model identifier to use in API calls
data[].objectstringAlways "model"
data[].createdintegerUnix timestamp of when the model was added
data[].owned_bystringThe 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:

ProviderExample ModelsCapabilities
OpenAIgpt-4o, gpt-4-turbo, o1, o3, gpt-4o-miniChat, embeddings, vision, function calling, JSON mode
Anthropicclaude-4-opus, claude-4-sonnet, claude-3.5-haikuChat, vision, function calling, long context
Googlegemini-2.5-pro, gemini-2.5-flashChat, vision, function calling, long context
Metallama-3.3-70b, llama-4-scout, llama-4-maverickChat, function calling
Mistralmistral-large, codestral, mistral-smallChat, code generation, function calling
Coherecommand-r-plus, command-rChat, RAG-optimized, embeddings
Deepseekdeepseek-chat, deepseek-reasonerChat, 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-4o instead of openai/gpt-4o
  • Use claude-4-sonnet instead of anthropic/claude-4-sonnet
  • Use gemini-2.5-pro instead of google/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

StatusDescription
401 UnauthorizedInvalid or missing API key
404 Not FoundModel not found (for single model retrieval)

Next Steps