Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions src/content/docs/realtime/realtimekit/faq.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pcx_content_type: navigation
title: FAQ
slug: realtime/realtimekit/faq
sidebar:
order: 10
order: 11
---

import { Details } from "~/components";
Expand All @@ -18,6 +18,11 @@ Configure any additional [access policies and restrictions](/fundamentals/api/re

</Details>

<Details header="Are there any rate limits or scaling limits for RealtimeKt?">
Please refer to our [Rate Limits](/realtime/realtimekit/rate-limits/) page for
more information.
</Details>

### Meetings

<Details header="Can I schedule meetings in advance with RealtimeKit?">
Expand All @@ -35,9 +40,6 @@ A common approach is:

<Details header="How do I prevent participants from joining a meeting after a specific date or time?">

You can disable the meeting at the required time by setting its status to `INACTIVE` using a `PATCH` request to the
[Update Meeting](/api/resources/realtime_kit/subresources/meetings/methods/update_meeting_by_id/) endpoint.

This prevents participants from joining the meeting and prevents any new Sessions from starting.

```bash
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/realtime/realtimekit/pricing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pcx_content_type: content
title: Pricing
slug: realtime/realtimekit/pricing
sidebar:
order: 11
order: 12
---

Cloudflare RealtimeKit is currently in Beta and is available at no cost during this period.
Expand Down
89 changes: 89 additions & 0 deletions src/content/docs/realtime/realtimekit/rate-limits.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
pcx_content_type: navigation
title: Limits and Quotas
sidebar:
order: 9
---

import RTKPill from "~/components/realtimekit/RTKPill/RTKPill.astro";

A guide to limits and quotas for RealtimeKit.

:::note
These limits are subject to change. Please subscribe to our [notice board](/realtime/realtimekit/release-notes/notice-board/) page for updates.
:::

## Limits

Cloudflare RealtimeKit applies concurrency and rate limits to certain services. These limits help maintain platform stability and protect against abuse, not to restrict normal usage. If you expect to exceed these limits or are limited by current performance, please contact Cloudflare Support.
:::note
There isn't a limit or performance metric we can't improve by an order of magnitude. If you expect to exceed these limits or are limited by current performance, please contact Cloudflare Support.
:::

### Concurrency Limits

Many RealtimeKit Cloud features rely on persistent, long-lived connections such as WebRTC and WebSockets.

To ensure platform stability and fair usage, these connections are subject to concurrency limits, which define the maximum number of simultaneous connections supported at any time.

#### API Concurrency Limits

| Metric | Observed in Production | Production Limits |
| --------------------------------------- | ---------------------- | ----------------- |
| Max Concurrent Participants per Session | | |
| Max Concurrent Sessions | | |
| Max Concurrent Recordings | | |
| Max Concurrent Livestreams | | |

#### SDK Concurrency Limits

| Metric | Observed in Production | Production Limits |
| ------------------- | -------------------------- | -------------------------- |
| SDK Initialisation | Once per user | 1 invocation per 3 seconds |
| Join a Meeting | Once per user | 1 invocation per 3 seconds |
| Toggle Media | 1 invocation per 3 seconds | 1 invocation per 3 seconds |
| Join or Leave Stage | 1 invocation per 5 seconds | 1 invocation per 5 seconds |

### Rate Limits

Rate limits control the frequency at which requests can be made to RealtimeKit APIs and SDK methods.

These limits are designed to prevent abuse and ensure consistent performance for all users. Rate limits are typically measured in requests per second (RPS) or requests per minute (RPM).

#### API Rate Limits

| Metric | Production Limits |
| -------------------- | ---------------------------- |
| All RealtimeKit APIs | 250 requests per 10 seconds |
| Recordings APIs | 1000 requests per 60 seconds |
| App Creation | |
| Preset Creation | |
| Webhook Creation | |

#### SDK Rate Limits

| Metric | Production Limits |
| ------------------------- | --------------------------- |
| RealtimeKit Stores | 5 invocations per second |
| Send Text Messages | 180 invocations per minute |
| Send Files/Images | 20 invocations per minute |
| Fetch Connected Meetings | 60 invocations per minute |
| Update Participant Preset | 10 invocations per minute |
| Fetch All Socket Peers | 1000 invocations per minute |

### Storage & Retention Limits

| Metric | Production Limits | Additional Information |
| ----------------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------- |
| Recordings Storage | Stored for 7 days | [Configure custom storage](/realtime/realtimekit/recording-guide/custom-cloud-storage/) for longer retention |
| Chat Storage | Stored for 7 days | 90 days with the `persit_chat` [configuration enabled](/api/resources/realtime_kit/subresources/meetings/methods/create/). |
| Transcription/Summary Storage | Stored for 7 days | - |
| Callstats & Logs | Stored for 30 days | - |

## Free Quotas

Most RealtimeKit Cloud features are metered, meaning you’re charged based on how much of each resource you use.

We are currently **in the process of implementing quotas** for RealtimeKit. Quotas are enforced are shared across all of a user’s projects. Creating additional projects does not increase the available quota.

For the latest quotas and pricing details, refer to the current [pricing](/realtime/realtimekit/pricing/) page.
Loading