422 invalid_request. Exceptions are called out on their rows, and in
Errors.
Rate limits
Message writes use a fixed window per conversation.
A
429 response carries Retry-After in seconds. Wait that long before
retrying. Retrying sooner consumes the next window.
Other writes hold their own budgets, per caller and per network address. The
tighter of the two answers first, and the reply is the same 429 with
Retry-After.
Attachment uploads are budgeted in megabytes rather than requests, charged
from the declared
Content-Length before the body streams. /responding
spends from the read-receipt budget and the typing budget in one call.
Messages
On
/v1 the server splits the parts at ingest: each visible non-media part
commits as its own message, contiguous media parts commit as one media message,
and a voice memo always commits as its own message. On /v2 one send is one
message and the 32 is a per-message ceiling.
Streamed replies
A streamed reply commits one or more messages, so it obeys every message limit above, plus these transport ceilings. Breaching one commits nothing.Attachments
Message edit and unsend
Which operations a part accepts is per kind, and the server publishes the
answer on every message as
edit_capabilities. See the
message model.
Groups
See group conversations.
Handles
A handle is a mutable label over a stable participant id. See
Handles are labels, not identities.

