diff --git a/src/content/docs/realtime/realtimekit/faq.mdx b/src/content/docs/realtime/realtimekit/faq.mdx
index e0532673fc3ab95..4f89d68cba7238f 100644
--- a/src/content/docs/realtime/realtimekit/faq.mdx
+++ b/src/content/docs/realtime/realtimekit/faq.mdx
@@ -3,7 +3,7 @@ pcx_content_type: navigation
title: FAQ
slug: realtime/realtimekit/faq
sidebar:
- order: 10
+ order: 11
---
import { Details } from "~/components";
@@ -18,6 +18,11 @@ Configure any additional [access policies and restrictions](/fundamentals/api/re
+
+ Please refer to our [Rate Limits](/realtime/realtimekit/rate-limits/) page for
+ more information.
+
+
### Meetings
@@ -35,9 +40,6 @@ A common approach is:
-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
diff --git a/src/content/docs/realtime/realtimekit/pricing.mdx b/src/content/docs/realtime/realtimekit/pricing.mdx
index 6a84b17bff307ca..ed152c1676a4f1e 100644
--- a/src/content/docs/realtime/realtimekit/pricing.mdx
+++ b/src/content/docs/realtime/realtimekit/pricing.mdx
@@ -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.
diff --git a/src/content/docs/realtime/realtimekit/rate-limits.mdx b/src/content/docs/realtime/realtimekit/rate-limits.mdx
new file mode 100644
index 000000000000000..7898a15f8f92c7a
--- /dev/null
+++ b/src/content/docs/realtime/realtimekit/rate-limits.mdx
@@ -0,0 +1,81 @@
+---
+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 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 Meeting Participants | 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 `persist_chat` [configuration enabled](/api/resources/realtime_kit/subresources/meetings/methods/create/). |
+| Transcription/Summary Storage | Stored for 7 days | - |
+| Callstats & Logs | Stored for 30 days | - |