Models & picking one

A single key gives you access to 41 models. To switch models, just change the model field — no reconnecting needed.

Which model to use

TaskModelWhy
Coding and agentsgpt-5.6-solstrong reasoning and reliable tool calling
Cheap and high-volumedeepseek-v4-flashlowest price per 1M tokens
Long context, PDFs, imagesgemini-3.7-flashmultimodal input, huge context window
Writing and analysisclaude-sonnet-4-6quality prose, long documents
Fast chat repliesgpt-5.6-lunalow latency at a low price
Speech recognitiongpt-4o-transcribeaudio to text
A good strategy is to keep two models on hand: a strong one for complex steps and a cheap one for routine tasks. Switching is a one-line change.

Popular models

ModelContextPrice per 1M input
gpt-6-astra1M48,9 ₽
gpt-5.6-sol1M18,8 ₽
gpt-5.6-terra1M9,02 ₽
gpt-5.6-luna1M1,65 ₽
gpt-5.5400K18,8 ₽
gpt-5.41M11,3 ₽
gpt-5.4-mini400K6,02 ₽
claude-fable-5200K60,2 ₽
claude-opus-51M30,1 ₽
claude-opus-4-81M30,1 ₽
claude-opus-4-71M30,1 ₽
claude-opus-4-61M30,1 ₽

The full catalog with prices, context windows, and supported input types is on the models page.

Listing models via request

You can fetch current model names straight from the API — handy for select boxes in your UI.

curl https://api.relaymodels.com/v1/models -H "Authorization: Bearer $RELAY_API_KEY"

Fallback model

If uptime matters to you, add a simple safety net: retry the request on another model when one fails.

const chain = ["gpt-5.6-sol", "claude-sonnet-4-6", "gemini-3.7-flash"];

for (const model of chain) {
  try {
    return await client.chat.completions.create({ model, messages });
  } catch (e) {
    // try the next model
  }
}

What's next