Browse documentation

Models

List all available LLMs and multimodal AI models supported by nRouter with real-time list pricing, context window limits, and tenant capability details.

The /v1/models endpoint returns the complete catalog of models — and the automatic routing model nrouter/auto — available to your authenticated virtual key (sk-nrouter-...). Use it to discover available models, query context window ceilings, verify provider availability, and build model selectors in client applications.

Catalog results are filtered by your key's permissions and hot-reload across gateway nodes within 60 seconds with no token spend. See the Models Catalog.

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

Response

{
  "object": "list",
  "data": [
    {"id": "gpt-5.5", "object": "model", "owned_by": "nrouter", "nrouter_endpoints": ["/v1/chat/completions", "/v1/responses"]},
    {"id": "nrouter/auto", "object": "model", "owned_by": "nrouter", "nrouter_endpoints": ["/v1/chat/completions"]}
  ]
}
FieldTypeDescription
data[].idstringUnique model identifier to pass in inference calls.
data[].owned_bystringAlways "nrouter" for catalog models served through the gateway.
data[].nrouter_endpointsstring[]Supported gateway inference endpoints for the model.

Examples

import { nRouter } from "@nrouter_ai/sdk";
const client = new nRouter({ apiKey: process.env.NROUTER_API_KEY });
const models = await client.models.list();
console.log(models.data.map(m => `${m.id} (${m.owned_by})`));

Headers & Errors

Inbound: Authorization: Bearer sk-nrouter-... is the only required header.

HTTP StatusError CodeReason
401 Unauthorizedinvalid_api_keyVirtual key missing, expired, or invalid.
403 Forbiddenkey_route_not_allowedVirtual key security policy restricts management routes.
429 Too Many Requestsrate_limit_exceededVirtual key or organization RPM ceiling exceeded.
500 / 503 Gateway Errorservice_unavailableInternal catalog database temporarily unreachable.
GET
/v1/models

Authorization

NRouterApiKey
AuthorizationBearer <token>

Your nRouter virtual key (sk-nrouter-…). Sent as Authorization: Bearer sk-nrouter-….

In: header

Header Parameters

x-nr-tags?string

Custom spend and attribution tags (comma-separated key=value pairs)

x-nr-mcp-server?string

Target MCP server ID when routing MCP tool calls or prompts through the gateway

x-nr-client-language?string

Caller SDK runtime language identification (e.g. typescript, python, rust, go)

x-nr-session-id?string

Caller session identifier allowed at edge for grouping related client turns

x-nr-trace?string

Inbound trace detail level override for request lifecycle spans

Value in

  • "off"
  • "stages"
  • "verbose"
x-nr-trace-stages?string

Inbound stage-level trace emission override

Value in

  • "off"
  • "stages"
  • "verbose"
x-nr-trace-id?string

Accepted so a client sending it is not refused; the value is not recorded and not propagated. Every response carries the gateway's own trace ID in this header, never the one sent.

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/models"
{  "object": "list",  "data": [    {      "id": "gpt-4o",      "object": "model",      "owned_by": "nrouter"    }  ]}
Was this page helpful?