Hedra job status progress and estimated_completion_at vs Sume events

Hedra's v3 status endpoint returns progress and estimated_completion_at; Sume's job status gives queued, processing, completed plus an events timeline.

5 min readSume
All posts

Hedra's v3 API gives you a status call that returns progress and estimated_completion_at, so you can show a progress bar. Sume's GET /v1/jobs/:id/status returns a status of queued, processing, completed, failed or canceled, and its docs do not describe a percentage or an ETA field. For history you read GET /v1/jobs/:id/events.

Hedra's facts are from its API Quickstart Guide and its developer-platform blog post Hedra for Developers. Sume's are from Jobs and results. All read on 2026-10-02.

How does Hedra's job lifecycle work?

The quickstart lays out three steps: submit with POST /v3/models/{id} and capture job_id from the 202 response, poll GET /v3/jobs/{job_id}/status, then download from GET /v3/jobs/{job_id} using outputs[].url. Authentication uses an Authorization: Key <key_id>:<secret> header. The status response includes progress and estimated_completion_at for user-facing updates, and the quickstart shows COMPLETED and FAILED among the states.

Hedra's August 4 developer post also mentions live Server-Sent Events progress and dynamic ETAs. The quickstart only demonstrates polling, so check which one you can use before designing around SSE.

How does Sume report progress?

queued means Sume accepted the job and it is waiting; workspace concurrency limits apply when workers move it to processing. The events endpoint lists job.created, job.queued, job.started, generation.submitted, job.completed, job.failed, job.canceled and webhook.delivery. That is a timeline of milestones, not a progress percentage.

For a user-facing wait on an avatar clip, show an indeterminate state while processing and use a webhook or a poll with exponential backoff to react to the terminal status.

Comparison

The key practical difference is whether you can draw a progress bar.

Job status surfaces, read 2026-10-02
NeedHedraSume
SubmitPOST /v3/models/{id}, returns 202 with job_idPOST /v1/avatar-1.0/talking-video and other model routes, returns a job
StatusGET /v3/jobs/{job_id}/statusGET /v1/jobs/:id/status
Progress / ETAprogress, estimated_completion_atNot documented
ResultGET /v3/jobs/{job_id}, outputs[].urlGET /v1/jobs/:id/result, media.sume.com artifacts
HistoryNot on the quickstartGET /v1/jobs/:id/events
Push deliverySigned webhooks per the developer postSigned terminal webhooks, up to 10 attempts

What should I build around the gap?

Estimate the wait yourself from past jobs of the same quality tier, or just show elapsed time. Do not poll faster to fake progress: Sume's guidance is exponential backoff and stopping on a terminal status, and the 429 rate_limited response carries retry-after. If you need to know where a job is stuck, read the events instead of re-submitting, since a repeat paid request bills again.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume