Daily request quota
Each workspace has a daily cap on successful API requests (HTTP2xx responses). Failed requests do not count toward the quota.
When the daily quota is exhausted, the API returns
429 Too Many Requests with body {"error":"quota limit reached"}.
Requests made by installed vibe apps on behalf of end users are exempt from the daily quota.
Burst rate limit
Each authenticated user also has a short-term token-bucket limit that prevents request spikes.
When the burst limit is hit, the API returns
429 Too Many Requests with a structured error body (code: rate_limit_exceeded).
Response headers
Every Platform API response includes headers for both limits. Values reflect state after the current request is processed (for successful quota-eligible requests, the daily counter includes the request you just made).Daily quota
Burst rate limit
Example
429, X-Assembly-Quota-Remaining is 0. On a burst-limit 429, X-RateLimit-Remaining is 0 and Retry-After is included.
Best practices
- Read quota headers on every response and back off before
Remainingreaches zero. - Treat
429as retryable: honorRetry-Afterfor burst limits and wait untilX-Assembly-Quota-Resetfor daily quota exhaustion. - Spread bulk operations over time instead of firing large
Promise.allfan-outs against the API.