GPT Image 2 / 2.5 Image Generation API
¶ 1. Obtain an API Key
Open the Ace Data Cloud application list, enter an available application, and copy the API Key.

¶ 2. Send Your First Request
curl https://api.acedata.cloud/openai/images/generations \
-H "Authorization: Bearer 你的 API Key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Minimal editorial product illustration: one plain white ceramic coffee mug centered on a solid cobalt blue tabletop, pale cream background, soft shadow, clean geometric shapes, no text, no logo, portrait composition",
"size": "1024x1536"
}'
The image in a successful response is located at data[].url. Below is the 1024×1536 result obtained through an actual request via Ace Data Cloud on September 8, 2026 (task d56455e2-e7f7-4bcd-b935-475b0a1e0948, trace eb938601-8192-407f-b539-1e0554b697ec):

¶ 3. Common Parameters
| Field | Description |
|---|---|
model |
gpt-image-2 (recommended by default), gpt-image-2.5-flare (faster), or gpt-image-2.5-sunburst (higher fidelity and control); all three can use the corresponding :official variant, while gpt-image-2 also supports :reverse |
prompt |
Image description, up to 32,000 characters |
size |
auto or WIDTHxHEIGHT; width and height must be multiples of 16, the longer side must not exceed 3840, total pixels must be 655,360–8,294,400, and the aspect ratio must not exceed 3:1 |
n |
1–10; only 1 is supported when response_format=b64_json |
quality |
low, medium, high, or auto; support and billing methods vary across different routes |
response_format |
url or b64_json |
callback_url |
Optional; sends results to this address after long-running tasks are completed |
Common sizes:
| Ratio | 1K | 2K | 4K |
|---|---|---|---|
| 1:1 | 1024x1024 |
2048x2048 |
2880x2880 |
| 4:3 | 1536x1024 |
2048x1536 |
3264x2448 |
| 3:4 | 1024x1536 |
1536x2048 |
2448x3264 |
| 16:9 | 1792x1024 |
2048x1152 |
3840x2160 |
| 9:16 | 1024x1792 |
1152x2048 |
2160x3840 |
size: "auto" selects the canvas based on the aspect ratio, pixel, and layout intent in the prompt; when exact pixels are needed, enter the size directly.
¶ 4. Multiple Image Generation
curl https://api.acedata.cloud/openai/images/generations \
-H "Authorization: Bearer 你的 API Key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A small fox reading under a glowing mushroom, watercolor illustration",
"size": "1536x1024",
"n": 2
}'
gpt-image-2, gpt-image-2.5-flare, gpt-image-2.5-sunburst, and gpt-image-2:reverse are billed by the number of successfully generated images; gpt-image-2:official, gpt-image-2.5-flare:official, and gpt-image-2.5-sunburst:official are billed based on the actual text input and image output Tokens in the response. The prices on the page are estimates before the request; the final amount is subject to usage records.
¶ 5. Asynchronous Callback
After adding callback_url to the request body, the API first returns {"task_id": "..."} and POSTs the final result to that URL upon completion; synchronous requests still return created and data:
{
"model": "gpt-image-2",
"prompt": "A product poster with clear typography",
"size": "1024x1024",
"callback_url": "https://example.com/webhooks/images"
}
The callback receiver should use task_id for deduplication and verify the request source and data format.
¶ 6. Troubleshooting
| Status | Check |
|---|---|
| 400 | The combination of model, prompt, size format, n, and response_format |
| 401 | Whether the API Key is complete and whether the Header is Authorization: Bearer ... |
| 429 | Requests are too frequent; retry later |
| 504 | Synchronous generation timed out; use callback_url |
Error responses include error.code, error.message, and trace_id. When reporting an issue, provide the trace_id; do not provide the API Key.
For complete fields and real-time enumerations, refer to the OpenAI Images Generations API page. For image editing, see GPT Image 2 / 2.5 Image Editing.
