Replicate SSE stream URL vs Sume: no event stream, so poll

Replicate returns a urls.stream endpoint with output, error and done events. Sume has no SSE or WebSocket on the Developer API. Poll status or take a webhook.

5 min readSume
All posts

Does Sume have a stream URL like Replicate's?

No. Sume's Developer API has no SSE or WebSocket transport today, and GET /v1/jobs/:id/events is a pull snapshot, not a stream. For media jobs you poll status or receive a signed terminal webhook. Replicate offers a stream endpoint for models that support it, the page highlights language models.

How does Replicate streaming work?

Per Replicate's streaming page, you create a prediction with the stream option, receive a urls.stream URL on stream.replicate.com, and connect to it with an EventSource client. Three event types arrive: output (plain text with new output), error (JSON) and done (JSON, for success, cancellation or error). API predictions expire after an hour, and the event stream endpoint has a 30 second timeout that sends an empty :408 event if exceeded. Streaming output is supported by lots of language models, according to the page.

Streaming makes sense there because text arrives token by token. A rendered video or a generated image has no useful partial output.

What are Sume's three ways to learn an outcome?

In order of preference for long jobs: async plus polling, webhook for terminal delivery, and a bounded sync wait. mode: "subscribe" is an alias of sync: one HTTP wait capped at 30 seconds, not a subscription. The SDK's subscribeFormatRun() creates a run and polls it client-side. Job webhooks deliver exactly three events (job.completed, job.failed, job.canceled), with no progress deliveries.

The 30 second figure is a wait budget, not a duration. The response is still 2xx and carries the job id when it runs out, and you continue with GET status_url, never by resubmitting the paid job.

Ways to follow a job, read 2026-10-02
MethodReplicateSume
Push stream (SSE)urls.stream, output/error/doneNone
Pollingurls.getstatus_url with next_poll_after_seconds
WebhookCreated, updated and finished statesTerminal events only
Bounded waitPrefer: waitsync, max 30 seconds

How do I fake progress in a UI on Sume?

Do it honestly from the states you have: show "waiting for a slot" on queued, "rendering" on processing, and a spinner with an elapsed timer. Poll with backoff rather than a tight loop. If you want an event to drive a server-side workflow, use the webhook and keep polling as a backup for deliveries that never arrive.

curl -X POST https://api.sume.com/v1/image-1.0/generate \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: ui-progress-demo-001" \
  -d '{"prompt":"Matte black bottle on marble","mode":"async"}'
# then poll status_url from the response until "terminal": true

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume