TutorialCS2 API tutorials

Steam API rate limits, and how to stay under them.

The Steam Web API allows 100,000 calls per key per day under Valve's Terms of Use and answers 429 when you go too fast. Valve publishes no per-minute figure and no Retry-After header, so budget calls yourself, cache, batch IDs, and back off on 429.

  • 100,000 / day / key
  • 429 when throttled
  • No published per-minute limit
GET /cs2/matches/upcoming?limit=2200 OK
$ curl "https://api.citoapi.com/api/v1/cs2/matches/upcoming?limit=2" \ -H "x-api-key: $CITO_API_KEY"
{  "success": true,  "data": [    {      "id": "cs2-match-2398594",      "eventName": "CCT 2026 South America Series 6",      "startsAt": "2026-10-03T22:00:00.000Z",      "team1Name": "ex-Keyd Stars",      "team2Name": "Procyon"    },    {      "id": "cs2-match-2398853",      "eventName": "ESN Fall Showdown 2026",      "startsAt": "2026-10-04T06:00:00.000Z",      "team1Name": "The Huns",      "team2Name": "5star"    }    ...  ]}

What are the Steam Web API rate limits?

Valve documents three things: a daily limit of 100,000 calls per key, the 429 Too Many Requests response for rate-limited callers, and stricter per-IP limits for traffic that keeps producing 403 errors. Anything beyond that, such as a per-second ceiling, is not published.

Checked against steamcommunity.com/dev/apiterms and partner.steamgames.com on 2026-10-03.
LimitValueSource
Calls per key per day100,000Steam Web API Terms of Use
Response when throttled429 Too Many RequestsSteamworks Web API response codes
Traffic that generates 403sStricter per-IP rate limitsSteamworks Web API overview
Retry-After headerNot documented–
Per-minute limitNot published–

How many calls can my app make per minute?

100,000 a day averages to about 69 calls a minute, or 1.16 a second, spread evenly. Real traffic is bursty, so plan for a sustained rate well below that and leave headroom for retries.

PatternCalls a dayFits?
500 users refreshed every 10 minutes72,000Yes, with little headroom
2,000 users refreshed every 30 minutes96,000Barely; no room for retries
2,000 users, 20 IDs per batched call, every 10 minutes14,400Yes

How do I cut the number of calls?

Cache each response for as long as the data stays valid, batch IDs where the method accepts a list (GetPlayerSummaries takes up to 100 Steam IDs), refresh only what users actually look at, and retry with exponential backoff instead of immediately.

Python: a token bucket that keeps you under the daily limit
import time, threading

class DailyBudget:
    """Spread a daily allowance evenly; block when it is used up."""
    def __init__(self, per_day=90_000):
        self.rate = per_day / 86_400          # tokens per second
        self.capacity = 60                    # allow short bursts of 60 calls
        self.tokens, self.t = self.capacity, time.monotonic()
        self.lock = threading.Lock()

    def take(self):
        with self.lock:
            while True:
                now = time.monotonic()
                self.tokens = min(self.capacity, self.tokens + (now - self.t) * self.rate)
                self.t = now
                if self.tokens >= 1:
                    self.tokens -= 1
                    return
                time.sleep((1 - self.tokens) / self.rate)

budget = DailyBudget()
# call budget.take() before every request to api.steampowered.com

How do CS2 API rate limits compare?

The CS2 API publishes per-minute and monthly limits for every plan, and every 429 carries Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, so a client always knows when to try again. Pro esports data is not in Steam at all, so for match data the comparison is moot.

CS2 API limits from citoapi.com/pricing, checked 2026-10-03.
PlanPer monthPer minutePer day
Free50010200
Starter ($15)10,00030No daily cap
Pro ($59)250,00010025,000
Scale ($100)1,000,000400100,000

Frequently asked questions

Something missing? Email support@citoapi.com.

How many requests can I make to the Steam Web API?

100,000 calls per API key per day, under the Steam Web API Terms of Use.

Does the Steam API have a per-minute rate limit?

Valve does not publish one. It returns 429 Too Many Requests when you are throttled, so spread calls evenly and back off on 429.

What happens if I exceed the Steam API rate limit?

Requests return 429 until the limit resets. Traffic that keeps producing 403 errors also gets stricter per-IP limits.

See pricing

Build CS2 live score apps

Free is for building and testing. Paid plans add commercial use, real-time live data and the full archive.