> ## Documentation Index
> Fetch the complete documentation index at: https://docs.collab-kit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Limits and Benchmarks

> Operational limits, delivery SLAs, and benchmark targets for CollabKit.

This page lists CollabKit limits and benchmark targets for the latest version.

## Rate Limits for APIs

When rate limits are exceeded, APIs may return `429 Too Many Requests`.

| Limit                 | Value                                                                  |
| --------------------- | ---------------------------------------------------------------------- |
| General REST API      | 600 requests/minute per account, burst 120 requests/10 seconds         |
| Create user           | 120 requests/minute per account, burst 30 requests/10 seconds per room |
| Create room           | 60 requests/minute per account                                         |
| List endpoints        | 300 requests/minute per account                                        |
| Storage upload        | 20 uploads/minute per user, 100 uploads/minute per room                |
| Storage delete        | 60 deletes/minute per user                                             |
| Storage list files    | 60 requests/minute per user                                            |
| Webhook/workflow CRUD | 60 requests/minute per account                                         |
| Auth/login routes     | 10 requests/minute per IP                                              |
| List users page size  | 100 users per page                                                     |

## CollabKit Store Limits

| Limit           | Value             |
| --------------- | ----------------- |
| Stores per room | 10                |
| Writes to store | 1 write per 250ms |
| Store size      | `TBD`             |

Each named store counts toward the per-room store limit. Store entries, document shape, and payload-size limits are `TBD`.

## Comment Limits

| Limit                       | Value |
| --------------------------- | ----- |
| Top-level comments per room | 1,000 |
| Comment payload size        | `TBD` |

Replies are limited to one level of nesting. A top-level comment can have replies, but replies cannot have nested replies.

## File Storage Limits

| Limit                  | Value                                                   |
| ---------------------- | ------------------------------------------------------- |
| File size              | 1 MB per file                                           |
| Per-room storage quota | 5 GB                                                    |
| Files per room         | 1,000                                                   |
| Upload rate            | 20 uploads/minute per user, 100 uploads/minute per room |
| Delete rate            | 60 deletes/minute per user                              |
| List files rate        | 60 requests/minute per user                             |

<Note>
  Files are scoped to rooms. Storage rate limits are enforced per Worker isolate for now.
</Note>

## Room Limits

Users can join a room with two roles: `editor` | `viewer`.

| Scenario                            | Limit or target                           |
| ----------------------------------- | ----------------------------------------- |
| Maximum users in one room           | 1,000 users with up to 200 active editors |
| Maximum users in an all-editor room | 500 active users, all editors             |
| Concurrent joins and time SLA       | 1.5sec (P50), 3sec (P95)                  |

* **Editors:**
  * Allowed to mutate stores, files, add comments and more.
  * Use for users who actively mutate room state, stores, comments, storage, broadcasts, or CRDT documents.
* **Viewers:**
  * Allowed to subscribe to all the changes in a room, including presence, stores, comments, files and more.
  * Use for users who need real-time updates but do not need to write collaborative state

## Webhook/Workflow Delivery SLAs

| System                   | SLA                          |
| ------------------------ | ---------------------------- |
| WebSocket event delivery | 5-30 seconds after the event |
| Analytics availability   | 30 seconds after the event   |

WebSocket SLAs describe when connected clients should receive room events after the server processes the event. Analytics SLAs describe when event data should be available for querying or display.
