GPT Image 2.5 catalog price of $0.0527: it is high at 1024x1024 only

Sume's catalog price for GPT Image 2.5 is high quality at 1024x1024, output only: $0.0527. Low is far cheaper and max about four times dearer.

4 min readSume
All posts

The per-image price that Sume's catalog shows for GPT Image 2.5 is $0.0527, which is one case only: high quality at 1024x1024, output tokens, rounded to $0.0001. Your bill depends on the quality and size you send, so the real range at 1024x1024 is $0.0059 at low to $0.2107 at max, before Sume's 1.25 factor.

The catalog says so itself: its constraint text calls the list "high/1024 output only" and notes that admission includes estimated input tokens.

What the catalog number leaves out

GPT Image 2.5 at 1024x1024, provider list, output only (read 2026-10-06)
QualityProvider listSume (list x 1.25)
low$0.0059$0.0073
medium$0.0132$0.0165
high$0.0527$0.0658
xhigh$0.0937$0.1171
max$0.2107$0.2634

Use the catalog for what it is

GET /v1/images/models/{id}/endpoints gives a pricing line per billable unit, and for flat-priced models like Nano Banana that line is the price. For GPT Image 2.5 it is a reference point.

Calculate the real price from the quality and size you plan to use, as in the Python calculator post, and confirm with usage.cost on a first run.

Why not show a range

A single catalog number is easy to sort and compare, and it matches how other rows work. The tradeoff is that it understates a max-quality call by about four times and overstates a low-quality one by about nine.

Check it on your own account

Do not budget from a blog table alone. GET /v1/images/models lists every model with its descriptors, and GET /v1/images/models/{id}/endpoints shows the pricing line for one model. Then run one small request and read usage.cost on the response, which is the billed amount in USD; the token counts in usage are reported as 0 on this route.

Run the test at the quality and size you plan to ship, because both move the price. A single test at low quality costs under a cent for most sizes here, so it is a cheap way to confirm your assumptions before a batch.

Sync, async and failures

The /v1/images route waits up to 30 seconds for the image. If the job finishes in that window you get the result directly; otherwise you get a 202 and an async job to poll. Write your client to branch on the status code, since larger sizes and higher quality are the likely cases for a 202.

Requests are strict. A parameter the chosen model does not list returns 400 unsupported_parameter, stream returns a 400, and provider.only or provider.order accept only sume. Treat a 400 as a bug in the request, not a transient error, and do not retry it unchanged.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume