Limits
This page lists count limits, length limits, rate limits and defaults by feature, for reference when choosing and designing. Searching the page in your browser (for "group", "recall" or "per minute", say) is the quickest way in.
The "How to adjust" column means:
- Runtime policy: tenants or apps can change it in the console's runtime policy; the settable range is in parentheses;
- Quota: a safety limit the platform sets per app; to raise it, contact us; see Rate limits and app status;
- Plan: set by the app's plan, shown under "Plan & usage" in the app's details in the console; to raise it, contact us to change plan; see Plans and billing;
- Fixed: can't be changed.
Notes:
- "Characters" are counted as Unicode characters, so one Chinese character is one character; "bytes" and "KB" are counted in UTF-8, and 1 KB is 1024 bytes.
- Rate limits such as "N per minute" or "N per day" allow bursts: you can use all N in a row, after which they refill at a steady rate; see How rate limits are calculated.
- Rate limits marked "Client" only apply to users' actions on the client; your server acting for users through the REST API isn't subject to them. Those marked "Console" only limit actions in the console.
- Lowering a limit (including switching to a plan with lower allowances) doesn't affect existing data; for example, after lowering the group member limit, groups already over it don't lose members, they just can't add more. Retention periods are the exception: after shortening message, attachment or group file retention, data past the new period starts being deleted right away and can't be recovered.
Users
| Item | Limit or default | How to adjust |
|---|---|---|
| Registered users per app (users not deleted, including banned ones) | Set by plan; 100,000 on the default plan | Plan |
| Username | 1 to 64 characters of letters, digits, _, - and ., case-insensitive | Fixed |
| Nickname | 64 characters | Fixed |
| Avatar URL | 512 bytes | Fixed |
| User custom attributes | 32 items, keys of 1 to 32 characters, up to 4 KB in total as JSON | Fixed |
| Password | 1 to 64 characters | Fixed |
| Ban and global mute duration | 1 second to 10 years, or permanent | Fixed |
| Reason for bans, mutes and similar actions | 256 characters | Fixed |
| Devices signed in at once per user | 4 | Runtime policy max_online_devices_per_user (1 to 20); can also be limited per platform group (device_limits_by_platform) |
| When signed-in devices exceed the limit | The earliest signed-in device is signed out | Runtime policy device_overflow_policy (sign out the earliest device, or refuse the new device) |
| User Token lifetime | 1 day | Runtime policy user_token_ttl_seconds (5 minutes to 1 year, or no expiry) |
| Refresh token lifetime | 7 days | Runtime policy user_refresh_ttl_seconds (1 hour to 1 year) |
| Sign-in token | Valid for 5 minutes, single use | Fixed |
| Creating users in bulk | 100 at a time | Fixed |
| Password hashing (creating users with passwords, setting passwords, password sign-in) | 100 per second per app, separately for server and client | Fixed |
| Client: self sign-up | 10 per minute per IP | Fixed |
| Client: sign-in | 120 per minute per IP | Fixed |
| Client: editing your own profile | 20 per minute per user | Fixed |
| Client: looking up other users' profiles | 600 users per minute per user | Fixed |
Friends and block list
| Item | Limit or default | How to adjust |
|---|---|---|
| Friends per user | 3000 | Runtime policy friend_limit (1 to 100,000) |
| Block list per user | 1000 people | Fixed |
| Friend remark | 64 characters | Fixed |
| Friend custom attributes | 16 items, keys of 1 to 32 characters, up to 1 KB in total as JSON | Fixed |
| Add source | 32 characters | Fixed |
| Friend request note | 256 characters | Fixed |
| Pending friend requests | Expire 30 days after the last send | Fixed |
| Friend request records | Kept for 60 days after the last send | Fixed |
| Requesting again after being declined | Only after 24 hours | Fixed |
| Bulk adding and removing friends, bulk blocking and unblocking, checking friendships | 100 users at a time | Fixed |
| Friend list and block list page size | 100 by default, up to 500 | Fixed |
| Client: sending friend requests | 20 per minute and 500 per day per user; 5 per day to the same person | Fixed |
| Client: other friend and block list actions (accept, decline, remove, edit remark, block and so on) | 60 per minute in total per user | Fixed |
| Client: checking friendships | 600 users per minute per user | Fixed |
Groups
| Item | Limit or default | How to adjust |
|---|---|---|
| Members per group (including the owner) | 500 | Runtime policy max_group_members (2 to 5000), within the plan's allowance; a single group can also have a lower limit (2 to 5000), and the smallest applies |
| Groups per user (including ones they own) | 500 | Runtime policy max_groups_per_user (1 to 5000), within the plan's allowance |
| Groups per app (not dissolved) | Set by plan; unlimited on the default plan | Plan |
| Admins per group | 20 | Fixed |
| Block list per group | 1000 people | Fixed |
| Group name, group nickname | 64 characters | Fixed |
| Group description | 512 characters | Fixed |
| Group avatar URL | 512 bytes | Fixed |
| Group announcement | 2048 characters | Fixed |
| Group custom attributes | 32 items, keys of 1 to 32 characters, up to 4 KB in total as JSON | Fixed |
| Member attributes | 16 items, up to 1 KB in total as JSON | Fixed |
| Join request reason, invitation note, decline reason, block and ban reason | 256 characters | Fixed |
| In-group mute duration | 1 second to 10 years, or permanent | Fixed |
| Pending join requests and invitations | Expire 7 days after the last one | Fixed |
| Cooldown after a join request is declined | Can't request to join that group again for 24 hours | Fixed |
| Group invitation cooldown | Off by default, so users can be invited again right away; when on, users who declined an invitation or left can't be invited to the same group for 24 hours. Members added by your server aren't limited | App policy group_invite_cooldown_enabled |
| Join link lifetime | 1 to 7 days, 7 by default | Set when creating the link |
| Members added, removed or invited at a time; groups fetched in bulk at a time | 100 | Fixed |
| Group member list page size | 100 by default, up to 500 | Fixed |
| Join rate per group | 60 people per minute; members added by your server and initial members at creation don't count | Fixed |
| Client: creating groups | 5 per minute and 50 per day per user | Fixed |
| Client: inviting to groups | 100 people per minute and 500 per day per user | Fixed |
| Client: requesting to join | 20 per minute per user, 5 per day to the same group | Fixed |
| Client: other group actions | 60 per minute in total per user | Fixed |
Messages and conversations
| Item | Limit or default | How to adjust |
|---|---|---|
Size of one message (type, body, ext and so on, in total as JSON) | 5 KB | Runtime policy max_message_body_bytes (1 KB to 32 KB) |
A message's push settings push | 2 KB | Fixed |
client_msg_id | 1 to 64 visible ASCII characters | Fixed |
| People @mentioned in one message | 20 | Fixed |
| Recipients of one bulk send | 600 | Runtime policy max_recipients_per_message (1 to 1000) |
| Reaction kinds per message | 20 | Runtime policy max_reactions_per_message (1 to 50) |
| Pinned messages per conversation | 20 | Runtime policy max_pinned_messages_per_conversation (1 to 100) |
| Pinned conversations per user | 100 | Fixed |
| Sender's recall time limit | 2 minutes | Runtime policy recall_window_seconds (0 to 7 days; 0 means senders can't recall); recalls by your server and group owners aren't limited by it |
| Server edits to one message | Up to 100 | Fixed |
| History retention | 90 days | Runtime policy message_retention_days (1 to 3650 days), within the plan's message retention |
| Offline messages filled in after reconnecting | The latest 500 one-to-one and 200 group messages per conversation, within 7 days; older ones are fetched when paging back | Runtime policy offline_single_message_limit and offline_group_message_limit (1 to 10000), offline_message_retention_days (1 to 30 days) |
| Messages fetched at a time | 20 by default, up to 100 | Fixed |
| Messages exported at a time | 100 by default, up to 1000 | Fixed |
| Response size of APIs that return messages | Messages up to 1 MB in total; the rest go to the next page | Fixed |
| Messages deleted at a time, messages recalled in one bulk recall | 100 | Fixed |
| Scope of mark-all-read and total unread count | All groups the user is in, plus the 1000 most recent one-to-one chats and groups they've left, by latest message | Fixed |
| "Typing" indicator | One-to-one chats and groups of up to 100 people | Fixed |
| Real-time notices of group read receipts | Groups of up to 500 people | Fixed |
| Message rate per group | 40 per second, client and server sends combined | Fixed |
| Message rate per app | 30,000 per minute, client and server sends combined; bulk sends count per recipient | Quota |
| Client: sending messages | 10 per second per user (bursts of 20); 5 per second in the same one-to-one chat; each user receives at most 50 one-to-one messages per second | Fixed |
| Client: messaging people you haven't chatted with | 20 people per minute and 200 per day per user | Fixed |
| Client: @mentions | 60 per minute per user; @all counts as 20 | Fixed |
Files
"MB" and "GB" are powers of 1024, so 1 MB is 1,048,576 bytes.
| Item | Limit or default | How to adjust |
|---|---|---|
| App storage quota (attachments, avatars, chat room covers and group files combined, including thumbnails) | The smaller of the platform quota storage_limit_gb (1024 GB by default) and the plan's storage. Once exceeded, no more uploads; existing files aren't affected | Quota, plan |
| Message attachment and group file size | 100 MB | Runtime policy max_upload_bytes (1 MB to 2 GB) |
Images (attachments and group files of type image) | 20 MB, or max_upload_bytes if smaller; up to 50 megapixels. Larger images can be uploaded as type file | Fixed |
| Voice | 5 MB, or max_upload_bytes if smaller | Fixed |
| User avatars, group avatars, chat room covers (original upload) | 5 MB, up to 50 megapixels; saved with the long side at most 640 pixels | Fixed |
| File name | 255 characters | Fixed |
| Upload size per request | Up to 32 MB in a single upload; larger files use multipart upload in 16 MB parts | Fixed |
| Upload deadline | After creating an upload, finish within 1 hour for files up to 32 MB, or 24 hours for multipart uploads | Fixed |
| Attachment retention | 30 days from upload | Runtime policy attachment_retention_days (1 to 3650 days) |
| Group file retention | No expiry; deleted when the group is dissolved | Runtime policy group_file_retention_days (0 to 3650 days; 0 means no expiry) |
| Group files per group | 1000 | Fixed |
| Avatar and chat room cover files | Deleted if unused 24 hours after upload; deleted 7 days after being replaced; chat room covers deleted 7 days after the chat room is dissolved | Fixed |
| Image thumbnails | Long side 480 pixels | Fixed |
| Download URLs per request | 100 | Fixed |
| Download URL lifetime | 60 to 90 minutes | Fixed |
| External hosts allowed by URL restrictions | 20 | Runtime policy media_allowed_hosts |
| Client: creating uploads | 60 per minute and 1000 per day per user | Fixed |
| Client: upload volume | 2 GB per day per user, counted by the size declared when creating the upload | Fixed |
| Client: uploading avatars | 20 per day per user, user avatars, group avatars and chat room covers combined | Fixed |
| Client: other requests during upload (getting part URLs, listing uploaded parts, completing, cancelling) | 300 per minute in total per user | Fixed |
| Client: getting download URLs | 600 files per minute per user; requesting file URLs directly counts too | Fixed |
| Client: viewing and deleting group files | 60 per minute in total per user | Fixed |
Chat rooms
| Item | Limit or default | How to adjust |
|---|---|---|
| Chat rooms per app (not dissolved) | 10,000 | Quota chatroom_limit, within the plan's chat room allowance |
| Members per chat room | 100,000; the owner and admins don't count | Runtime policy max_chatroom_members (10 to 500,000); a single chat room can also have a limit (1 to 500,000), and the smaller applies |
| Admins per chat room | 99 | Fixed |
| Muted list and banned list per chat room | 10,000 unexpired entries each | Fixed |
| Allowlist per chat room | 500 people | Fixed |
| In-room mute and ban duration | 1 second to 10 years, or permanent | Fixed |
| Name, description, announcement | 1 to 128, 512 and 2048 characters | Fixed |
| Cover URL | 512 characters | Fixed |
| Chat room attributes | 100 keys; keys of 1 to 128 characters, values up to 4096 bytes, keys and values up to 16 KB in total; up to 20 keys set or deleted at a time; up to 100 initial attributes at creation | Fixed |
ext when entering | 512 bytes | Fixed |
Size of one message (type, body and ext in total) | 2 KB | Runtime policy max_chatroom_message_bytes (256 bytes to 8 KB) |
| Messages per second per chat room | 40 normal and low priority combined, plus 20 high priority; client and server sends combined | Normal and low priority: runtime policy chatroom_msg_per_second (1 to 200); high priority fixed |
| Messages per second across all of an app's chat rooms | 2000, all three priorities counted | Quota |
| Recent messages | The latest 50, kept up to 24 hours; low-priority messages aren't stored | Runtime policy chatroom_history_size (0 to 200; 0 stores none); 24 hours fixed |
| Chat rooms that push member join and leave notices | Those with up to 100 people online | Runtime policy chatroom_member_notify_limit (0 to 1000; 0 pushes none) |
| Creating chat rooms from the client | Not allowed by default | Runtime policy client_chatroom_create_enabled |
| Chat rooms per persistent connection at once | 10 | Fixed |
| Disconnection counts as leaving | After 15 seconds | Fixed |
| Messages one connection receives from one chat room | 50 per second and 128 KB (normal and low priority); the rest are dropped | Fixed |
| Removing, muting, banning, or adding to or removing from the allowlist at a time | 100 users | Fixed |
| Online counts queried in bulk at a time | 100 chat rooms | Fixed |
| Chat room list page size | 20 by default, up to 100 | Fixed |
| Online member list page size | 20 by default, up to 1000; up to 100 on the client | Fixed |
| Dissolved chat rooms | Can still be queried for 30 days after dissolving | Fixed |
| Client: sending messages | 5 per second per user (bursts of 10) | Fixed |
| Client: entering chat rooms | 10 per minute per connection; 2000 people per second per chat room | Fixed |
| Client: setting and deleting attributes | 30 per minute per user; 20 per second per chat room, client and server combined | Fixed |
| Client: management actions (mute, ban, remove, recall, edit profile and so on) | 60 per minute in total per user | Fixed |
| Client: queries (member lists, lists, recent messages and so on) | 120 per minute in total per user | Fixed |
| Client: creating chat rooms | 5 per minute and 20 per day per user | Fixed |
Audio/video
| Item | Limit or default | How to adjust |
|---|---|---|
| Audio/video calls | Off by default | Runtime policy rtc_enabled, and the app's plan must include audio/video |
| Concurrent calls per app (including ones ringing) | Set by plan; unlimited on the default plan | Plan |
| Ringing time for incoming calls | 60 seconds | Runtime policy rtc_ring_timeout_seconds (20 to 120 seconds) |
| People in a group call at once (including the caller) | Set by the plan, no limit by default | The plan's group call limit; the runtime policy max_group_call_participants (0, no limit, by default) can lower it |
| People invited at a time when starting a group call or inviting during one | The member limit minus one; up to 1000 per request, and you can invite in several requests | Fixed |
| Members involved in a group call over its life (including those who left, declined or didn't answer) | 100 | Fixed |
| Concurrent calls | 1 per user; 1 group call per group | Fixed |
| Call heartbeat | Every 15 seconds; treated as dropped after 45 seconds without one | Fixed |
| Group call with only one person left | Ends after 60 seconds | Fixed |
| Longest call | 12 hours | Fixed |
| Media credential lifetime | 15 minutes, renewed before expiry | Fixed |
Call ext | 16 items, keys of 1 to 64 characters, up to 1 KB as JSON | Fixed |
client_call_id | 1 to 64 visible ASCII characters | Fixed |
| Reason for ending calls and removing members | 256 characters | Fixed |
| Looking up ringing incoming calls | Returns up to 20 | Fixed |
| Call list page size | 20 by default, up to 100; client call history up to 50 | Fixed |
| Call stats | Up to 92 days per query | Fixed |
| Call retention | 180 days after ending | Fixed |
| Client: call actions | Rate-limited per user, such as 10 calls started per minute and 200 per day per user; see What the client needs to do | Fixed |
Offline push
| Item | Limit or default | How to adjust |
|---|---|---|
| Push credentials per app | 20 | Fixed |
| Push tokens per device | 3 regular tokens, 1 VoIP token | Fixed |
| Push token | 1 to 512 visible ASCII characters; APNs tokens are 64 to 200 hex digits | Fixed |
| Conversation Do Not Disturb entries per user | 10,000 | Fixed |
| Global and conversation Do Not Disturb duration | 1 second to 10 years, or always on | Fixed |
Title and text in push when sending messages | 1 to 64 characters and 1 to 256 characters | Fixed |
push.ext | 512 bytes as JSON | Fixed |
| Notification template overrides per app | 300 | Fixed |
| Pushes per minute per app | 60,000, counted per device; the rest aren't pushed | Quota push_per_min_limit |
| How late a message can still be pushed | Messages processed more than 30 minutes after sending aren't pushed | Fixed |
| Push lifetime in the channel | 24 hours; for incoming calls, the remaining ringing time | Fixed |
| Push stats | Kept for 180 days, up to 92 days per query | Fixed |
| Console: test pushes | 20 per minute per app, 5 per minute to the same user | Fixed |
| Client: registering and unregistering push | 10 per minute in total per device; reporting badges 60 per minute per device | Fixed |
| Client: reading and changing push settings and conversation Do Not Disturb | 60 reads and 60 writes per minute per user | Fixed |
Content moderation
| Item | Limit or default | How to adjust |
|---|---|---|
| Word lists per app | 20 | Fixed |
| Words | 10,000 per list, 50,000 per app in total | Fixed |
| Word length (after normalization) | Block words 2 to 32 characters, allow words 2 to 64 | Fixed |
| Words added or deleted at a time | 1000 | Fixed |
| Moderation accounts per tenant | 5 | Fixed |
| Automatic penalty rules | 5; time window 1 to 720 hours, 1 to 1000 violations, penalty of 1 second to 10 years or permanent | Fixed |
| Content checked per field | The first 32 KB | Fixed |
| Content entering after-the-fact review per minute per app | 6000; the rest aren't reviewed | Fixed |
| Checks per day the platform's moderation account does for an app | 100,000 | Contact us |
| Checking text | Up to 10 fields at a time | Fixed |
| Bulk decisions | 100 at a time | Fixed |
| Decision note | 256 characters | Fixed |
| Moderation records | Closed automatically if not handled for 30 days; decisions can be changed within 30 days; content cleared 30 days after a record closes, deleted after 180 days | Fixed |
| User violation records | Kept for 180 days | Fixed |
| Report description and evidence | Description 500 characters, 5 evidence messages | Fixed |
| Reports on users' behalf | 600 per minute per app | Fixed |
| Client: reports | 5 per minute and 30 per day per user | Fixed |
| Console: viewing moderation record content | 120 per minute per member | Fixed |
| Console: Try it | 60 per minute per member | Fixed |
Presence and connections
| Item | Limit or default | How to adjust |
|---|---|---|
| Viewing others' presence from the client | Off by default; when on, only friends by default | Runtime policy presence_enabled and presence_scope (friends only, or any user in the app); server queries aren't limited by these |
| Presence lookup at a time | 100 people | Fixed |
| Presence subscriptions per connection | 3000 people, up to 500 per subscribe | Fixed |
| Last offline time | Kept for 30 days; null for users not online in the last 30 days | Fixed |
| Detecting dropped devices | Within 90 seconds in the foreground, 360 seconds in the background; shown as online meanwhile | Fixed |
| Devices online at once per user | Same as devices signed in at once; see Users | Runtime policy |
| New persistent connections per app | 1200 per second | Quota |
| Concurrent connections per app | Set by plan; unlimited on the default plan. Once reached, new persistent connections are closed; existing ones aren't affected | Plan |
| Client: presence lookups | 600 people per minute per user | Fixed |
| Client: presence subscriptions | 30 per minute per user | Fixed |
Callbacks
| Item | Limit or default | How to adjust |
|---|---|---|
| Callback endpoints per app | 5 | Fixed |
| Endpoint name, URL | 1 to 64 characters, 1024 characters | Fixed |
| Events subscribed per endpoint | 1 to 50 | Fixed |
| Event callback timeout | 5000 milliseconds | Per endpoint (1000 to 10000 milliseconds) |
| Concurrent requests per endpoint | 10 | Per endpoint (1 to 50) |
| Requests per second per endpoint | 100 | Per endpoint (1 to 1000), within the total for all of the app's endpoints |
| Requests per second across all of an app's endpoints | 500; extra events queue and go out a little later | Quota callback_qps_limit |
| Events per batch | 1; when batched, one request body is up to 1 MB | Per endpoint (1 to 100) |
| Events awaiting delivery per endpoint | 500,000; once full, new events are dropped | Contact us |
| Event callback retries | Up to 12 sends within 24 hours of queuing | Fixed |
Each event's data | 70 KB; beyond that, content and list fields are removed | Fixed |
| Sync callback wait | 1000 milliseconds; also bound by 3 seconds in total for a message's checks and 500 milliseconds for chat room messages | Per sync callback type (100 to 3000 milliseconds) |
| Sync callback response | 64 KB; rejection reason code 1 to 64 characters, message up to 256 characters | Fixed |
| Sync callback concurrency | 200 requests per endpoint per service instance; extra ones count as failures | Fixed |
| URL verification and test sends | 20 per minute in total per app | Fixed |
| Delivery records | Successful ones kept for 1 hour, failed ones for 7 days | Fixed |
| Request log, stats | Kept for 7 days and 90 days | Fixed |
Apps and credentials
| Item | Limit or default | How to adjust |
|---|---|---|
| Tenants a console account creates itself | 5 | Fixed |
| Apps per tenant (excluding deleted ones) | 10 | Contact us to raise it after business verification |
| Members per tenant (including pending invitations) | 20 | Contact us to raise it after business verification |
app_name | 3 to 32 characters, starting with a lowercase letter, of lowercase letters, digits and -; can't be changed after creation or reused after deletion | Fixed |
| Valid Client Secrets per app at once | 2 | Fixed |
| Old Secret's grace period when rotating | 24 hours | Set when rotating (1 to 720 hours) |
| IP allowlist entries per app | 200 | Fixed |
| App Token lifetime | 7 days | Runtime policy app_token_ttl_seconds (5 minutes to 1 year) |
| Getting App Tokens | 120 per minute per source IP | Fixed |
| REST API calls | 1200 per second per app, shared with getting App Tokens; bulk APIs count per item | Quota |
| Client API calls | 1200 per second per app, counted separately from the REST API | Quota |
Request format and paging
| Item | Limit or default | How to adjust |
|---|---|---|
| Request body | A single JSON object, up to 1 MiB | Fixed |
X-Request-ID header | Up to 64 characters of letters, digits, -, _ and . | Fixed |
| List page size | 20 by default, up to 100; friend lists, block lists and group member lists 100 by default, up to 500 | Fixed |
| Items per bulk API call | 100; for bulk message recipients see Messages and conversations | Fixed |
| Time precision | Milliseconds | Fixed |
Standalone RTC channels
Standalone channel limits are defined separately from one-to-one and group calls; see Channel overview.
| Item | Limit or default | How to adjust |
|---|---|---|
channel_id | 1 to 64 ASCII characters, starting with a letter or digit, the rest letters, digits, _ and -; case-sensitive, and can't be reused after the channel closes | Fixed |
Channel name, ext | Name 128 characters; ext an object up to 4 KB | Fixed |
| Participants per channel at once | 1 to 64, 16 by default; reserved participations not yet joined, and exited ones not yet cleaned up, also take a place | Set when creating the channel |
| Open channels per app | 1000; this is separate from the media concurrency allowance | Quota |
| Tickets issued or revoked at a time | 1 to 50 distinct users | Fixed |
| Ticket lifetime | 30 to 300 seconds, 120 by default; single use | Set when issuing |
| Join deadline | Joining must finish within 60 seconds of the first reservation; preparing, retrying and confirming don't restart the clock | Fixed |
| Heartbeat | Every 15 seconds recommended; leaving starts after 45 seconds without a valid heartbeat; current SDKs send one about every 10 seconds | Fixed |
| Longest participation | 12 hours | Fixed |
| Media credential lifetime | Usually 60 seconds, never past the join or session deadline | Fixed |
| Media use per user | A user can be in only one call or channel at a time, shared with one-to-one and group calls; can't join from several devices at once | Fixed |
| App media concurrency | Calls and active channels share the plan's concurrency allowance, not counted by channel size | Plan |
client_session_id, operation_id | 1 to 64 visible ASCII characters, no spaces; keep the same value when retrying | Fixed |
| Note on management actions | 256 characters; required for bans | Fixed |
| Session and usage retention | Sessions 90 days; usage stats for the latest 180 stat days | Fixed |
| Stats per query | Up to 92 days, no future dates | Fixed |
| Creating channels, new joins | 60 channels created per minute per app; 10 new joins per minute per user | Fixed |
| Issuing tickets, queries | Tickets for 300 users per minute per app; 120 regular client requests per minute per user | Fixed |
| Heartbeats, media credential renewals | 10 heartbeats and 6 renewals per minute per session; on 429, wait per Retry-After | Fixed |
After closing a channel or removing members, media cleanup may still be retrying, so an HTTP 202 doesn't mean the resources are released yet. For daily usage status and late corrections, see Channel stats.
