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.

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.
| Need | Hedra | Sume |
|---|---|---|
| Submit | POST /v3/models/{id}, returns 202 with job_id | POST /v1/avatar-1.0/talking-video and other model routes, returns a job |
| Status | GET /v3/jobs/{job_id}/status | GET /v1/jobs/:id/status |
| Progress / ETA | progress, estimated_completion_at | Not documented |
| Result | GET /v3/jobs/{job_id}, outputs[].url | GET /v1/jobs/:id/result, media.sume.com artifacts |
| History | Not on the quickstart | GET /v1/jobs/:id/events |
| Push delivery | Signed webhooks per the developer post | Signed 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
- Hedra pricing plans in credits vs Sume per-second avatar video
Hedra sells credits: $20, $50 or $100 a month plus a $75 Teams plan, with no per-minute avatar cost on the page. Sume publishes a rate per second instead.
- HeyGen break tag: 5-second pause max, and a longer pause on Sume
HeyGen's professional voice clones accept a break tag with a 5-second cap per pause. On Sume an avatar video pause is a silence scene, up to 60 seconds.
- HeyGen free plan limits vs paying per second on Sume
HeyGen's free plan lists 3 videos a month of up to 1 minute. Here is what that means for a test project, and how Sume's per-second billing compares.
- HeyGen photo avatar renders without a reference look (Aug 2026)
HeyGen's August 2026 change lets an Avatar V photo avatar render from the photo alone; motion_prompt still needs a reference look. Sume's photo path, compared.
Written by Sume