Skip to main content
ARouter provides access to hundreds of models from top providers through a single unified API. You can browse models on the ARouter website or use the API directly.

Query Parameters

The Models API supports query parameters to filter results.

output_modalities

Filter models by their output capabilities. Accepts a comma-separated list of modalities or "all" to include every model.
ValueDescription
textModels that produce text output (default)
imageModels that generate images
audioModels that produce audio output
embeddingsEmbedding models
allInclude all models, skip modality filtering
# Default — text models only
curl "https://api.arouter.ai/v1/models" \
  -H "Authorization: Bearer lr_live_xxxx"

# Image generation models only
curl "https://api.arouter.ai/v1/models?output_modalities=image" \
  -H "Authorization: Bearer lr_live_xxxx"

# Text and image models
curl "https://api.arouter.ai/v1/models?output_modalities=text,image" \
  -H "Authorization: Bearer lr_live_xxxx"

# All models regardless of modality
curl "https://api.arouter.ai/v1/models?output_modalities=all" \
  -H "Authorization: Bearer lr_live_xxxx"

supported_parameters

Filter models by the API parameters they support. For example, to find models that support tool calling:
curl "https://api.arouter.ai/v1/models?supported_parameters=tools" \
  -H "Authorization: Bearer lr_live_xxxx"

List Models

GET /v1/models
Returns the full list of models available to your API key.
curl https://api.arouter.ai/v1/models \
  -H "Authorization: Bearer lr_live_xxxx"

Response Format

{
  "data": [
    {
      "id": "openai/gpt-5.4",
      "canonical_slug": "openai/gpt-5.4",
      "name": "GPT-5.4",
      "created": 1748000000,
      "description": "OpenAI's flagship multimodal model with state-of-the-art performance.",
      "context_length": 128000,
      "architecture": {
        "input_modalities": ["text", "image"],
        "output_modalities": ["text"],
        "tokenizer": "cl100k_base",
        "instruct_type": "chatml"
      },
      "pricing": {
        "prompt": "0.000005",
        "completion": "0.000015",
        "request": "0",
        "image": "0.00765",
        "web_search": "0",
        "internal_reasoning": "0",
        "input_cache_read": "0.0000025",
        "input_cache_write": "0.000005"
      },
      "top_provider": {
        "context_length": 128000,
        "max_completion_tokens": 16384,
        "is_moderated": true
      },
      "supported_parameters": [
        "tools",
        "tool_choice",
        "max_tokens",
        "temperature",
        "top_p",
        "structured_outputs",
        "response_format",
        "stop",
        "frequency_penalty",
        "presence_penalty",
        "seed"
      ],
      "per_request_limits": null,
      "default_parameters": null,
      "expiration_date": null
    }
  ]
}

Model Object Schema

Each model in the data array contains the following fields:
FieldTypeDescription
idstringUnique model identifier used in API requests, e.g. "openai/gpt-5.4"
canonical_slugstringPermanent slug for the model that never changes
namestringHuman-readable display name
creatednumberUnix timestamp of when the model was added to ARouter
descriptionstringDetailed description of the model’s capabilities
context_lengthnumberMaximum context window size in tokens
architectureArchitectureTechnical capabilities object
pricingPricingCost structure for using this model (USD per token)
top_providerTopProviderConfiguration details for the primary provider
per_request_limitsobject | nullRate limiting information (null if no limits)
supported_parametersstring[]Array of supported API parameters
default_parametersobject | nullDefault parameter values (null if none)
expiration_datestring | nullDeprecation date (null if not deprecated)

Architecture Object

{
  "input_modalities": string[],  // e.g. ["text", "image"]
  "output_modalities": string[], // e.g. ["text"]
  "tokenizer": string,           // e.g. "cl100k_base"
  "instruct_type": string | null // e.g. "chatml", null if not applicable
}

Pricing Object

All pricing values are in USD per token. A value of "0" means the feature is free.
{
  "prompt": string,              // Cost per input token
  "completion": string,          // Cost per output token
  "request": string,             // Fixed cost per API request
  "image": string,               // Cost per image input
  "web_search": string,          // Cost per web search operation
  "internal_reasoning": string,  // Cost for internal reasoning tokens
  "input_cache_read": string,    // Cost per cached input token read
  "input_cache_write": string    // Cost per cached input token write
}

Top Provider Object

{
  "context_length": number,         // Provider-specific context limit
  "max_completion_tokens": number,  // Maximum tokens in response
  "is_moderated": boolean           // Whether content moderation is applied
}

Supported Parameters

The supported_parameters array lists which OpenAI-compatible parameters work with a model:
ParameterDescription
toolsFunction calling capabilities
tool_choiceTool selection control
max_tokensResponse length limiting
temperatureRandomness control
top_pNucleus sampling
reasoningInternal reasoning mode
include_reasoningInclude reasoning in response
structured_outputsJSON schema enforcement
response_formatOutput format specification
stopCustom stop sequences
frequency_penaltyRepetition reduction
presence_penaltyTopic diversity
seedDeterministic outputs

Using Models

Use the id directly as the model field in your requests:
from openai import OpenAI

client = OpenAI(
    base_url="https://api.arouter.ai/v1",
    api_key="lr_live_xxxx",
)

# List available models
models = client.models.list()
for model in models.data:
    print(model.id)

# Use a specific model
response = client.chat.completions.create(
    model="anthropic/claude-sonnet-4.6",
    messages=[{"role": "user", "content": "Hello!"}],
)

Filtering by Supported Parameters

Find models that support tool calling:
curl "https://api.arouter.ai/v1/models?supported_parameters=tools" \
  -H "Authorization: Bearer lr_live_xxxx"
Find models that support structured outputs:
curl "https://api.arouter.ai/v1/models?supported_parameters=structured_outputs" \
  -H "Authorization: Bearer lr_live_xxxx"

Auto Routing

In addition to specific model IDs, ARouter supports automatic model selection:
ModelDescription
"auto"ARouter automatically selects the best available model for your request
curl https://api.arouter.ai/v1/chat/completions \
  -H "Authorization: Bearer lr_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{"model": "auto", "messages": [{"role": "user", "content": "Hello!"}]}'
The response model field always shows the model that was actually used. See Model Routing for details.

Model Variants

You can append suffixes to any model ID to influence routing behavior:
SuffixEffect
:nitroRoute to the highest-throughput instance — optimized for speed
:floorRoute to the lowest-cost instance — optimized for price
:freeRoute to the free-tier instance (rate limits apply)
:thinkingEnable extended reasoning / chain-of-thought mode
{"model": "openai/gpt-5.4:nitro"}   // fastest
{"model": "openai/gpt-5.4:floor"}   // cheapest
{"model": "deepseek/deepseek-r1:thinking"} // reasoning mode
See Model Variants for the full reference.

Tokenization

Different models tokenize text differently. Some models (GPT, Claude, Llama) break text into multi-character chunks; others tokenize by character (PaLM). This means token counts — and therefore costs — vary between models even for identical inputs and outputs. Costs are billed according to the tokenizer for the model in use. Use the usage field in each response to get the exact token counts:
{
  "usage": {
    "prompt_tokens": 42,
    "completion_tokens": 128,
    "total_tokens": 170
  }
}

Notes

  • The model list is filtered by your account’s enabled providers. If a provider is not enabled, its models will not appear.
  • New models are added automatically as providers release them.
  • Use model IDs from this list directly in the model field of your chat completion requests.
See Providers for a curated list of available providers and their flagship models.