ChatGPT API price: what GPT models cost and how to price a request
We price requests to GPT models at October 18, 2026 rates: the formula, the role of cache, three scenarios and a comparison with official tariffs.
6 min · · экономия · models
The query "ChatGPT API price" usually means: how much to pay for calling GPT models from your own code. ChatGPT itself is an app with a subscription, while in the API you pay per token, and the price depends on the model, the request and answer length and how much of the input is read from cache. Below are the October 18, 2026 price table, the formula and three scenarios with full arithmetic for GPT-6.1 Sol, GPT-6 Sol, GPT-6 Luna and GPT-6 Astra.
GPT model prices in Zukko
Prices in $ per 1M tokens:
| Model | Input | Output | Cache read | Official, input / output | Images | Index |
|---|---|---|---|---|---|---|
gpt-6.1-sol | 0.27 | 1.32 | 0.013 | 2 / 10 | yes | 52 |
gpt-6-sol | 0.13 | 0.63 | 0.013 | 2 / 10 | yes | 49 |
gpt-6-luna | 0.04 | 0.21 | 0.038 | 0.1 / 0.5 | no | 38 |
gpt-6-astra | 0.62 | 3.05 | 0.063 | 10 / 50 | yes | 53 |
All four have a 1M-token context. Provider prices change often, so this is an example for October 18, 2026. The current list comes from GET https://api.zukko.pro/v1/models and the "Models" page in the dashboard.
The formula
cost = fresh input × input price + cache read × read price + output × output price
Where to get the numbers: the API response has a usage block:
prompt_tokensis all input, including the cached part;prompt_tokens_details.cached_tokensis how many of those were read from cache;completion_tokensis output.
Fresh input = prompt_tokens − cached_tokens.
An important feature of GPT in Zukko: only cache reads are accounted for. A cache write is not billed separately, and the first request with a long prefix goes entirely at the input price. That is why there is no "cache write" line in the calculations. Details: keys, limits and cache.
Note gpt-6-luna: its cache read price of $0.038 is almost equal to its input price of $0.04, so there is practically no cache discount. For the other models a cache read is noticeably cheaper than input.
Scenario 1. A chat bot without cache
A request: 2,000 input tokens (instruction, history, question) and 500 output tokens.
| Model | Input | Output | Total per request | Per 10,000 requests |
|---|---|---|---|---|
gpt-6.1-sol | 2,000 × 0.27 / 1M = $0.00054 | 500 × 1.32 / 1M = $0.00066 | $0.0012 | $12.00 |
gpt-6-sol | $0.00026 | $0.000315 | $0.000575 | $5.75 |
gpt-6-luna | $0.00008 | $0.000105 | $0.000185 | $1.85 |
gpt-6-astra | $0.00124 | $0.001525 | $0.002765 | $27.65 |
For comparison, at official prices for gpt-6.1-sol ($2 / $10): 2,000 × 2 / 1M + 500 × 10 / 1M = $0.004 + $0.005 = $0.009 per request, so $90 per 10,000.
Scenario 2. A support bot with a large knowledge base and cache
Each request has a shared 12,000-token prefix (instruction and knowledge base) plus 500 tokens of question. Output is 400 tokens. After the first request the prefix is read from cache: 12,000 cached tokens, 500 fresh.
With cache:
| Model | Fresh input | Cache read | Output | Total |
|---|---|---|---|---|
gpt-6.1-sol | 500 × 0.27 / 1M = $0.000135 | 12,000 × 0.013 / 1M = $0.000156 | 400 × 1.32 / 1M = $0.000528 | $0.000819 |
gpt-6-sol | $0.000065 | $0.000156 | $0.000252 | $0.000473 |
gpt-6-luna | $0.00002 | 12,000 × 0.038 / 1M = $0.000456 | $0.000084 | $0.00056 |
gpt-6-astra | $0.00031 | 12,000 × 0.063 / 1M = $0.000756 | $0.00122 | $0.002286 |
The same request without cache (all 12,500 input tokens at the input price):
gpt-6.1-sol: 12,500 × 0.27 / 1M + $0.000528 = $0.003375 + $0.000528 = $0.003903gpt-6-sol: $0.001625 + $0.000252 = $0.001877gpt-6-luna: $0.0005 + $0.000084 = $0.000584gpt-6-astra: $0.00775 + $0.00122 = $0.00897
The conclusion from the table is not obvious: with cache gpt-6-sol ($0.000473) turns out cheaper than gpt-6-luna ($0.00056), even though without cache Luna is cheaper. The reason is Luna's cache read price. So for tasks with a long repeated prefix, choose a model by the formula, not by the input price. The cost of the cached prefix is the main expense item in such a setup; more on it in cache and what an agent costs.
Scenario 3. Batch classification of 100,000 texts
Each text is 300 input tokens and 20 output tokens, no cache.
- Input: 100,000 × 300 = 30,000,000 (30M)
- Output: 100,000 × 20 = 2,000,000 (2M)
| Model | Input | Output | Total |
|---|---|---|---|
gpt-6.1-sol | 30 × 0.27 = $8.10 | 2 × 1.32 = $2.64 | $10.74 |
gpt-6-sol | 30 × 0.13 = $3.90 | 2 × 0.63 = $1.26 | $5.16 |
gpt-6-luna | 30 × 0.04 = $1.20 | 2 × 0.21 = $0.42 | $1.62 |
gpt-6-astra | 30 × 0.62 = $18.60 | 2 × 3.05 = $6.10 | $24.70 |
At official prices for gpt-6.1-sol on the same batch: 30 × 2 + 2 × 10 = $60 + $20 = $80. Luna ($1.62) suits simple text classification if it passes your quality checks. It does not accept images.
How to choose a model by price and index
Price and Intelligence Index are reference points, not a guarantee of results. The index reflects the model's overall averaged strength according to Artificial Analysis. The practice is:
- Take 30–50 real requests.
- Run them on the cheapest model that technically fits (context, images).
- If quality falls short, move up the list and recalculate the cost with the formula each time.
Closely related models are compared separately: GPT-6 Sol or GPT-6.1 Sol.
Computing the cost in code
from openai import OpenAI
PRICES = { # $ per 1M tokens at October 18, 2026: input, output, cache read
"gpt-6.1-sol": (0.27, 1.32, 0.013),
"gpt-6-sol": (0.13, 0.63, 0.013),
"gpt-6-luna": (0.04, 0.21, 0.038),
"gpt-6-astra": (0.62, 3.05, 0.063),
}
client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_your_key")
def ask(model, text):
r = client.chat.completions.create(
model=model,Always reconcile the actual charge with the "Usage" section of the dashboard: the formula above gives an estimate, not a statement.
How to top up
The balance is in dollars, topped up from $1. Access from Russia goes through the gateway. Payment methods:
- SBP: rubles at the market rate, the payment page adds an 8.5% fee on top. To get $10 on the balance, pay an amount equivalent to $10 × 1.085 = $10.85;
- cryptocurrency: USDT and others;
- MasterCard cards: a fee of about 13%, amounts from $2 to $594.
There is no subscription; you pay only for the tokens you used. You can limit spending: each key has a daily and a monthly limit in dollars. Create the key in the dashboard. Current prices for models of all families are collected in API prices for AI models in October 2026.
FAQ
How does the "ChatGPT API" differ from a ChatGPT subscription?
A subscription belongs to the ChatGPT app, and its terms are on the service's site. In the API you pay per token and use a key in code. These are different ways of using GPT models.
How do I find out how many tokens are in my request?
After a request, look at the usage block. For an advance estimate there is the POST /v1/messages/count_tokens endpoint (Anthropic format); its capabilities are described in the Zukko documentation. Tokens are counted by the specific model's rules.
Is a cache write billed for GPT?
No. For GPT models in Zukko only the cache read is accounted for separately. The first request with a long prefix goes entirely at the input price.
Why is Luna sometimes not cheaper than Sol?
For gpt-6-luna the cache read price ($0.038) is almost equal to the input price ($0.04). With a large cached prefix the request cost is determined by the cache read, and gpt-6-sol, which is pricier on input but reads cache at $0.013, can come out cheaper, as in scenario 2.
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.
Related articles
- Grok API price: cost of Grok 4.7, 4.6 and 4.5 with examplesWe price requests to Grok 4.7, 4.6 and 4.5 in Zukko on three scenarios and compare with official xAI prices. Formulas are shown and the arithmetic can be checked.
- DeepSeek API for free: is there a free tier and what is the minimum costWe do not promise free access, but the minimum is very low. A formula-based count of how many requests fit into one dollar.
- DeepSeek API price: cost of V4 Pro and V4.1 Flash worked throughWhat requests to three DeepSeek models cost: the formula, three typical scenarios at 10,000 requests, the role of the cache and a usage-based cost script.
- opencode agents: setting up roles, models and toolsA custom agent in opencode is a role, a model and a set of permissions. A working config where a cheap model handles routine work and a stronger one edits code.