Skip to content

Limits

These are the limits of the production Chat API. They are the single source for every other page of this site.

Limits are fixed windows. A request over its limit gets 429 with error: "rate_limited" and a Retry-After header in seconds. See Handle errors and retries.

Applies toCounted perLimit
Machine clients, all routesclient_id600 per 60 s
Sending a messageuser30 per 10 s
User lookupuser20 per 10 s
Chat web sign-in onlyclient IP20 per 60 s
WhatLimitIf you exceed it
Request body256 kBLarger bodies are rejected with 413.
Message body10,000 charactersLonger bodies are rejected with body_too_long.
Attachments per message10More are rejected with too_many_attachments.
Page sizedefault 50, maximum 100A larger limit is capped.
Channels in one realtime credential100Plus one PUBLIC channel being viewed.
WhatLifetimeNote
User token from token exchangeat most 10 minutesNo refresh token. Exchange again.
Realtime credentialat most 10 minutesReconnect with a fresh one before it expires.
  • Create one ChatClient per process. It caches its machine token until shortly before it expires.
  • Cache the user’s Chat token in your app and renew it a minute before expiry. Do not call your token route per request.
  • Send typing signals at most every few seconds, and presence heartbeats about every 30 seconds.
  • On 429, wait Retry-After seconds, then retry with backoff.