Read your Sume plan from ratelimit-limit on a GET: 4,800 to 48,000

A GET /v1/balance returns ratelimit-limit. 4800, 12000, 24000 or 48000 reads a minute maps to Free, Pro, Startup or Scale, and a full Wan 720p queue reserve.

4 min readSume
All posts

Call GET /v1/balance with curl -i and read ratelimit-limit: 4800 reads a minute is Free, 12000 is Pro, 24000 is Startup and 48000 is Scale. The read budget is 40 times the write budget, so the same number tells you the writes (120 to 1200 a minute) and the generation queue behind them.

One header, the whole plan

A read is free to repeat and does not start a paid job, so use it for the check instead of a POST. The headers on every response are ratelimit-limit, ratelimit-remaining, ratelimit-reset and, on a 429, retry-after. Enterprise uses the Scale row until limits are provisioned.

The last column is what a full queue of 30 s Wan 3.0 clips at 720p ($3.75 each) reserves: accepted jobs times $3.75.

Plan from the read budget, with limits and a full-queue reserve (read 2026-10-09)
PlanReads per minWrites per minAccepted jobsFull-queue reserve
Free48001206$22.50
Pro1200030024$90.00
Startup2400060048$180.00
Scale480001200120$450.00

Read it

Do not hardcode the table in production; use it to pick sensible defaults and trust the live header.

import os
import requests

PLAN = {4800: "Free", 12000: "Pro", 24000: "Startup", 48000: "Scale"}

r = requests.get(
    "https://api.sume.com/v1/balance",
    headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
    timeout=30,
)
limit = int(r.headers["ratelimit-limit"])
print(limit, PLAN.get(limit, "custom"), "writes/min:", limit // 40)

Gotchas

An admin override changes concurrency (limit_source says plan or admin_override in generation_limits), so a custom number is possible. Unauthenticated per-IP traffic gets a 4x read budget, so a request without a key shows a different number.

Generation admission is separate from the rate limit: Free runs 1 job at a time with 5 queued, and the 7th paid submit gets 429 queue_full even though 120 writes a minute remain.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume