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 Pro 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.
|API Request||Calls per minute||Calls per 15 minutes||Calls per hour|
|Reading Feed Followers||200||2,400||9,600|
|Reading Followed Feeds||500||6,000||24,000|
|Collections delete many||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 Unfollowis disabled by default and requires a paid subscription.