Rate Limits
Every application is rate limited at the API endpoint. These limits are set on a 1-minute, 15-minute, and 1-hour time windows; API requests have specific rate limits. For example, reading a feed has a different limit than establishing a follow relationship.
What Happens When You’re Rate Limited
If an API call exceeds a rate limit during the target time window, subsequent requests for the same API function will be rejected. The payload returned for that API call will indicate that rate-limiting has occurred.
If your application becomes rate-limited, it doesn’t block other API calls from working. For example, hitting a rate limit on follows will still allow you to read feeds. Each ‘resource’ is rate-limited separately.
Rate limits are reset at the end of each time window.
How To Avoid Rejected API Requests
For Premium and Enterprise plans, Stream will review your feed group architecture, and set higher rate limits for your production application. For other paid plans, you will need to review responses from Stream to watch for error conditions indicating that your API request was rate-limited and retry. We recommend implementing an exponential back-off retry mechanism.
Rate Limits
API Request | Calls per minute | Calls per 15 minutes | Calls per hour |
---|---|---|---|
Adding Activities | 1,000 | 12,000 | 48,000 |
Removing Activities | 300 | 3,600 | 14,400 |
Updating Activities | 250 | 3,000 | 12,000 |
Updating Activity To Targets | 250 | 3,000 | 12,000 |
Reading Feeds | 2,000 | 24,000 | 96,000 |
Following Feeds | 500 | 6,000 | 24,000 |
Unfollowing Feeds | 250 | 3,000 | 12,000 |
Reading Feed Followers | 200 | 2,400 | 9,600 |
Reading Followed Feeds | 500 | 6,000 | 24,000 |
Batch Follow | 250 | 3,000 | 12,000 |
Batch Unfollow | 0 | 0 | 0 |
Collections upsert | 250 | 3,000 | 12,000 |
Collections select | 250 | 3,000 | 12,000 |
Collections delete many | 250 | 3,000 | 12,000 |
Collection read | 1,000 | 10,000 | 100,000 |
Collections add | 1,000 | 10,000 | 100,000 |
Collections remove | 1,000 | 10,000 | 100,000 |
Collections update | 1,000 | 10,000 | 100,000 |
User add | 1,000 | 10,000 | 100,000 |
User read | 1,000 | 10,000 | 100,000 |
User update | 1,000 | 10,000 | 100,000 |
User delete | 1,000 | 10,000 | 100,000 |
Reaction add | 1,000 | 10,000 | 100,000 |
Reaction read | 1,000 | 10,000 | 100,000 |
Reaction update | 1,000 | 10,000 | 100,000 |
Reaction delete | 1,000 | 10,000 | 100,000 |
Image upload | 250 | 3,000 | 12,000 |
Image processing | 250 | 3,000 | 12,000 |
Image delete | 250 | 3,000 | 12,000 |
File upload | 250 | 3,000 | 12,000 |
File delete | 250 | 3,000 | 12,000 |
Analytics Track Engagement | 1,000 | 10,000 | 100,000 |
Analytics Track Impression | 1,000 | 10,000 | 100,000 |
Analytics Track and Redirect | 1,000 | 10,000 | 100,000 |
Batch Unfollow
is disabled by default and requires a paid subscription.