LTX v1 video endpoints end Oct 26: what a Sume job client changes

LTX turns off five v1 video routes on 2026-10-26. Client habits that survive a cutoff like that on Sume: catalog ids, stored job ids, one submit function.

4 min readSume
All posts

If your app calls a video vendor's versioned route, plan for the day that route stops answering. LTX's changelog says the five v1 video endpoints stop working after October 26, 2026 at 11:59 PM UTC, so a hard-coded /v1/text-to-video becomes an outage in 19 days. On Sume the equivalent defence is small: keep one submit function, read model ids from the catalog, and store the job id.

This post is about the client pattern, not about any one model. Which models Sume serves today is whatever GET /v1/videos/models returns for your key; check it instead of trusting a blog post (including this one). Sume's own docs also carry a retirement notice of this kind: Video 1.0 is a compatibility alias that Sume will retire, and new integrations should call POST /v1/videos.

What LTX actually announced

The LTX API changelog (read 2026-10-07) lists a staged move from synchronous v1 routes to async v2 routes. The dates below are copied from that page; nothing here is inferred.

The practical lesson is the gap between announcement and cutoff: the deprecation notice went out in September and the cutoff lands in late October. Teams that pin a route string in ten places need ten edits; teams with one function need one.

LTX v1 to v2 video API timeline (read 2026-10-07)
DateChange
2026-04-23/v2/video-to-video-hdr ships with async support
2026-05-03Async /v2/text-to-video, /v2/image-to-video, /v2/audio-to-video, /v2/retake, /v2/extend
2026-09-07Deprecation of the five matching v1 routes announced
2026-10-26 23:59 UTCThose v1 routes stop working; /v1/upload stays

What a Sume client keeps stable

Sume's job-first contract has the same shape that LTX moved to: submit, receive a job id, poll or take a webhook, then read the result. The jobs docs say to store the job id and status_url, because a process restart should not lose paid work.

Sume also separates canonical paths from compatibility aliases. The API overview recommends the canonical /v1/{family}-1.0/... and /v1/videos paths for new work, and says the /v1/models/sume/.../runs aliases keep working. Treat any alias as a path you will eventually migrate off.

  • Keep the route string, the model id and the request mapping in one module.
  • Never read a model id from a blog post at runtime; read it from GET /v1/videos/models and fail the deploy if it is missing.
  • Store job.id and status_url before you do anything else with the submit response.
  • Pin the live OpenAPI document in CI and diff it on a schedule.

A deploy-time catalog check

This script exits non-zero when a model id you depend on is no longer listed. Run it in CI before every deploy. The two ids are examples from the video docs; replace them with yours.

import json, os, urllib.request


def main():
    req = urllib.request.Request(
        "https://api.sume.com/v1/videos/models",
        headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"]},
    )
    with urllib.request.urlopen(req, timeout=30) as resp:
        listed = {m["id"] for m in json.load(resp)["data"]}
    wanted = ["seedance-2.5", "wan-3.0"]
    missing = [m for m in wanted if m not in listed]
    if missing:
        raise SystemExit(f"model ids not in catalog: {missing}")
    print("catalog ok:", wanted)


main()

What Sume does not do for you

Sume does not promise that a model id lives forever. The catalog is the source of truth and Video 1.0 is an example of an alias with a retirement notice. Your protection is a contract test plus the habit of reading the catalog, as in the OpenAPI diff in CI post. Sume also does not mirror LTX's route names: the request fields come from the video docs, not from LTX's.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume