Seedream image URL expired after 24 hours: use the Sume copy

BytePlus keeps Seedream image URLs for 24 hours, then clears them. On Sume, read data[].url or the job result URL and store that, not a provider link.

4 min readSume
All posts

A Seedream image URL from BytePlus stops working after 24 hours because BytePlus clears it: its Seedream 5.0 overview says generated image URLs are retained for 24 hours, then cleared, and tells you to download results you want to keep. If you call Seedream through Sume, you read a Sume-hosted URL from data[].url instead, and you should store that.

Vendor facts are from BytePlus, read 2026-09-30. Sume facts are from the Image API docs and Jobs and results.

What does BytePlus say about the 24 hours?

Under operational notes, the overview states: "Generated image URLs are retained for 24 hours, then cleared." The same notes say rate limiting is per minute and recommend keeping the SDK current. Nothing on the page describes a way to extend the window, so treat the link as temporary.

Which URL does Sume give me for a Seedream image?

POST /v1/images returns data[].url, described as Sume-hosted and signed, rather than inline base64. The docs say Sume already mirrors generated media. The catalog lists Seedream ids such as seedream-5-lite; the public model value in the docs' request examples looks like bytedance-seed/seedream-4.5. The docs do not state how long a Sume URL stays valid, so do not assume it is permanent either.

If the call takes longer than the 30-second wait it returns 202 with a job envelope. Then poll GET /v1/jobs/{id}/status and read GET /v1/jobs/{id}/result, and use the Sume media URLs from that result.

Where a Seedream result link comes from, per the BytePlus page and Sume docs, read 2026-09-30
QuestionBytePlus directSume `/v1/images`
Link in the responseGenerated image URLdata[].url, Sume-hosted, signed
Documented lifetime24 hours, then clearedNot documented
Long callsNot covered by this page202 job, then GET /v1/jobs/{id}/result

What should I store?

Download the bytes as soon as the job completes and write them to your own storage, then keep your storage key. Keep the Sume job id too, so you can re-read the result. Do not store a provider link; the Sume docs say raw provider URLs are not public API outputs. For the same pattern on another model, see FLUX image URL expires after 10 minutes.

What if my old link already returned an error?

A cleared provider URL cannot be revived from your side. If you still have the Sume job id, read the job result again and use the URL it returns; if you have neither the file nor the id, you need to generate again.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume