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:

ModelInputOutputCache readOfficial, input / outputImagesIndex
gpt-6.1-sol0.271.320.0132 / 10yes52
gpt-6-sol0.130.630.0132 / 10yes49
gpt-6-luna0.040.210.0380.1 / 0.5no38
gpt-6-astra0.623.050.06310 / 50yes53

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_tokens is all input, including the cached part;
  • prompt_tokens_details.cached_tokens is how many of those were read from cache;
  • completion_tokens is 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.

ModelInputOutputTotal per requestPer 10,000 requests
gpt-6.1-sol2,000 × 0.27 / 1M = $0.00054500 × 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:

ModelFresh inputCache readOutputTotal
gpt-6.1-sol500 × 0.27 / 1M = $0.00013512,000 × 0.013 / 1M = $0.000156400 × 1.32 / 1M = $0.000528$0.000819
gpt-6-sol$0.000065$0.000156$0.000252$0.000473
gpt-6-luna$0.0000212,000 × 0.038 / 1M = $0.000456$0.000084$0.00056
gpt-6-astra$0.0003112,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.003903
  • gpt-6-sol: $0.001625 + $0.000252 = $0.001877
  • gpt-6-luna: $0.0005 + $0.000084 = $0.000584
  • gpt-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)
ModelInputOutputTotal
gpt-6.1-sol30 × 0.27 = $8.102 × 1.32 = $2.64$10.74
gpt-6-sol30 × 0.13 = $3.902 × 0.63 = $1.26$5.16
gpt-6-luna30 × 0.04 = $1.202 × 0.21 = $0.42$1.62
gpt-6-astra30 × 0.62 = $18.602 × 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:

  1. Take 30–50 real requests.
  2. Run them on the cheapest model that technically fits (context, images).
  3. 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

bash
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.

Get API keyDocumentation

api.zukko.pro · fetch_*

ChatGPT API price: GPT-6.1 Sol, Luna, Astra costs · Zukko