livqenoDocs

ResourcesLimits & quotas

Limits & quotas

Every limit and expiry time you might hit, with its default value.

This page lists every limit you might hit. Each value is the default on Livqeno's hosted platform today.

Use it while you design your app. For example: how long a chat message can be (so your message box can stop the user early), how many people fit in a room, or how many tokens your backend can mint per minute.

The Configured by column is the setting name behind each value. It tells you which limit an error refers to; you cannot change it yourself.

These are technical limits, not billing quotas. They do not change based on how much of your free allowance you have left.

Your free allowances (RTC minutes, chat messages, live-streaming host-hours) are on Usage.

One special case: the Live Streaming limits below (concurrent streams, viewers, duration) are free-tier product limits. They work like every other row here: a request is either within the limit or not.

Ceilings and TTLs

RTC

LimitDefaultConfigured by
Participants per room50SIGNALING_MAX_PARTICIPANTS_PER_ROOM
Participants per live-stream room (higher, so the viewer limit can be reached)150SIGNALING_MAX_PARTICIPANTS_PER_LIVE_STREAM_ROOM
Signaling frame size16384SIGNALING_MAX_MESSAGE_BYTES
Signaling messages per connection, per window100SIGNALING_MAX_MESSAGES_PER_WINDOW
Signaling connection attempts per IP, per window20SIGNALING_MAX_CONNECTIONS_PER_WINDOW
RTC token lifetime (default; 30–21600 allowed)600RTC_TOKEN_DEFAULT_TTL_SECONDS
Media-server heartbeat timeout30SFU_HEARTBEAT_TIMEOUT_SECONDS

Live Streaming (free-tier limits, see Usage)

LimitDefaultConfigured by
Concurrent LIVE streams per account1USAGE_FREE_TIER_LIVE_CONCURRENT_STREAMS
Viewers per stream100USAGE_FREE_TIER_LIVE_MAX_VIEWERS
Maximum stream duration (minutes)240USAGE_FREE_TIER_LIVE_MAX_STREAM_DURATION_MINUTES

Live Streaming viewers on paid plans (0 = uncapped)

LimitDefaultConfigured by
Viewers per stream — Pay as you go1000USAGE_LIVE_MAX_VIEWERS_PAY_AS_YOU_GO
Viewers per stream — Startup1000USAGE_LIVE_MAX_VIEWERS_STARTUP
Viewers per stream — Growth5000USAGE_LIVE_MAX_VIEWERS_GROWTH
Viewers per stream — Enterprise0USAGE_LIVE_MAX_VIEWERS_ENTERPRISE

Chat

LimitDefaultConfigured by
Message text characters4000CHAT_MAX_TEXT_LENGTH
Message metadata bytes4096CHAT_MAX_METADATA_BYTES
Chat WebSocket frame bytes65536CHAT_MAX_FRAME_BYTES
Reactions per message200CHAT_MAX_REACTIONS_PER_MESSAGE
Conversations per chat connection20CHAT_MAX_ROOM_SUBSCRIPTIONS
Message history page size100CHAT_MAX_HISTORY_PAGE_SIZE
Chat sends per user, per window30CHAT_SEND_RATE_LIMIT
Chat token lifetime (default)3600CHAT_TOKEN_DEFAULT_TTL_SECONDS
Chat token lifetime (maximum)21600 (6 * 60 * 60)CHAT_TOKEN_MAX_TTL_SECONDS
Presence timeout (after this, the user shows as offline)45CHAT_PRESENCE_TTL_SECONDS
Typing indicator timeout7CHAT_TYPING_TTL_SECONDS

Attachments

LimitDefaultConfigured by
Attachment size26214400 (25 * 1024 * 1024)STORAGE_MAX_ATTACHMENT_BYTES
Signed upload URL lifetime900STORAGE_UPLOAD_URL_TTL_SECONDS
Signed download URL lifetime900STORAGE_DOWNLOAD_URL_TTL_SECONDS

Webhooks

LimitDefaultConfigured by
Webhook delivery attempts5CHAT_PUSH_MAX_ATTEMPTS
Webhook retry backoff base2000CHAT_PUSH_BACKOFF_BASE_MS
Webhook delivery timeout5000WEBHOOK_TIMEOUT_MS
Failures in a row before an endpoint is turned off50WEBHOOK_DISABLE_AFTER_FAILURES

Rate limiting

LimitDefaultConfigured by
Rate-limit window60RATE_LIMIT_WINDOW_SECONDS

Rate-limited endpoints

11 endpoints have a limit per time window. Each window is 60 seconds long.

EndpointPer window
POST /v1/live-streams30
POST /v1/live-streams/{streamId}/hosts60
POST /v1/live-streams/{streamId}/ingress30
POST /v1/live-streams/{streamId}/ingress/reset30
POST /v1/live-streams/{streamId}/restreams30
POST /v1/live-streams/{streamId}/stage/promote60
POST /v1/live-streams/{streamId}/viewer-tokens120
POST /v1/rooms/{roomId}/agents30
POST /v1/rooms/{roomId}/rtc-tokens60
DELETE /v1/rooms/{roomId}/rtc-tokens/{tokenId}60
POST /v1/rooms/{roomId}/transcription30

What happens when you hit a limit

WhereWhat you get
REST APIHTTP 429 with code RAVEN_RATE_LIMITED and a retryAfterSeconds field.
ChatA RATE_LIMITED error frame with the same retryAfterSeconds field.
Chat connectionThe socket closes with code 4429.
RTC signaling connectionThe socket closes with code 4029.

Wait for retryAfterSeconds before retrying. Don't use a fixed delay.

Next steps