Together AI video status values vs Sume job statuses (canceled)
Together's video job has five statuses, including cancelled. Sume has five too, but spells it canceled and adds terminal and result_ready flags. Map them here.

Together AI's video job reports one of queued, in_progress, completed, failed or cancelled; Sume reports queued, processing, completed, failed or canceled. Two names differ, and the Sume status endpoint adds terminal and result_ready booleans so a client can stop polling without a switch statement.
Together's side is from its video generation overview and Sume's from Jobs and results and the API reference, all read on 2026-10-02.
What are the Together AI video statuses?
Together's overview creates a job with client.videos.create() and checks it with client.videos.retrieve(job_id). The listed statuses are queued (awaiting processing), in_progress (actively generating), completed (the video is available), failed, and cancelled (terminated by the user). When status is completed, the video URL is in outputs.video_url.
The page lists prompt, model, width, height, guidance_scale, negative_prompt, steps, fps and seconds as parameters in its example, so the job is sized in pixels and seconds rather than a named quality tier.
What are the Sume job statuses?
Sume lists five job statuses and marks which are terminal. Only queued and processing are non-terminal. processing covers running and being finalized.
The spelling of the cancelled state is the one trap: Sume writes canceled with one l, and a =="cancelled" check ported from Together will never match.
| Meaning | Together AI | Sume | Terminal on Sume |
|---|---|---|---|
| Waiting | queued | queued | No |
| Running | in_progress | processing | No |
| Done, result ready | completed | completed | Yes |
| Terminal failure | failed | failed | Yes |
| Stopped on request | cancelled | canceled | Yes |
How do you stop polling on Sume?
Sume's docs say to poll with exponential backoff and stop on completed, failed or canceled, and not to resubmit the original paid request just because a local process timed out. The status payload carries terminal and result_ready, and next_poll_after_seconds when Sume has a preferred interval. This loop honors all three:
import os, time, requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
BASE = "https://api.sume.com/v1/jobs"
def wait(job_id, deadline_s=1200):
end, delay = time.time() + deadline_s, 5
while time.time() < end:
r = requests.get(f"{BASE}/{job_id}/status", headers=H, timeout=30)
r.raise_for_status()
s = r.json()
if s.get("terminal"):
return s
time.sleep(s.get("next_poll_after_seconds") or delay)
delay = min(delay * 2, 30)
raise TimeoutError(f"still running: {job_id}")What happens when you cancel?
Together's page lists cancelled as a status. Sume's cancel route, POST /v1/jobs/:id/cancel, works only before generation starts. After that it returns 409 job_generation_already_started with details.cancelable: false, and the job runs to completion. Cancelling a job that is already canceled is idempotent.
Billing follows the same line: Sume reserves its USD estimate at submit time, captures it on success, and releases or refunds the reservation on failure or cancellation before capture.
What does a Together port still need?
Change the cancelled spelling, read result_url instead of outputs.video_url, and size jobs with Sume's catalog fields instead of steps and guidance_scale. Sume's docs do not describe those two Together parameters, so do not assume they pass through. See the Sume Videos API comparison for the endpoint-level mapping.
Sources
Related posts
More in Comparisons
- Veo 3.1 1080p 8-second clip cost vs Sume per-second rows
What an 8-second 1080p clip costs on Veo 3.1 Standard, Fast and Lite list prices versus five 1080p rows in the Sume video catalog, dated 2026-10-01.
- Veo 3.1 4K price per second vs Gemini Omni Flash 4K
Veo 3.1 4K costs $0.60 per second on Standard and $0.30 on Fast. Gemini Omni Flash 1.1 on Sume lists 4K at $0.375 per second. Dated 2026-10-01.
- Veo in Google Ads: 3 images, 10 seconds, and the Sume equivalent
Veo in Google Ads takes up to three images and returns videos up to 10 s. Here is the same job on Sume's video router, with its limits, for use outside Google.
- Voxtral TTS 2-minute native limit vs Sume TTS 1200-second cap
Mistral says Voxtral TTS natively generates up to two minutes and the API handles longer. Sume TTS fails audio over 1200 seconds with tts_duration_exceeded.
Written by Sume