Read the live STT rate from GET /v1/catalog before you price a batch

Do not hard-code $0.01 a minute. GET /v1/catalog lists sume/stt-1.0 in model_pricing with the price and unit, and the docs point there for live rates.

4 min readSume
All posts

Read the live Sume STT rate from GET https://api.sume.com/v1/catalog instead of hard-coding it. The catalog entry for sume/stt-1.0 carries model_pricing rows with a price and a unit; the docs say to confirm live prices there, because the numbers in prose can change. At the time of reading, the STT rate is $0.01 per audio minute, prorated by the second. The catalog is described in Core workflow and the price pointer is in Video inspect, read 2026-10-06.

Which numbers to trust

The catalog is the contract for rates and limits. An estimate you computed last month is a guess. For a spend estimate with your workspace's own terms, use the admission preview, which is read-only and returns the figure for your account.

Where each price fact lives, from the Sume docs (docs.sume.com), read 2026-10-06.
QuestionSource
What does STT cost per unit?GET /v1/catalog, model_pricing
What will this exact request reserve?POST /v1/generation/admission-preview
What did this job cost?GET /v1/usage?job_id=, debited_usd_micros
Can I afford the batch?GET /v1/balance

Read it in code

The script looks for the sume/stt-1.0 row anywhere in the catalog and prints its price and unit. It makes no assumption about how many catalog entries there are.

import os, requests

H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}


def stt_prices():
    r = requests.get("https://api.sume.com/v1/catalog", headers=H, timeout=30)
    r.raise_for_status()
    body = r.json()
    for item in body.get("data", []):
        for row in item.get("model_pricing") or []:
            if row.get("model") == "sume/stt-1.0":
                yield row.get("price"), row.get("unit")


for price, unit in stt_prices():
    print(price, unit)

Put the number in your estimate

Feed the price into the ffprobe folder estimate in place of the constant, and refresh it at the start of each run.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume