Sozdai LogoDocs
Docs/Image/Text to Image

GPT Image 2· Text to Image

Text to Image
POSThttps://api.sozdai.ai/v1/media/generations

#Submit a task

Media generation is asynchronous: you get a task id immediately, without waiting.

bash
curl https://api.sozdai.ai/v1/media/generations \
  -H "Authorization: Bearer $CORRY_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "model": "gpt-image-2", "prompt": "a cute robot mascot, flat vector logo" }'
# → { "id": "cmus7q0x9000108l3f5g2abcd", "status": "queued" }

#Request parameters

ParameterTypeRequiredDefaultDescription
promptstringYes
Text prompt describing the image to generate (max 20000 chars).
aspect_ratiostringNoauto
Aspect ratio of the output image. Note: 5:4 and 4:5 only support 1K.
Options: auto, 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 2:1, 1:2, 3:1, 1:3, 21:9, 9:21, 5:4, 4:5
resolutionstringNo1K
Output image resolution; higher resolution costs proportionally more (2K ≈ 2×, 4K ≈ 4× of 1K) — see the pricing page. Note: 1:1 cannot be upscaled to 4K; 'auto' aspect ratio only yields 1K.
Options: 1K, 2K, 4K
callback_urlstringNo
Optional public http(s) URL. We POST the task result here the moment generation finishes (success or failure).

#Poll for the result

Generation runs asynchronously — the submit call returns immediately with a task id. Poll this endpoint with that id every few seconds until status becomes succeeded (result ready) or a terminal error (failed / timeout).

GEThttps://api.sozdai.ai/v1/media/generations/{id}
bash
# take the id from the submit response, then poll every ~3s
curl https://api.sozdai.ai/v1/media/generations/cmus7q0x9000108l3f5g2abcd \
  -H "Authorization: Bearer $CORRY_KEY"
# repeat until "status" is "succeeded" (or "failed" / "timeout")

#Response example

On submit

json
{
  "id": "cmus7q0x9000108l3f5g2abcd",
  "status": "queued",
  "type": "image",
  "model": "gpt-image-2"
}

On success (after polling)

json
{
  "id": "cmus7q0x9000108l3f5g2abcd",
  "status": "succeeded",
  "type": "image",
  "model": "gpt-image-2",
  "result": { "urls": ["https://cdn.sozdai.ai/image/1782537315223-b49c0c1b771f.png"] },
  "cost": "0.0500",
  "currency": "USD"
}

Response fields

FieldTypeDescription
statusstringTask status: queued / submitted / succeeded / failed / timeout.
typestringMedia type: image / video / music.
modelstringThe model you requested.
resultobjectPresent on success. result.urls is an array of permanent file URLs.
errorstringError message, present when the task failed.
coststringAmount charged for this task — a USD string (e.g. "0.1200"). See the currency field.
currencystringCurrency of cost — always "USD".