How rate limiting works
The Mandate API enforces per-agent rate limits to protect service stability. Limits are tracked per runtime key. When you exceed the limit, the API returns a429 Too Many Requests response with a Retry-After header.
Default limits
| Endpoint Category | Rate Limit | Window |
|---|---|---|
Validation (/validate, /validate/raw) | 60 requests | per minute |
Status polling (/intents/{id}/status) | 120 requests | per minute |
Event posting (/intents/{id}/events) | 30 requests | per minute |
Registration (/agents/register) | 10 requests | per minute |
| Dashboard API | 120 requests | per minute |
Response headers
Every API response includes rate limit headers:| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the current window |
Retry-After | Seconds to wait before retrying (only on 429 responses) |
429 response format
Retry-After header contains the number of seconds to wait.
Retry strategy
Use exponential backoff when you receive a 429 response:Next Steps
Error Codes
Full HTTP status code reference and error response format.
API Overview
Base URL, authentication, and endpoint summary.