Rate limits
Read the rate limit headers on each response, and wait for the reset time when you get a 429.
The API limits how many requests each API key can send in a time window. Each response tells you your current limit in these headers:
| Header | Description |
|---|---|
x-ratelimit-limit |
The number of requests you can send in the current window. |
x-ratelimit-remaining |
The number of requests that are left in the current window. |
x-ratelimit-reset |
The time when the window resets. |
When x-ratelimit-remaining is 0, the next request gets a 429 Too Many Requests response. Wait until x-ratelimit-reset, then send the request again.
Send fewer requests
- Cache responses. Most profile and badge data changes a few times a day, not every second.
- Use the list endpoints with pagination, not one request for each item.
- For live data, subscribe to a stream such as
activity.streamGlobalFeedorstats.subscribe, and do not poll.
Queue endpoints
Endpoints such as account.queueUpdate start a background refresh from Steam. The refresh can take some time, so do not send the request again for the same account while a refresh is in progress.