Models & comparisonsComparison
Which cheap model for your task? Pick by input:output ratio
Measure your input-to-output token ratio, then see whether GLM-5.3-Flash, DeepSeek-V4-Flash or MiniMax-M2.7 costs least for chat, summaries or tagging.

On this page
Pick by the shape of your task, not by the headline price. If the input is long and the answer is short (long-report summaries, tagging over long inputs), DeepSeek-V4-Flash costs least of the three. If the answer is as long as the input or longer (short chat turns, rewrites, code generation), GLM-5.3-Flash does, and a long chat flips the answer midway. MiniMax-M2.7 is the one to take when your own test says its answers suit you best, and of the three it sits furthest below OpenRouter's reference price.
You can see which side you are on after 20 requests. The prices below come from the CheapTokens price reference of 6 November 2026, and every number in a table or a marker is live, so it follows the current tariffs.
A request has two meters#
Every request is billed twice: once for the tokens you send (input), once for the tokens the model writes back (output). Each model sets its own price for each side, and that is where comparing headline prices goes wrong (the basics are in Input vs output tokens: what an AI API bills you for).
DeepSeek-V4-Flash charges $0.015 for input and $0.10 for output per 1M tokens. GLM-5.3-Flash charges $0.02 and $0.04. MiniMax-M2.7 charges $0.05 and $0.15. One model is cheaper on the way in, another on the way out, so the winner depends on how many tokens travel each way.
That proportion is the number to know: input tokens divided by output tokens. A tagger that reads a 600-token ticket and answers with a 10-token label sits at 60 to 1 (600 ÷ 10 = 60). A rewrite tool that takes a 400-token paragraph and returns 800 tokens sits at 1 to 2 (400 ÷ 800 = 0.5).
Guess the number
A chat carries 6,000 tokens of history and the model answers in 300. What is the input:output ratio?
Your guess
060
Show answer
Answer: 20
6,000 ÷ 300 = 20. The history is twenty times the answer, so the input meter runs far ahead of the output meter.
Measure your own ratio in 20 requests#
Guessing is where this goes wrong, so measure. Every Chat Completions response carries a usage object with prompt_tokens (what you sent) and completion_ (what came back). The Anthropic Messages format calls them input_tokens and output_tokens; the CheapTokens docs show both formats.
Take 20–50 real requests from your task and add up each side. Add up, don't average the per-request ratios: one tiny answer would drag an average all over the place.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key=os.environ["CHEAPTOKENS_API_KEY"],
)
prompts = ["...", "..."] # 20-50 real inputs from your task
tokens_in = tokens_out = 0
for text in prompts:
r = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V4-Flash-0731",
messages=[{"role": "user", "content": text}],
max_tokens=2000,
)
tokens_in += r.usage.prompt_tokens
tokens_out += r.usage.completion_tokens
print(f"input {tokens_in}, output {tokens_out}, ratio {tokens_in / tokens_out:.1f} : 1")
The last line prints your ratio. That single number is all you carry into the next section.
What the ratio does to the bill#
Here are four common shapes. The sizes are assumptions picked to be typical; swap in the numbers from your own run.

