CQTAI
GPT-Image · Image

Synchronous call (GPT-Image)NEW

📌 What is thisGenerate an image synchronously via the OpenAI Images protocol — a single request returns the image (url or b64_json), no polling.
💡 When to useUse when you want the result synchronously (no polling), or already use an OpenAI SDK / images client.
Synchronous callThis synchronous endpoint uses the OpenAI Images protocol and is offered in parallel with the async sora channel (POST /api/cqt/generator/sora); a single request returns the image directly — no taskId, no polling. ⚠ Pricing differs from the async sora channel: here gpt-image-1 / 1.5 / 2 are all 6/img; the async sora channel is 4 / 6 / 12. This page has 3 endpoints: text-to-image POST /v1/images/generations (JSON, below), image-to-image (edit) POST /v1/images/edits, and image variations POST /v1/images/variations (the latter two are multipart — see the sections further down).

Endpoints

UsageMethodPath
Synchronous callPOST/v1/images/generations
🔗 ProtocolOpenAI Images protocol · text-to-image · a single request returns the result directly — no taskId, no polling

Request Parameters

ParamTypeRequiredDescription
modelstringRequiredgpt-image-1 / gpt-image-1.5 / gpt-image-2 (all 6/img)
promptstringRequiredImage description
sizestringOutput size (official pixels, default 1024x1024)
response_formatstringurl (a stable, long-lived link on our CDN — it does not expire shortly after generation) or b64_json (inline image data; gpt-image-1 often returns this)

Request Example

curl -X POST https://api.cqtai.com/v1/images/generations \
  -H 'Authorization: Bearer <API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gpt-image-2",
    "prompt": "a red panda astronaut, studio lighting",
    "size": "1024x1024"
  }'
# -> { "created": 1710000000, "data": [{ "url": "https://.../image.png" }] }

Response Example

{
  "created": 1710000000,
  "data": [
    { "url": "https://.../image.png" }
  ]
}

Image-to-image (edits)

Redraw / edit from one or more reference images plus a text prompt (optional mask for inpainting). Uses multipart/form-data; reference images are uploaded as the image[] file field. Billed at 6 credits/img (gpt-image-1 / 1.5 / 2).

POST/v1/images/editsmultipart/form-data
ParamTypeRequiredDescription
modelstringRequiredgpt-image-1 / gpt-image-1.5 / gpt-image-2 (all 6/img)
image[]fileRequiredReference image file(s) (repeat the image[] field for multiple). png / jpg / webp
promptstringRequiredEdit / redraw description
maskfileOptional. Inpainting mask (transparent area = region to redraw); must match the reference image size
sizestringOutput size (official pixels, default 1024x1024)
response_formatstringurl (our CDN link) or b64_json (inline image data)
curl -X POST https://api.cqtai.com/v1/images/edits \
  -H 'Authorization: Bearer <API_KEY>' \
  -F model=gpt-image-2 \
  -F image[]=@input.png \
  -F prompt='add a red hat on the cat' \
  -F size=1024x1024
# -> { "created": 1710000000, "data": [{ "url": "https://.../edited.png" }] }

Image variations

Generate style-similar variations of a single reference image (no prompt). Uses multipart/form-data; the reference is uploaded as the image[] file field. Billed at 6 credits/img (gpt-image-1 / 1.5 / 2).

POST/v1/images/variationsmultipart/form-data
ParamTypeRequiredDescription
modelstringRequiredgpt-image-1 / gpt-image-1.5 / gpt-image-2 (all 6/img)
image[]fileRequiredReference image file (single). png / jpg / webp
sizestringOutput size (official pixels, default 1024x1024)
response_formatstringurl (our CDN link) or b64_json (inline image data)
curl -X POST https://api.cqtai.com/v1/images/variations \
  -H 'Authorization: Bearer <API_KEY>' \
  -F model=gpt-image-2 \
  -F image[]=@input.png \
  -F size=1024x1024
# -> { "created": 1710000000, "data": [{ "url": "https://.../variation.png" }] }

Billing & Credits

gpt-image-1 / gpt-image-1.5 / gpt-image-2 all 6 credits/img (this sync channel; differs from the async sora channel 4/6/12) (x your user rate). Auto-refunded on failure.