Available Models
SolRouter routes requests to hundreds of models across all major AI providers. This page explains how models are identified, how to browse and filter them, and covers pricing and modality details.
Browsing the model catalogue
The full, up-to-date model list is available at solrouter.io/models. The catalogue page lets you:
- Search by model name, provider, or capability
- Filter by modality (text, image, audio, video)
- Filter by cost (free vs paid)
- Sort by context length, input price, or output price
- View deprecation dates for models that are being retired
Each model card shows its unique ID, context window size, pricing per million tokens, supported input/output modalities, and whether a free variant is available.
Model ID format
Every model in SolRouter follows a consistent provider/model-name identifier format. This is the value you pass in the model field of every API request.
provider/model-name
Examples:
| Provider | Model ID |
|---|---|
| OpenAI | openai/gpt-4o |
| OpenAI | openai/gpt-4.1 |
| OpenAI | openai/o3 |
| Anthropic | anthropic/claude-opus-4 |
| Anthropic | anthropic/claude-sonnet-4 |
google/gemini-2.5-pro | |
google/gemini-2.5-flash | |
| Meta | meta-llama/llama-4-maverick |
| Meta | meta-llama/llama-3.3-70b-instruct |
| Mistral | mistralai/mistral-large |
| Mistral | mistralai/codestral |
| DeepSeek | deepseek/deepseek-r1 |
| DeepSeek | deepseek/deepseek-chat-v3-0324 |
| xAI | x-ai/grok-3 |
| xAI | x-ai/grok-3-mini |
| Cohere | cohere/command-r-plus |
| Perplexity | perplexity/sonar-pro |
Some models have special suffix modifiers that select a specific variant:
:free— the free-tier variant of a model (e.g.arcee-ai/trinity-mini:free):thinking— the extended reasoning / chain-of-thought variant (e.g.anthropic/claude-3.7-sonnet:thinking)
Specifying a model in requests
Pass the model ID in the model field of your request body. The format is identical to the OpenAI API — only the value changes.
TypeScript / JavaScript (OpenAI SDK)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.solrouter.io/ai",
apiKey: process.env.SOLROUTER_API_KEY,
});
const completion = await client.chat.completions.create({
model: "anthropic/claude-sonnet-4", // ← provider/model-name
messages: [{ role: "user", content: "Explain quantum entanglement." }],
});
console.log(completion.choices[0].message.content);
Python (OpenAI SDK)
from openai import OpenAI
import os
client = OpenAI(
base_url="https://api.solrouter.io/ai",
api_key=os.environ["SOLROUTER_API_KEY"],
)
completion = client.chat.completions.create(
model="google/gemini-2.5-pro", # ← provider/model-name
messages=[{"role": "user", "content": "Explain quantum entanglement."}],
)
print(completion.choices[0].message.content)
curl
curl https://api.solrouter.io/ai/chat/completions \
-H "Authorization: Bearer $SOLROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/llama-4-maverick",
"messages": [{"role": "user", "content": "Explain quantum entanglement."}]
}'
Popular models reference
The table below lists frequently used models with their context windows and approximate pricing. Prices are per million tokens and are passed through directly from the provider with no markup.
| Model ID | Context | Input ($/M) | Output ($/M) | Notes |
|---|---|---|---|---|
openai/gpt-4o | 128k | $2.50 | $10.00 | Vision, function calling |
openai/gpt-4o-mini | 128k | $0.15 | $0.60 | Fast, cost-effective |
openai/gpt-4.1 | 1M | $2.00 | $8.00 | Largest context OpenAI |
openai/gpt-4.1-mini | 1M | $0.40 | $1.60 | Long-context budget option |
openai/o3 | 200k | $10.00 | $40.00 | Reasoning model |
openai/o4-mini | 200k | $1.10 | $4.40 | Fast reasoning |
anthropic/claude-opus-4 | 200k | $15.00 | $75.00 | Most capable Claude |
anthropic/claude-sonnet-4 | 200k | $3.00 | $15.00 | Balanced performance |
anthropic/claude-3.7-sonnet:thinking | 200k | $3.00 | $15.00 | Extended reasoning |
anthropic/claude-haiku-3.5 | 200k | $0.80 | $4.00 | Fastest Claude |
google/gemini-2.5-pro | 1M | $1.25 | $10.00 | Long-context reasoning |
google/gemini-2.5-flash | 1M | $0.15 | $0.60 | Fast, multimodal |
google/gemini-2.0-flash | 1M | $0.10 | $0.40 | Budget multimodal |
meta-llama/llama-4-maverick | 128k | $0.19 | $0.49 | Open weights, vision |
meta-llama/llama-3.3-70b-instruct | 128k | $0.12 | $0.30 | Strong open model |
mistralai/mistral-large | 128k | $2.00 | $6.00 | Mistral flagship |
mistralai/codestral | 256k | $0.30 | $0.90 | Code-specialised |
deepseek/deepseek-r1 | 164k | $0.55 | $2.19 | Reasoning, open weights |
deepseek/deepseek-chat-v3-0324 | 164k | $0.27 | $1.10 | Fast chat |
x-ai/grok-3 | 131k | $3.00 | $15.00 | xAI flagship |
x-ai/grok-3-mini | 131k | $0.30 | $0.50 | Fast, reasoning traces |
cohere/command-r-plus | 128k | $2.50 | $10.00 | RAG-optimised |
perplexity/sonar-pro | 200k | $3.00 | $15.00 | Web search grounding |
arcee-ai/trinity-mini:free | 32k | Free | Free | Free tier |
Prices shown are approximate and subject to change. Always check the Models page or the
pricingfield in the model details API for the current rates used in billing.
Free models
Some models are available at no cost. Free models are identified by:
IsFree: truein the model metadata- A
:freesuffix appended to the model ID
arcee-ai/trinity-mini:free
meta-llama/llama-3.1-8b-instruct:free
mistralai/mistral-7b-instruct:free
google/gemma-3-27b-it:free
Free models are fully functional and go through the same request pipeline as paid models. They are subject to rate limits that are more restrictive than paid models, and availability may vary based on provider capacity.
Using a free model
const completion = await client.chat.completions.create({
model: "arcee-ai/trinity-mini:free",
messages: [{ role: "user", content: "Summarise this paragraph." }],
});
Filtering free models on the catalogue
On the Models page, toggle the Free filter to show only models with IsFree: true. In the API, free models can be identified programmatically by checking the pricing.prompt and pricing.completion fields — both are "0" for free models.
Modalities
Not every model supports every input or output type. SolRouter exposes the modalities field on each model so you can match the right model to your task.
Input modalities
| Modality | Description | Example models |
|---|---|---|
text | Plain text or structured messages | All models |
image | Static images (JPEG, PNG, WebP, GIF) | openai/gpt-4o, anthropic/claude-sonnet-4, google/gemini-2.5-pro |
audio | Speech or audio clips | openai/gpt-4o-audio-preview |
video | Video frames or clips | google/gemini-2.5-pro, google/gemini-2.5-flash |
file | PDFs, documents | anthropic/claude-opus-4, google/gemini-2.5-pro |
Output modalities
| Modality | Description | Example models |
|---|---|---|
text | Natural language responses | All models |
image | Generated images | openai/dall-e-3 |
audio | Synthesised speech | openai/gpt-4o-audio-preview |
Sending an image alongside text
const completion = await client.chat.completions.create({
model: "openai/gpt-4o",
messages: [
{
role: "user",
content: [
{ type: "text", text: "What is shown in this image?" },
{
type: "image_url",
image_url: {
url: "https://example.com/chart.png",
},
},
],
},
],
});
Filtering by modality on the catalogue
The Models page includes modality filter chips (Text, Image, Audio, Video). Select one or more to narrow the list to models that support those input types. Models that support a given modality display a badge next to their name.
Deprecated and expiring models
Providers occasionally retire older model versions. SolRouter surfaces this through an ExpirationDate field on the model object. When a model has a set expiration date, the catalogue page shows a warning badge and the date after which the model will stop accepting new requests.
How to handle expiring models
- Check the catalogue regularly — the Models page flags models with upcoming expiration dates with a warning icon
- Update your
modelfield to a current model before the expiration date - Use model fallback — configure a fallback chain so your application automatically switches to an updated model without downtime (see Model Fallback)
Example: migrating from a deprecated model
// Before — deprecated model
const completion = await client.chat.completions.create({
model: "openai/gpt-4-turbo", // expiring
messages: [{ role: "user", content: "Hello!" }],
});
// After — current replacement
const completion = await client.chat.completions.create({
model: "openai/gpt-4.1", // current
messages: [{ role: "user", content: "Hello!" }],
});
When a model reaches its ExpirationDate, requests that specify it will receive a 404 error with a message indicating the model is no longer available.
Next steps
- Reasoning Models — when and how to use thinking models (o3, Claude, DeepSeek R1)
- Model Fallback — automatic failover chains for high availability
- Token Counting — estimate costs, understand image tokens, and use prompt caching
- Vision & Multimodal — detailed guide to sending images, audio, and video