GPT Image 2.5 complex prompts take up to 2 minutes: use a webhook

OpenAI says complex GPT Image prompts may take up to 2 minutes. Sume waits 30 seconds, then returns a job. Send mode webhook and read the result from the job.

5 min readSume
All posts

OpenAI's image guide says complex GPT Image prompts may take up to 2 minutes to process. Sume's POST /v1/images blocks for at most 30 seconds, so a slow request returns 202 with a job instead of an image. For prompts you expect to be slow, send mode: "webhook" with a public HTTPS webhook_url, store the job id, and read the result when the job finishes.

Two clocks

The OpenAI image generation guide says complex prompts may take up to 2 minutes. Sume's Image API docs say a blocking request waits up to 30 seconds and returns 200 with the image if it finishes, or 202 with the standard job envelope if it does not. They also name 4K, high quality and large n as the settings most likely to degrade to 202.

Timing facts (OpenAI read 2026-10-02, Sume docs)
SourceStatement
OpenAI image guideComplex prompts may take up to 2 minutes to process.
Sume Image APIBlocking wait up to 30 seconds by default.
Sume Image APIOver budget, or mode async or webhook: 202 with a job envelope.
Sume Image APIRead the images from the standard job result endpoint.

Submit with a webhook

The webhook URL must be public HTTPS. Sume rejects localhost and private-network URLs. The request returns right away with a job id, a status_url and a result_url.

curl -X POST "https://api.sume.com/v1/images" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-image-2.5",
    "quality": "max",
    "image_size": "2048x2048",
    "mode": "webhook",
    "webhook_url": "https://example.com/hooks/sume",
    "prompt": "A dense city map poster with 12 labelled districts, each label quoted and used once. No other text."
  }'

Handle the terminal event

When the job reaches a terminal state Sume POSTs to your URL. If webhook signing is configured, the deliveries carry x-sume-webhook-timestamp and x-sume-webhook-signature headers, and the Webhooks docs give the verification steps and the dashboard place to read the signing secret. Verify the signature before you trust the body, and never accept a payload when your secret is empty.

The terminal event tells you the job finished. Fetch the images from GET /v1/jobs/{id}/result as covered in Jobs and results.

Do not resubmit on a timeout

If your own HTTP client times out, do not send the same paid request again. Sume's docs say the job is durable: store the id, poll status with backoff, and stop on completed, failed or canceled. A resubmit is a second billable image.

Billing is all-or-nothing: a completed generation is billed in full, a failed or cancelled one is not. See how long a GPT Image 2.5 job takes for how to time your own jobs.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume