How the limit is counted
- Per connection. Every connection has its own budget. A thousand connections can each make 100 requests a minute at the same time.
- Across all three APIs. Proxy, Unified API and MCP requests on the same connection share one budget.
- Per request, not per attempt. Automatic retries happen inside one request and don’t use extra budget. (They do count toward usage.)
- Every MCP message counts.
initialize,tools/listand eachtools/callare separate requests.
When you go over
Once a connection has made 100 requests in 60 seconds, the next request is rejected with429 and never reaches the provider. Other connections aren’t affected.
On the Proxy and MCP the response is:
429, with the Unified API’s error envelope.
BundleUp’s limit vs the provider’s
Providers have their own rate limits, often per user, per app, or per workspace. You can get a429 from either side:
Staying under the limit
- Spread out bulk work. For a sync over many records, queue the work and process it at a steady rate per connection (for example, one request every 700 ms) instead of all at once.
- Use bigger pages. Fetch 100 items per request instead of 10.
- Cache stable data. User profiles, channel lists and project lists rarely change between requests.
- Don’t poll faster than you need to. Prefer the provider’s webhooks where it offers them.

