Export video model prices weekly: a catalog-to-CSV script
Prices and limits for AI video models change. A short script reads Sume's video catalog into a CSV so you can date each row and track changes.

To track AI video prices over time, export Sume's catalog on a schedule: GET /v1/videos/models returns each model's pricing_skus, resolutions, ratios, and durations, and a ten-line script writes them to a CSV you date and keep. Third-party tables go stale, so treat the date as part of the data. Hedra's best-models page, read 2026-10-02, is one such snapshot, listing per-minute prices from $6.00 to $20.16 for the models it covers.
The endpoint and fields are from Sume's Video generation docs.
What does the script write?
One row per model: id, supported resolutions, and the raw pricing_skus value. It does not convert units, because the docs example shows a per-token SKU for seedance-2, and a clip price needs a token count that varies. Keep the raw field and convert in the sheet.
import csv
import os
import requests
URL = "https://api.sume.com/v1/videos/models"
HEAD = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
models = requests.get(URL, headers=HEAD, timeout=30).json()["data"]
with open("video-prices.csv", "w", newline="") as f:
w = csv.writer(f)
w.writerow(["model", "resolutions", "pricing_skus"])
for m in models:
w.writerow([m["id"], " ".join(m.get("supported_resolutions") or []),
m.get("pricing_skus")])
print(len(models), "models written")How do I make it a weekly record?
Name the file with the date, such as video-prices-2026-10-02.csv, and keep each one. Diff two files to see which models changed. Run it from a scheduler you already use.
| Column | Source field |
|---|---|
| model | id |
| resolutions | supported_resolutions |
| pricing_skus | pricing_skus |
| date | The date you ran it |
What should I not do with the numbers?
Do not compare a raw SKU in one row with a per-minute price in another. Normalizing per-second and per-token prices shows the conversion.
Does this replace a cost preview?
No. Before a big batch, use a dry_run on the paid MCP tool or a short test clip and read the receipt. Budget a 20-ad batch lists the controls.
Add a note column for changes you see, such as a new model or a removed resolution. Over a few weeks the sheet becomes a record of how the catalog moves, which is handy when a client asks why a budget changed. Keep the script in version control with the sheets, and use a key with no write scope for it.
Sources
Related posts
More in Developers
- Facebook Reels API: start, upload, finish and the video_state values
Publishing a Facebook Reel takes three calls: upload_phase start, a file upload to rupload, then finish with video_state PUBLISHED, SCHEDULED or DRAFT.
- Fan out 40 image variants without hitting queue_full
Sume accepts jobs as queued up to your plan's capacity, then returns 429 queue_full. Here are the plan numbers and a wave loop that reads generation_limits.
- Find near-duplicate generated ad images with an average hash in Python
Four images from one prompt can be almost the same picture. A 64-bit average hash in Pillow flags the near-duplicates so you review each look once.
- Fit narration to a 30-second slot: tune TTS speed from measured length
Measure a TTS take with timestamps.words, compute the speed that hits 30 seconds, and know when to cut words instead. Python, within Sume's 0.6 to 1.5 range.
Written by Sume