v1/videos/models `created` is a catalog date, not a release date
Every model on Sume's /v1/videos/models shows created 1767225600, which is 2026-01-01. It is not when Gemini Omni 1.1 Flash or MiniMax H3 launched.

Do not use created to date a model. Every entry on Sume's /v1/videos/models returns the same value, 1767225600, which is 2026-01-01T00:00:00Z. The source comment states that it is the catalog publication date, not a provider release date.
Why it is fixed
OpenRouter-compatible descriptors carry a created integer, so Sume fills it in. A single constant is honest about what it knows: the date the video catalog was published, not the date any one vendor shipped a model. Adding a model later does not change the value.
Real launch dates come from vendors
MiniMax's H3 post is dated 31 Jul 2026 (read 2026-10-04). Google's Omni 1.1 Flash post is dated 27 Aug 2026 (read 2026-10-04). Both fall after 2026-01-01, yet both show the same created on Sume.
If you need a launch date, cite the vendor page; if you need to know that Sume serves the model, read the catalog.
| Model | Vendor launch date | created on Sume |
|---|---|---|
| MiniMax H3 | 31 Jul 2026 | 1767225600 (2026-01-01) |
| Gemini Omni 1.1 Flash | 27 Aug 2026 | 1767225600 (2026-01-01) |
| Any other video id | See the vendor | 1767225600 (2026-01-01) |
What to read instead
Use supported_durations, supported_resolutions, supported_aspect_ratios and pricing_skus to decide whether a model fits. The script converts created to a date so you can see for yourself that it is constant.
import os
from datetime import datetime, timezone
import requests
resp = requests.get(
"https://api.sume.com/v1/videos/models",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
timeout=30,
)
resp.raise_for_status()
seen = set()
for m in resp.json()["data"]:
when = datetime.fromtimestamp(m["created"], tz=timezone.utc)
seen.add(m["created"])
print(m["id"], when.date())
print("distinct created values:", len(seen))Sources
Related posts
More in Developers
- Voice agent hand-off: ask for a clip, get an async Sume job
A live voice agent should not wait on a video render. Hand the request to an async Sume job, speak the job id back, and deliver the clip by poll or webhook.
- VS Code 1.140 shared MCP config files: what goes in the Sume entry
VS Code 1.140 lets MCP servers live in portable config files shared across Copilot tools. For Sume the entry is one URL, and no key belongs in the file.
- waitForJob throws on a failed poll: resume by job id in TypeScript
Unlike waitForRun, waitForJob has no transient-failure budget: one failed status read after the client's retries throws. Wrap it and resume by job id.
- waitForRun maxTransientFailures: how many bad polls it absorbs
waitForRun absorbs 6 consecutive 429, 5xx or network read failures before it throws. How the streak resets, backoff works, and onTransientError fits in.
Written by Sume