Tagging 10,000 tickets a day#
Say a support tool tags 10,000 tickets a day: 600 tokens in, a 10-token label out. The whole day on each model:
| Model | Input $/1M | Output $/1M | Per request | 10,000 requests | OpenRouter, 10,000 requests |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000012 | $0.124 | $0.209 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.00001 | $0.10 | $0.434 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000032 | $0.315 | $3.78 |
600 input and 10 output tokens per request. Prices per 1M tokens are current and change together with our tariffs; the OpenRouter column shows reference prices for the same workload.
Read the table. DeepSeek-V4-Flash is the cheapest of the three here, because almost every token you pay for is input. The OpenRouter column shows all three models below the reference price in total, with input and output counted together.
Summarizing long reports#
A 12,000-token report squeezed into a 300-token summary is 40 to 1 (12,000 ÷ 300 = 40). One summary costs $0.00021 on DeepSeek-V4-Flash and $0.00025 on GLM-5.3-Flash. Same story as tagging: the more you read per word you write, the more DeepSeek's input price helps.
Rewrites and code files#
Now flip it. A tone rewrite takes 400 tokens in and gives 800 back. DeepSeek-V4-Flash: $0.000086. GLM-5.3-Flash: $0.00004. Output is the bigger half of this bill, so the model with the lowest output price wins, and that is GLM-5.3-Flash.
A chat that keeps growing#
Chat is the sneaky one, because the API has no memory: each turn you resend the whole messages array. On turn 1 the user writes 300 tokens and the bot answers 200 (300 ÷ 200 = 1.5). That is GLM territory: $0.000014 against $0.000025 on DeepSeek-V4-Flash.
By turn 30 the history is 6,000 tokens and the answer is still 200 (6,000 ÷ 200 = 30). Now $0.00013 on GLM-5.3-Flash faces $0.00011 on DeepSeek-V4-Flash, and the cheaper model has flipped. The same bot changes its best model halfway through a long conversation.
Match the pairs
Match each task to its input:output shape
Tap an item on the left, then its pair
- Tagging a support ticket with one labelAbout 60 : 1, input-heavy
- Summarizing a 12,000-token reportAbout 40 : 1, input-heavy
- Rewriting a paragraph in a friendlier toneAbout 1 : 2, output-heavy
- Message 30 of a chat with full historyAbout 30 : 1 and still growing
When the length of one answer decides#
Ratio is not the only gate. The answer cap differs: DeepSeek-V4-Flash writes up to 32,768 output tokens in one answer, GLM-5.3-Flash and MiniMax-M2.7 up to 8,192.
Say you ask for a whole 12,000-token module in one go. On a model capped at 8,192 the reply stops mid-file with finish_ (the fix is in AI answer cut off? Fix finish_reason length and max_tokens). On DeepSeek-V4-Flash it fits. So for long single outputs, check the cap first and the ratio second.
On the input side GLM-5.3-Flash takes 390K tokens of context and DeepSeek-V4-Flash 380K, enough for a whole book-length document in one request. MiniMax-M2.7 has 180K.
Where MiniMax-M2.7 fits#
The ratio decides between the two rows that win the tables above. You choose MiniMax-M2.7 for a different reason: how its answers read on your task. In the cost table it also shows the widest margin under the OpenRouter column, and 180K of context is plenty for chat and most documents.
No price table can tell you about quality. Run the same 20 prompts from the measuring step through all three ids (zai-, deepseek-, MiniMaxAI/) and read the answers side by side. For a head-to-head overview see GLM vs DeepSeek vs MiniMax: which model to choose. For whole agent sessions, see Agent session cost: 50 steps on GLM, DeepSeek or MiniMax.
Put in your own numbers#
Enter the tokens of a single request and how many requests you send a day. The calculator uses live prices and shows all three models. The starting values are a RAG answer bot: 3,000 tokens of retrieved text and question in, 500 out. Drag the input up and watch the cheapest row change.
Cost calculator
A RAG answer bot, one day
Input tokens per request: 3,000 · Output tokens per request: 500 · Requests per day: 200
| Model | Per day | Per month |
|---|---|---|
| GLM-5.3-Flash$0.02$0.04 | $0.016 | $0.48 |
| DeepSeek-V4-Flash$0.015$0.10 | $0.019 | $0.57 |
| MiniMax-M2.7$0.05$0.15 | $0.045 | $1.35 |
When the numbers look right, run through this list.
Checklist
Before you commit to a model
The base URL and model ids are in the CheapTokens docs, the full live price list is on the pricing page, and each model has its own page: GLM, DeepSeek, MiniMax. One balance covers all three, so switching after a measurement is a one-line change of the model id.



