Rate limits

Sendbird applications are rate-limited to ensure the best experience for users. If you exceed a rate limit, Sendbird server will return an error message that includes the encountered rate limit as well as how long you should wait before retrying.

Note : Sendbird organizations created after May 28, 2020, 00:00:00 UTC are automatically rate-limited, while those created before this date will be given sufficient time to adjust their applications before rate limits apply. Go to Settings > Application > General on the Sendbird Dashboard to see which rate limits your organizations are subject to. If you need a higher rate limit for API requests, contact our sales team for further assistance.


Plan-based limits

Rate limits vary depending on the number of monthly active users (MAU) of the application according to your plan or on the server operation status. By default, the following rate limits apply per endpoint and per application. They are maximum values, and the number of requests per second in general usage should be set lower:

MethodFree trial5K MAU10K MAU25K MAU50K MAU100K MAUEnterprise

GET

10/sec

60/sec

100/sec

200/sec

400/sec

600/sec

1000/sec

POST

5/sec

10/sec

20/sec

40/sec

100/sec

200/sec

400/sec

PUT

5/sec

10/sec

20/sec

40/sec

100/sec

200/sec

400/sec

DELETE

5/sec

10/sec

20/sec

40/sec

100/sec

200/sec

400/sec

Note : We recommend you implement a retry logic based on the value of the X-RateLimit-RetryAfter header in an error response. However, exceptional limit changes can be made for the individual applications to prevent incidents or abuse.


Rate-limited APIs

Due to the heavy load, the following HTTP requests are applied with stricter limits:

Note: API endpoints are relative to the base URL allocated to your application. In this page, the / endpoint refers to https://api-{application_id}.sendbird.com/v3/.

ScopeHTTP requestLimit

Application

POST /migration/{channel_url}

5 requests per second

User

PUT /users/{user_id}

5 requests per second

User

POST /group_channels

5 requests per second

User

POST /group_channels/{channel_url}/invite

5 requests per second

User

POST /{channel_type}/{channel_url}/messages

5 requests per second

User

PUT /group_channels/{channel_url}/messages/mark_as_read

5 requests per second


Error responses

For every rate-limited HTTP request, the 200 OK success and 429 Too Many Requests status responses including the headers below are returned:

HeaderTypeDescription

X-RateLimit-Limit

int

Indicates how many calls your application can make during the time specified in this header. For example, a value of 100;w=60 indicates that your application can make 100 calls in 60 seconds.

X-RateLimit-Remaining

int

Indicates how many remaining calls your application can make within the current time window. If the rate limit is exceeded, the 429 Too Many Requests status response is returned with a value of 0.

X-RateLimit-Reset

float

Indicates the UTC timestamp when this rate limit will be reset, in Unix seconds format.

X-RateLimit-RetryAfter

float

Indicates the number of seconds from the current time when you will be able to send a request again.

When a request is rate limited, a response body is returned as below:

Light Color Skin
Copy
HTTP 429 Rate Limited
 
X-RateLimit-Limit: 100;w=60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1583170221.32
X-RateLimit-RetryAfter: 0.73
 
{“message”: “Too many requests”, “code”: 500910, “error”: true}

Note : See the Error codes page for more information.