Skip to main content
The Platform API applies two independent limits. Both are reported on every response through HTTP headers so you can monitor consumption without a separate status endpoint.

Daily request quota

Each workspace has a daily cap on successful API requests (HTTP 2xx 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

On a daily-quota 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 Remaining reaches zero.
  • Treat 429 as retryable: honor Retry-After for burst limits and wait until X-Assembly-Quota-Reset for daily quota exhaustion.
  • Spread bulk operations over time instead of firing large Promise.all fan-outs against the API.