Season polling budget by plan: reads per minute for Free to Scale

Sume rate limits are per key and per plan, reads at 40 times writes. Size a season poller against Free 4,800 to Scale 48,000 reads a minute.

5 min readSume
All posts

Poll a season of Sume runs with a budget in mind: every key has a per-minute request budget across /v1, set by the workspace plan, with reads at forty times the write number. A season of 100 episodes polled every 10 seconds is 600 reads a minute, which is within every plan below, and creating the runs is a handful of writes.

These numbers come from the Sume errors page. Plan prices are on the pricing page, not here.

Budgets by plan

Per-key request budgets (as of 2026-10-03)
PlanWrites per minuteReads per minute
Free1204,800
Pro30012,000
Startup60024,000
Scale1,20048,000
EnterpriseContracted; Scale until provisionedContracted

What counts as which

  • A read is any GET: the receipt, status_url, events_url, result_url, Format and run lists.
  • A write is everything else: creating runs and queues, cancel, redeliver.
  • Reads and writes have separate budgets, so polling cannot starve your own creates.

A poll interval calculator

def reads_per_minute(runs: int, interval_seconds: float) -> float:
    if runs < 1 or interval_seconds <= 0:
        raise ValueError("runs >= 1 and interval_seconds > 0")
    return runs * 60 / interval_seconds

BUDGET = {"free": 4800, "pro": 12000, "startup": 24000, "scale": 48000}
for plan, cap in BUDGET.items():
    need = reads_per_minute(100, 10)
    print(plan, need, "ok" if need <= cap else "over")

Staying under it

  • Poll a bulk queue once instead of every child: GET /v1/format-run-queues/{id} shows counts.
  • Or skip polling: take the terminal webhook for each run.
  • Read ratelimit-remaining and ratelimit-reset on every response; a 429 carries retry-after and error.details.scope of read or write.

What the numbers do not say

The budget is requests, not spend. A generous read budget does not raise a spend cap, and a low write budget does not limit how many dollars a run can use. Spend is set per run by generation_spend_cap_usd.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume