Rate limits
Pushrail rate-limits requests per tenant. Limits scale with plan tier; consult your dashboard for the values applied to your tenant.
Response headers
Every response includes:
| Header | Description |
|---|---|
| X-RateLimit-Limit | Requests allowed in the current window. |
| X-RateLimit-Remaining | Requests left in the window. |
| X-RateLimit-Reset | Unix epoch seconds when the window resets. |
429 behavior
When a tenant exceeds its limit, the API returns 429 Too Many Requests with
the standard error envelope:
{ "code": "rate_limited", "message": "Rate limit exceeded. Retry after 12s." }
A Retry-After header is included with the number of seconds to wait. Clients
should respect it and use exponential backoff for repeated 429s.
Ingestion vs. control plane
Ingestion endpoints (POST /events, POST /events/batch) have a separate,
much higher limit than control-plane endpoints (destinations, routing rules,
schemas). High-volume vendors should batch with POST /events/batch rather
than firing single-event requests.