Skip to main content
POST
GPT Image 1 and 1.5 Official
gpt-image-1 and gpt-image-1.5 are two generations of image model on the official OpenAI API line, covering text-to-image, editing with up to 15 reference images, and masked inpainting. Their actions, parameters, value sets and limits are identical — switching between them only changes the model field. Every operation uses the unified POST /v1/tasks endpoint.
Neither model accepts resolution, and the aspect ratios are limited to 1:1, 2:3 and 3:2. Use GPT Image 2 Official for resolution tiers, more aspect ratios, or WebP output, and GPT Image 2 Reverse for fixed per-image pricing. The model ID selects the model; QWave never switches automatically.

Quick start

A successful submission returns a task_id. Retrieve the result with GET /v1/tasks/{task_id}, wait inline with Prefer: wait, or configure a webhook.

Request parameters

string
required
Either gpt-image-1 or gpt-image-1.5.
string
default:"generate"
  • generate: create an image from text
  • edit: edit reference images; requires image_urls
string
required
The image description or editing instruction.
string[]
Reference image URLs. Required for edit; up to 15 images.
string
URL of an inpainting mask, available on edit only. Requires image_urls, and must match the first reference image’s dimensions and include an alpha channel.
string
default:"1:1"
One of 1:1, 2:3, or 3:2.
string
default:"auto"
auto, low, medium, or high. auto lets the model pick a tier. Higher quality usually consumes more output tokens.
integer
default:"1"
Number of images to generate. Value: 1. Each request returns one image.
string
default:"auto"
auto, opaque, or transparent. Transparent output requires png.
string
default:"png"
png or jpeg.
integer
JPEG compression quality from 0 to 100. Set output_format to jpeg when using it.
string
default:"auto"
Moderation level: auto or low.
See Submit a task for callback_url, callback_events, Prefer: wait, Idempotency-Key, and the maximum-cost header. Neither model supports resolution or seed. Any other parameter returns 400 and is not billed.

Limits

Pricing

Both models are billed from actual token usage. gpt-image-1 has five dimensions: text input, cached text input, image input, cached image input and image output. gpt-image-1.5 bills text output on top of those five. Rates are in price_config on GET /v1/models and in the console’s Model Market. What a single call actually cost is the cost field on the task response — an integer quota at 500,000 quota = 1 USD, not dollars. Image input includes reference images and masks. Cached rates apply only when the upstream response reports cache usage that can be settled. Otherwise, billing uses ordinary input and image-output usage.

Holds and settlement

Submitting a task places a hold for the estimated usage; the task then settles from actual usage and the difference is released. The estimate is built from:
  • Output — expected output tokens, looked up by aspect ratio and quality
  • Text input — a floor of 64 tokens
  • Reference images — 4,096 tokens each; masks count as image input too
  • Text output — 1,024 tokens, on gpt-image-1.5 only
At a given aspect ratio, high is estimated at roughly 15× the tokens of low. quality is the parameter with the largest effect on cost, and it defaults to auto: a request without quality is treated as auto, and auto uses the same estimate as high. Aspect ratio matters too: at the same quality, 2:3 and 3:2 use more output tokens than 1:1. The estimated output tokens for every aspect-ratio / quality combination are in price_config.image_usage_reservation on GET /v1/models. You are only billed for a successfully generated image. Failed and cancelled tasks, and tasks that return no usable image, are refunded in full. See Task status for the billing fields.

Response

Completed task
Generated images are returned in result.images. Failed and cancelled tasks release the hold in full. If an upstream success response contains no deliverable image, QWave marks the task as failed and refunds it.

Available models

Both models share the same actions, parameters, value sets and limits, so every section on this page applies to both.