Docs/Image/Image to Image
GPT Image 2· Image to Image
Image to Image
POST
https://api.sozdai.ai/v1/media/generationsPricing Model
1K 4,25 ₽ · 2K 8,5 ₽ · 4K 17 ₽ per image. Billed only on success.
Execution Flow
Asynchronous submission model. Submitting requests queues background workers.
#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-edit", "prompt": "turn this product photo into a premium poster", "input_urls": ["https://example.com/photo.png"] }'
# → { "id": "cmus7q0x9000108l3f5g2abcd", "status": "queued" }#Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | Yes | — | Text prompt describing the image to generate (max 20000 chars). |
input_urls | string[] | Yes | — | Array of source image URLs to edit (max 16). |
aspect_ratio | string | No | auto | 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 |
resolution | string | No | 1K | 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_url | string | No | — | 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).
GET
https://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-edit"
}On success (after polling)
json
{
"id": "cmus7q0x9000108l3f5g2abcd",
"status": "succeeded",
"type": "image",
"model": "gpt-image-2-edit",
"result": { "urls": ["https://cdn.sozdai.ai/image/1782537315223-b49c0c1b771f.png"] },
"cost": "0.0500",
"currency": "USD"
}Response fields
| Field | Type | Description |
|---|---|---|
status | string | Task status: queued / submitted / succeeded / failed / timeout. |
type | string | Media type: image / video / music. |
model | string | The model you requested. |
result | object | Present on success. result.urls is an array of permanent file URLs. |
error | string | Error message, present when the task failed. |
cost | string | Amount charged for this task — a USD string (e.g. "0.1200"). See the currency field. |
currency | string | Currency of cost — always "USD". |