Quotas and Limits

Free quotas

Every LiveKit project gets the following for free:

We want to give every project 50GB/60min for free, but beyond that, we need to start charging you. Thus, for your project to use more than your free quotas, you have to enter a payment method and sign up for our Standard plan.

Projects on the Starter plan (free) will stop working after these quotas are exceeded. Projects on paid plans will only be charged for the amount that exceeds these quotas. (For more details, see Pricing.)

Connection limits

LiveKit projects have limitations on the number of concurrent connections of various types in order to ensure the stability of our network and to prevent abuse. Think of them like rate limiting in an HTTP service, but for a continuous service with long-lived connections. Like rate limiting, the primary purpose of these connection limits is to prevent abuse.

You can view the current connection limits on your project at any time in the Cloud Dashboard by navigating to your project’s Settings and clicking the Project tab.

Free plan

Projects on the Starter plan (free) have the following limits:

If these limits are exceeded, expect new connections of the same type to fail.

Projects on paid plans do not have any upper bounds on connections, Ingress, or Egress. We'll gladly work with you to ensure your project has the capacity it needs. An admin for your project can request an increase for the particular limit in your project settings.

<-- You can immediately raise these limits by entering a payment method and upgrading your account to our Standard plan. As a reminder, you won’t be charged unless you exceed your free quotas (see above). This isn't about paying to increase these limits; it’s just that once we know you’re able to pay, we think you’re much less likely to be a spammer.

  • 1000 concurrent connections (eg, participants)
  • 5 concurrent egress requests -->

Egress time limits

Egress has time limits, depending on the output type:

Egress outputTime limit
File output (MP4, OGG, WebM)3 hours
HLS segments12 hours
HLS/RTMP streaming12 hours

After these time limits are reached, an Egress will automatically end with status LIMIT_REACHED.

You can listen for this status change with the egress_ended webhook.

Subscription limits

Each participant may subscribe to a limited number of tracks. Currently, the subscription limit is:

  • Up to 50 video tracks
  • Up to 100 audio tracks

We haven't encountered a use case demanding higher limits so far; most end-users usually lack the bandwidth to handle more concurrent tracks.

For video use cases, consider using pagination and selective subscriptions to keep the number of subscriptions within these limits.

For audio use cases, we are developing selective audio muxing in the core SFU, which will selectively transmit active audio data to the subscriber using a manageable number of tracks.

Metadata limits

When you store application data in Room or Participant metadata, please note that each piece of metadata has a size limit of 64kB.

API request rate limits

All projects also have a 1000 request per minute rate limit on API requests. This is for Server API requests only (for instance, RoomService or EgressService requests) and does not apply to client SDK methods like joining Rooms or sending data messages.

Honestly, we don't think any project will exceed this rate limit, but if it’s a problem, please email us at [email protected] and include your Project URL, which you can find in your Project Settings.