Skip to content
Server

Rate limits and status codes

Engine rate limits, HTTP status codes and common messages.

Rate limits

LimitValue
REST requests per minute, per project120
WebSocket messages per second, per connection60
WebSocket connections per identity5
Concurrent rooms, per project300 by default
Participants per seated room300 by default
Time to use a token1 hour

When you go over the REST limit, you get this response, and RateLimit-* headers tell you where you stand:

HTTP 429 Too Many Requests
{ "message": "Too many requests — try again later" }

A live_stream room has no participant cap.

To ask for higher limits, contact us.

HTTP status codes

StatusMeaning
200Success
201Created
400Bad request
401Missing or invalid credentials
403The project or account is suspended, the user is banned, the feature is off, or the origin isn't allowed
404The room or participant wasn't found
409A conflict, such as a seat that's taken
422A missing or invalid field
429The rate limit, or the concurrent room limit
500Server error

Common messages

MessageWhat to do
Missing X-App-Id or X-App-Key headerSend both headers
Invalid credentialsCheck your App ID and key, and whether it was rotated
Invalid or expired user tokenMint a new token
Client secret auth is disabled for this project; use a user tokenSend the user_token as a bearer
Project is suspendedSee Low balance and suspension
Origin not allowedYour project restricts origins, so call from an allowed one
User is bannedThe user can't join until the ban is removed
Maximum concurrent rooms reachedClose rooms, or ask for a higher limit
Type 'live_stream' is not enabled for this projectEnable it under Service Management
Only host or admin can perform this actionThe user doesn't have the role for this

The kits and the console report numeric codes. See Error codes.