MCP rate limits and quotas
Limits on every connection, enforced server-side. The sending limits are yours to adjust inside a ceiling Spun sets; the rest are fixed. Rate-limited responses carry a retry_after so well-behaved agents back off instead of hammering.
| What | Limit |
|---|---|
| Monthly connected-AI reads (per org, by plan) | 300 during the 7-day trial, 2,000 per month on Starter, unlimited within fair rate limits on Pro and Max; only reads that return your data count - sends, edits and other actions, and status and permission checks, never count; reads never use AI credit |
| Send proposals | 10 per minute per key; at most 20 awaiting approval per connection (adjustable, 5 to 100), 100 per org |
| Message deliveries | 6 per minute and 200 per day per connection (adjustable, see below); 20 per minute and 1,000 per day per org (fixed) |
| Internal writes (tasks, labels, statuses) | 60 per minute per key |
| Media reads | 200 fetches and 50 MB per day per key; images up to 1.5 MB inline; 5 fetches per message per day |
| Media uploads | 30 upload handles per hour per key; each single-use, valid 30 minutes |
| Message edits | Within WhatsApp’s 15-minute edit window, and only messages the same key sent |
| Approvals & drafts | Pending approvals expire after 24 hours (adjustable, 1 to 168 hours); drafts are kept 14 days |
| Different chats | AI messages to more than 15 different chats within 10 minutes (adjustable, 5 to 60), counted across all AI connections of the number, pause AI sending for that number |
| Different chats before approval | When AI apps send without approval: after AI messaged 8 different chats within 10 minutes (adjustable, 1 to 59), a message to yet another chat waits for a person to approve it |
| First message to a new chat | When AI apps send without approval: a message to a one-to-one chat with no earlier messages waits for a person to approve it (an administrator can change this) |
Sending limits you control
An administrator sets the sending limits in Spun under Settings, AI Assistant (MCP), Limits. Choose a sending pace, or type your own numbers inside the allowed range.
| Limit | Normal | Aggressive | Very aggressive | Range |
|---|---|---|---|---|
| Messages per minute, per connection | 6 | 12 | 20 | 1 to 20 |
| Messages per day, per connection | 200 | 500 | 1,000 | 10 to 1,000 |
| Ask for approval after this many different chats, for the whole number | 8 | 20 | 40 | 1 to 59 |
| Different chats per 10 minutes, for the whole number | 15 | 30 | 60 | 5 to 60 |
| Messages waiting for approval, per connection | 20 | 50 | 100 | 5 to 100 |
| Approval expires after (hours) | 24 | 24 | 24 | 1 to 168 |
| Resume by itself after a pause (minutes, 0 = wait for an administrator) | 0 | 30 | 15 | 0 to 1,440 |
A connection is one connected AI app or key. Disconnecting an app and connecting it again does not reset its counts, and does not lift a pause.
New numbers start locked on Normal. A number can raise its limits once it has been connected for 30 days with no ban or number replacement in the last 30 days, is not restricted by WhatsApp and is not at high risk. Until then the limits can be lowered but not raised, and the Limits section shows the date they open. Spun support can unlock a number earlier. A higher limit always carries a higher chance that WhatsApp restricts the number.
Two guards when AI apps send without approval
Both guards matter only when autonomous sending is on. With two-step approval every AI message already waits for a person. An administrator changes both under Settings, AI Assistant (MCP), Limits.
Ask for approval after this many different chats. Once AI has messaged this many different chats within 10 minutes, a message to yet another chat is not sent. It waits in AI Sends for a person to approve it. A chat AI already messaged in those 10 minutes is not another chat, so an ongoing conversation continues. The count is the same one the pause uses: all AI connections of the number together. The number must be lower than Different chats per 10 minutes, so AI asks a person before it reaches the pause.
First message to a new chat. This choice decides what happens when AI wants to message a one-to-one chat that has no earlier messages with this number:
| Choice | What happens |
|---|---|
| Ask for approval (default) | The message waits in AI Sends until a person approves it. |
| Send it like any other message | The message goes out without waiting for a person. This choice cannot be saved while the limits are locked. |
| Never send it | AI may not send the first message to a chat at all, and it cannot be approved either. A person writes the first message. The AI app receives the code first_contact_denied. |
Messages to people who never wrote to the number are what WhatsApp restricts or bans numbers for most often. Group chats are not covered by this choice: the group limits under Settings, WhatsApp, Sending safety apply to them.
When a guard holds a message, the AI app receives the status pending_approval with the request id and a note that says why the message waits and that an administrator can change the setting under Limits. Nothing is lost: approve the message in AI Sends and it is sent.
When AI sending is paused
Messaging many different chats in a short time is the pattern WhatsApp restricts numbers for. When AI goes over the different-chats limit, Spun pauses AI sending for that number: every connected AI app and Weave together. Messages typed by hand in the inbox are never paused.
- The AI app receives the code
kill_switch_engagedwith a sentence that says what was limited and where to resume. The account is not blocked. - Administrators see a banner at the top of the inbox and a pause card under Limits, and the workspace administrator gets an email with a link straight to it.
- Press Resume AI sending on the pause card. An administrator can resume up to 3 times in 24 hours; after that, write to Spun support.
- If "Resume by itself after a pause" is above 0 and the limits are unlocked, sending starts again on its own after that many minutes.
get_my_permissionsandget_usage_summaryreport the limits in force, including the approval number and the first-message choice, how many different chats were used in the current 10 minutes, and whether sending is paused. From 80 percent of the different-chats limit, send results carry a warning.
To avoid pauses without raising a limit, have the AI message fewer different chats at a time.
Approving many messages at once
When a person approves more messages in AI Sends than the per-minute limit allows, the extra ones are not refused. They show "Waiting: sending pace" and go out by themselves in the next minute. The daily limit works differently: a message approved after the daily limit is reached stays in the queue until the next day or until the limit is raised.
Approving messages never pauses AI sending. When an approved message would take the number past Different chats per 10 minutes, it also shows "Waiting: sending pace" and goes out by itself when the 10 minutes allow it.
The What got limited list under Limits shows every time a limit blocked, held or paused an AI message in the last 30 days. More about AI sending limits.
Limits are versioned policy: every outbound decision records the policy version and the limits it was made under, and defaults may be tuned as the platform learns. Duplicate submissions are deduplicated by idempotency key, so a retried request never sends twice.
Make the allowance go further: a period report reads every message of a day and a chat digest keeps a standing question answered as messages arrive, and reading either prepared answer is one call however many messages it covers - the cheapest way to get a daily report across hundreds of groups into ChatGPT or Claude. See reports, digests and the MCP Dashboard.