Get an alert when a new video model id appears: daily catalog diff

Kling 4.0 is due in October. A small Python script diffs GET /v1/videos/models against yesterday's ids and prints what is new or gone, so you test on day one.

5 min readSume
All posts

The simplest alert for a new video model on Sume is a daily diff of the ids returned by GET /v1/videos/models. Save the sorted id list, run the script on a schedule, and print any id that is new or missing. A new id means your key can call a new model; no id means it cannot yet, whatever a launch page says.

This is timely because Kling 4.0 is in early access since 2026-09-28 with a full launch due in October 2026, per Kling's announcement (read 2026-10-02). That page does not say when any third-party API will list it, so the catalog is the signal to watch. Catalog behavior is from Sume's video docs.

What does the script do?

It requests the catalog, compares the id set with a JSON file from the last run, prints additions and removals, then overwrites the file. The first run reports every id as new, which is fine: it creates the baseline.

import json
import os
from pathlib import Path

import requests

STATE = Path("video-model-ids.json")
r = requests.get(
    "https://api.sume.com/v1/videos/models",
    headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
    timeout=30,
)
r.raise_for_status()
now = {m["id"] for m in r.json()["data"]}
before = set(json.loads(STATE.read_text())) if STATE.exists() else set()

for model_id in sorted(now - before):
    print("NEW", model_id)
for model_id in sorted(before - now):
    print("GONE", model_id)
STATE.write_text(json.dumps(sorted(now)))

What should happen when a new id shows up?

Do not switch production on a new id alone. Read the new entry's supported_durations, supported_resolutions and pricing_skus, run one short test clip with your own prompt, and compare the cost to the model you use today. Sume bills provider list times 1.25, reserved on submit.

What to read from a new catalog entry, read 2026-10-02
FieldWhy it matters
supported_durationsWhether your shot lengths are allowed
supported_resolutionsWhether your delivery size is available
supported_aspect_ratiosWhether vertical or ultra-wide works
pricing_skusWhat a clip will cost

Where should I run it?

Any scheduler works: cron, a CI job or a serverless timer. Keep the state file in the same place between runs, and send the output to a channel your team reads. A GONE line matters as much as a NEW one, because a removed id will fail requests that still name it.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume