Image generation API streaming: partial images on Sume
Sume's image API does not stream partial images yet: stream true returns 400 streaming_not_supported. Submit async, read events, or use a webhook.

No: Sume's image API does not stream partial images today. Every catalog row reports supports_streaming: false, and a request with stream: true is refused with 400 streaming_not_supported. The field exists in the schema so clients can adopt streaming later without a code change.
This comes from the Image API and Jobs and results docs pages, read 2026-09-29.
What do I use instead of a stream?
Pick by what you need to know:
| You want | Do this |
|---|---|
| The image, and you can wait a bit | Default sync call: it blocks up to 30 seconds and returns 200 with the image. |
| Progress while it runs | Submit with mode: "async" and read GET /v1/jobs/:id/events. |
| To be told when it ends | Send mode: "webhook" with a webhook_url. |
curl -X POST https://api.sume.com/v1/images \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sume/auto",
"prompt": "a red panda astronaut floating in space",
"mode": "async"
}'
curl https://api.sume.com/v1/jobs/job_123/events \
-H "Authorization: Bearer $SUME_API_KEY"Does mode subscribe give me progress?
No. On the image route mode: "subscribe" is an alias of sync: one bounded wait of at most 30 seconds, not a progress stream. The docs are explicit that there is no SSE or WebSocket transport on the Developer API today, and that GET /v1/jobs/:id/events is a pull snapshot, not a stream. Poll it.
Why did my request come back 202 instead of an image?
A sync image request that is still running when the 30-second budget ends returns 202 with a job envelope instead of the image body. Check the status code, not the body shape: 200 is the image response, 202 is the job envelope. Slow configurations such as 4K, high quality, and large n are the ones most likely to degrade to 202. Then poll GET /v1/jobs/{id}/status and fetch GET /v1/jobs/{id}/result. GPT Image long request: the 202 job walks through it.
What does a webhook deliver?
Terminal events only: job.completed, job.failed, and job.canceled. There are no progress or partial-image callbacks, so keep status polling available as a backup.
How do I read the finished image?
A 200 sync response carries data[].url, a Sume-hosted, signed URL rather than inline base64, plus a usage.cost in USD. Token counts are always 0 in v1 because image models are metered per image. Copy the files you keep instead of treating the signed URL as permanent. A 202 job is read from the standard job result endpoint, which returns the standard job result shape, not the image body.
Will streaming ship?
The docs say "until native SSE ships" and describe the field as accepted in the schema but rejected at runtime. They give no date, so build on async or webhook today and keep the stream field out of your requests.
Sources
Related posts
More in Developers
- image_not_fetchable error: what it means and how to fix it
image_not_fetchable means Sume could not fetch or mirror your input image. Check it is a public HTTPS image URL, then retry or send the request id to support.
- Instagram API is_ai_generated: label an AI Reel
Set is_ai_generated=true when you create the media container and Instagram's API records your AI self-disclosure. Carousels take it on the parent only.
- Instagram trial Reels API: trial_params and graduation
Publish an Instagram trial Reel by API with trial_params.graduation_strategy set to MANUAL or SS_PERFORMANCE. Trial Reels reach non-followers only.
- Is my data safe with AI? Four checks before you share it
No AI tool can promise perfect security. Check who processes your inputs, who on your team sees them, who can open outputs, and how keys are kept.
Written by Sume