Would like to know more about Rate Limit

Hi Sendbird team,

Following | Chat Platform API | Sendbird Docs

I’m quite not sure how you calculated the rate limit.

In term of endpoint not sure what you mean?
Example
Let says i have these 2 endpoints
{xxx}/users/{user1}/unread_message_count
{xxx}/users/{user2}/unread_message_count

Those 2 will calculated as same endpoints (use same rate limit)?
or those 2 have individual rate limit (not depend on each other)

Thanks

Hi @Joe,

Welcome to the Sendbird Community.

This is a fantastic question. This ultimately boils down to whether the endpoint is listed under the explicit Rate-Limited APIs or not.

Taking your example, /{user_id}/unread_message_count is not listed there and thus both calls are captured under the Plan-based rate limits GET

Now APIs that are outlined under the Rate-limited APIs are checked twice. First, we check it at the scope level of the specific call. For example, PUT /users/{user_id} is checked at the User scope meaning that a single user can only be updated 5 timers per second. However, these end points are also held to the plan based limit. Meaning, if you are only calling PUT /users/{user_id} 3 times per second for a specific user but you exceed the number of PUT requests for the overall plan, limiting will occur.

Example 1:
PUT /users/john → 3 TPS
Outcome: No rate limit hit

Example 2:
PUT /users/john → 6 TPS
Outcome: Rate limit hit on the 6th attempt each second

Example 3 (Assumes you have a 5K MAU Plan):
PUT /users/john → 4 TPS
PUT /users/harry → 4 TPS
PUT //group_channels/{channel_url}/messages/mark_as_read → 3 TPS
Outcome: Rate limit hit as soon as the 11th PUT request is made.