The cheapest models for bulk tasks: prices, math and how to choose

The six cheapest models in the catalog in one table: what tens of thousands of requests cost, and which criteria decide between them.

6 min · · экономия · models

When you have tens or hundreds of thousands of requests, price per token becomes the main parameter. If you're looking for the cheapest AI model API for labelling, data extraction, or short answers, the Zukko catalog has six candidates. Below are their prices, the math for real volumes, and the criteria to choose by: images, context, and intelligence index.

Cheapest AI model API: price table

Prices in USD per 1M tokens, as of 2026-10-06.

ModelidInput / outputCache: read / writeIntelligence indexContextImages
DeepSeek V4.1 Flashdeepseek-v4.1-flash0.013 / 0.0380.013 / —391Mno
Gemini 3.7 Flashgemini-3.7-flash0.013 / 0.050.013 / ——1Mno
Gemini 3.8 Flashgemini-3.8-flash0.025 / 0.0880.013 / —411Mno
GLM 5.3 Flashglm-5.3-flash0.04 / 0.040.04 / —42128Kno
Qwen 3.8 Flashqwen3.8-flash0.038 / 0.0880.038 / —401Mno
GPT-6 Lunagpt-6-luna0.04 / 0.210.038 / —381Mno

The intelligence index is the Artificial Analysis Intelligence Index, a composite benchmark score. The dash in the index column for Gemini 3.7 Flash means we have no index value for it. None of the six models has a separately charged cache write (the dash in the write column): the first request is billed at the input price. The gateway always sees cache reads for GPT-6 Luna; for the others, only if the provider reports them in the response.

Three things stand out:

  • On input, DeepSeek V4.1 Flash and Gemini 3.7 Flash are cheapest, at $0.013 each.
  • On output, DeepSeek V4.1 Flash is cheapest ($0.038), followed by GLM 5.3 Flash ($0.04) and Gemini 3.7 Flash ($0.05).
  • None of the six accepts image input.

For the current model list and prices, call GET https://api.zukko.pro/v1/models or open the Models page in the dashboard.

Volume math

One formula for all:

cost = (N × input_per_request × input_price + N × output_per_request × output_price) / 1,000,000

Scenario 1: short answers

50,000 requests at 1,000 input and 200 output tokens each. That's 50,000,000 input and 10,000,000 output tokens — plug in "millions × price":

ModelInput: 50 × priceOutput: 10 × priceTotal
DeepSeek V4.1 Flash$0.65$0.38$1.03
Gemini 3.7 Flash$0.65$0.50$1.15
Gemini 3.8 Flash$1.25$0.88$2.13
GLM 5.3 Flash$2.00$0.40$2.40
Qwen 3.8 Flash$1.90$0.88$2.78
GPT-6 Luna$2.00$2.10$4.10

Checking one row: GLM 5.3 Flash — 50 × 0.04 + 10 × 0.04 = 2.00 + 0.40 = $2.40. The math assumes the same token count for every model; their tokenizers differ, so actual numbers may vary somewhat.

Scenario 2: long answers

10,000 requests at 500 input and 2,000 output tokens each (product descriptions, email drafts). That's 5,000,000 input and 20,000,000 output:

ModelInput: 5 × priceOutput: 20 × priceTotal
DeepSeek V4.1 Flash$0.065$0.76$0.825
GLM 5.3 Flash$0.20$0.80$1.00
Gemini 3.7 Flash$0.065$1.00$1.065
Gemini 3.8 Flash$0.125$1.76$1.885
Qwen 3.8 Flash$0.19$1.76$1.95
GPT-6 Luna$0.20$4.20$4.40

The order changed: with long answers, GLM 5.3 Flash, which charges the same for input and output, overtakes Gemini 3.7 Flash. So compute for your own profile: first measure average prompt_tokens and completion_tokens on 100–200 real requests.

Selection criteria

Images

If your task involves images (receipts, screenshots, product photos), none of the six will do. The cheapest catalog models with image input are DeepSeek V4 Pro (deepseek-v4-pro, $0.088 / $0.25, index 36) and Qwen 3.8 Max (qwen3.8-max, $0.1 / $0.263, index 45). You can split the stream: text requests to a cheap model, image requests to a model that supports them.

Context: 128K or 1M

