Argil video status IDLE to DONE vs Sume queued to completed

Argil videos move through IDLE, GENERATING_AUDIO, GENERATING_VIDEO, DONE or FAILED; Sume jobs go queued, processing, completed. How to map polling code.

5 min readSume
All posts

Argil reports a video as IDLE, GENERATING_AUDIO, GENERATING_VIDEO, DONE or FAILED. Sume reports a job as queued, processing, completed, failed or canceled. Argil splits generation into audio and video stages in the status; Sume keeps one processing state and shows detail in the events timeline.

Argil's values are from its Create a new Video page. Sume's are from Jobs and results and Errors and rate limits. All read on 2026-10-02.

What do the Argil statuses tell you?

The response status enum has five values. The two GENERATING_ values name which stage is running, which is useful for a progress label. Argil's guide says lipsync typically takes 5-15 minutes, with faster processing on pro plans, so a client should expect to wait minutes, not seconds.

The create call also takes an optional model of ARGIL_V1 or ARGIL_ATOM. I could not confirm from the pages I read what separates the two, so I do not describe a difference.

What do the Sume statuses tell you?

queued is a normal accepted state: workspace concurrency limits apply when workers move a job into processing, not when the API accepts it. completed, failed and canceled are terminal. GET /v1/jobs/:id/events lists a public timeline of job.created, job.queued, job.started, generation.submitted, job.completed, job.failed, job.canceled and webhook.delivery.

Cancel works only before generation starts; after that the API returns 409 job_generation_already_started.

Mapping table

Use this when you translate a polling loop from one API to the other.

Status mapping, read 2026-10-02
ArgilSumeTerminal
IDLEqueuedNo
GENERATING_AUDIO / GENERATING_VIDEOprocessingNo
DONEcompletedYes
FAILEDfailedYes
No equivalent on the page readcanceledYes

What to change in the polling loop

Poll GET /v1/jobs/:id/status with exponential backoff and stop on a terminal status. Do not resubmit the paid request because a local timeout fired; the Sume docs say so explicitly, and a resubmit risks a second paid job. Then fetch GET /v1/jobs/:id/result for the artifact URLs. If the stage label matters to your UI, show a single running state or read the events instead of expecting separate audio and video stages.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume