The cheapest LLM APIs right now
The table ranks paid chat models on FastInfra by combined input and output price per million tokens. It is generated from the live catalog every time the page is served, so it reflects today's prices rather than the day this page was written.
| Model | Input $/1M | Output $/1M | Routes |
|---|---|---|---|
Mistral Nemomistralai/mistral-nemo | $0.0313 | $0.0324 | 1 |
Ling 3.0 Flashinclusionai/ling-3.0-flash | $0.0227 | $0.068 | 1 |
L3 Lunaris 8Bsao10k/l3-lunaris-8b | $0.0432 | $0.054 | 1 |
Llama 3.2 1B Instructmeta-llama/llama-3.2-1b-instruct | $0.0648 | $0.0648 | 2 |
Llama 3.2 3B Instructmeta-llama/llama-3.2-3b-instruct | $0.0648 | $0.0648 | 2 |
Mistral Small 24B Instruct 2501mistralai/mistral-small-24b-instruct-2501 | $0.054 | $0.0864 | 2 |
GPT-OSS 20Bopenai/gpt-oss-20b | $0.0324 | $0.1404 | 3 |
Nova Micro V1amazon/nova-micro-v1 | $0.0378 | $0.1512 | 1 |
Schematron V2 Turboinference-net/schematron-v2-turbo | $0.0324 | $0.162 | 1 |
Command R7B 12.2024cohere/command-r7b-12-2024 | $0.0405 | $0.162 | 1 |
Mythomax L2 13Bgryphe/mythomax-l2-13b | $0.0864 | $0.1188 | 1 |
Mercury 2.5inception/mercury-2.5 | $0.0432 | $0.162 | 1 |
Trinity Miniarcee-ai/trinity-mini | $0.0486 | $0.162 | 1 |
Granite 4.2 8Bibm-granite/granite-4.2-8b | $0.0648 | $0.162 | 1 |
Phi 4microsoft/phi-4 | $0.0756 | $0.1512 | 1 |
The cheapest paid chat model currently starts at $0.0227 per million input tokens, and the median paid model charges $1.026 per million output tokens. 12 models cost nothing at all on the free tier.
Cheapest is a workload decision, not a model decision
Per-token price is only half of the bill. What you pay per request is input tokens × input price + output tokens × output price, and output tokens usually cost several times more than input. Three rules cover most cases:
- Input-heavy work (RAG, classification, extraction over long documents) — pick the lowest input price with a context window big enough for your documents.
- Output-heavy work (drafting, code generation, agents that write a lot) — the output price dominates; a model that is cheap on input can still be expensive here.
- Quality-sensitive work — a model that solves the task in one call is cheaper than a model that needs three retries. Test on 50 real examples before you switch.
Popular models and what they cost
| Model | Input $/1M | Output $/1M | Routes |
|---|---|---|---|
Claude Opus 5anthropic/claude-opus-5 | $5.4 | $27 | 1 |
Claude Sonnet 5anthropic/claude-sonnet-5 | $2.16 | $10.8 | 1 |
Claude Haiku 5.5anthropic/claude-haiku-5.5 | $0.108 | $0.54 | 1 |
Claude Fable 5.1anthropic/claude-fable-5.1 | $10.8 | $54 | 1 |
GPT-5.5openai/gpt-5.5 | $5.4 | $32.4 | 1 |
GPT-6 Solopenai/gpt-6-sol | $2.16 | $10.8 | 1 |
GPT-OSS 120Bgpt-oss-120b | $0.162 | $0.648 | 5 |
Gemini 3.8 Flashgoogle/gemini-3.8-flash | $0.81 | $4.05 | 1 |
DeepSeek V4 Prodeepseek/deepseek-v4-pro | $1.728 | $3.456 | 2 |
DeepSeek V4 Flashdeepseek/deepseek-v4-flash | $0.0983 | $0.1966 | 2 |
Qwen3.6 27Bqwen/qwen3.6-27b | $0.486 | $2.916 | 2 |
Kimi K3moonshotai/kimi-k3 | $0.2074 | $16.2 | 3 |
Grok 4.7x-ai/grok-4.7 | $2.16 | $6.48 | 1 |
GLM 5.3glm-5.3 | $0.0864 | $3.888 | 4 |
Llama 4 Maverickmeta-llama/llama-4-maverick | $0.2025 | $0.7047 | 1 |
Five ways to cut LLM API cost without changing quality
- Route by difficulty. Send simple requests to a flash-class model and escalate only hard ones to a frontier model.
- Use batch pricing for offline jobs. Models with a batch variant cost about half the standard rate when you can wait for results.
- Cap
max_tokens. Unbounded output is the most common source of surprise bills. - Trim the prompt. Long system prompts and full chat histories are billed on every call; summarise older turns.
- Let routing pick the provider. FastInfra sends each request to the lowest-cost healthy route for that model and fails over automatically.
Call any of them with one key
from openai import OpenAI
client = OpenAI(base_url="https://api.fastinfra.ai/v1", api_key="YOUR_FASTINFRA_KEY")
resp = client.chat.completions.create(
model="deepseek/deepseek-v4-flash",
messages=[{"role": "user", "content": "Summarise this ticket in one line."}],
)
print(resp.choices[0].message.content)