GLM 5.3 Flash has a 128K-token context; the other five have 1M. For labelling short messages it makes no difference. For long contracts, logs, or exports that don't fit into 128K, GLM 5.3 Flash is out.

Intelligence index

Within the group the index ranges from 38 to 42: GLM 5.3 Flash 42, Gemini 3.8 Flash 41, Qwen 3.8 Flash 40, DeepSeek V4.1 Flash 39, GPT-6 Luna 38. A four-point spread is a reason to test on your own data, not to choose blindly. The index is averaged across many tasks, and you have one.

Caching

If all requests share a long common prefix (a big instruction or reference text), look at the cache-read price. In this group it is notably below input only for Gemini 3.8 Flash ($0.013 vs $0.025, if the provider reports the cache read), and slightly for GPT-6 Luna ($0.038 vs $0.04). For the rest, a cache read costs the same as input.

Format and existing stack

All six models are called through the same OpenAI-compatible endpoint, and the gateway converts the request, so switching is a one-line change of the model name.

How to compare candidates quickly

The script below computes the cost of your volume at catalog prices. Plug in your average tokens from a test run:

bash
PRICES = {  # USD per 1M tokens: (input, output), catalog as of 2026-10-06
    "deepseek-v4.1-flash": (0.013, 0.038),
    "gemini-3.7-flash": (0.013, 0.05),
    "gemini-3.8-flash": (0.025, 0.088),
    "glm-5.3-flash": (0.04, 0.04),
    "qwen3.8-flash": (0.038, 0.088),
    "gpt-6-luna": (0.04, 0.21),
}

requests_count = 50_000
avg_in, avg_out = 1_000, 200

for model, (p_in, p_out) in sorted(
    PRICES.items(), key=lambda kv: avg_in * kv[1][0] + avg_out * kv[1][1]
):
    cost = requests_count * (avg_in * p_in + avg_out * p_out) / 1_000_000
    print(f"{model:22} ${cost:.2f}")

Then check quality: run 50–100 real examples with reference answers through the two or three cheapest options and pick the cheapest one with acceptable accuracy. A request to any model looks the same:

bash
from openai import OpenAI

client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_your_key")

resp = client.chat.completions.create(
    model="deepseek-v4.1-flash",  # change it here
    messages=[{"role": "user", "content": "Detect the language of this text: 'Guten Morgen'"}],
)
print(resp.choices[0].message.content, resp.usage.prompt_tokens, resp.usage.completion_tokens)

For parallel sending and handling 429 at volume, see the article on bulk request processing. Request parameters are in the chat/completions docs, the model list in the /v1/models docs.

How to stay within budget

For a bulk run, create a separate key with a daily and monthly USD limit and allowed_models containing only the chosen model. If the script mistakenly calls another model, the request gets 403 model_not_allowed_for_key instead of being billed at a different price. Set it up on the API keys page in the dashboard.

Start with a key and a test run on a hundred examples — at the prices above it costs a fraction of a cent.

FAQ

Which is the cheapest model in the catalog?

At prices as of 2026-10-06, DeepSeek V4.1 Flash: $0.013 per 1M input and $0.038 per 1M output tokens. It came out cheapest in both scenarios. But "cheapest" doesn't mean "suitable": check accuracy on your own examples. A comparison with the closest alternative is in the article DeepSeek or Gemini Flash.

Is there a cheap model that understands images?

Not among the six in the table. Among models with image input, the cheapest are DeepSeek V4 Pro ($0.088 / $0.25) and Qwen 3.8 Max ($0.1 / $0.263).

How does Gemini 3.7 Flash differ from 3.8 Flash on price?

Gemini 3.7 Flash is $0.013 / $0.05, Gemini 3.8 Flash is $0.025 / $0.088. 3.8 Flash has an intelligence index of 41; we have no value for 3.7 Flash. Only a test on your own examples will show which one handles your task better.

Does caching save money on cheap models?

In this group, noticeably only for Gemini 3.8 Flash, where a cache read costs roughly half the input price ($0.013 vs $0.025) — if the provider reports it in the response. For DeepSeek V4.1 Flash, Gemini 3.7 Flash, GLM 5.3 Flash, and Qwen 3.8 Flash, the cache-read price equals the input price.

zukko

Pay 25×
less

for Claude Code & ChatGPT

One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.

Get API keyDocumentation

api.zukko.pro · fetch_*

Cheapest AI model API: 6 models and cost math · Zukko