Rate Limits
What Is Email API Rate Limiting?
Section titled “What Is Email API Rate Limiting?”Email API rate limiting controls how many requests or emails a sender can submit within a given time window. Rate limits protect shared infrastructure from abuse, prevent accidental email floods, and help maintain sender reputation by enforcing gradual sending patterns that inbox providers expect.
RelayPost enforces rate limits to protect deliverability and prevent abuse. Limits are applied per organization and per API key.
API rate limits
Section titled “API rate limits”API request rate limits are derived from your organization’s hourly email sending limit. The per-minute request cap equals your hourly limit divided by 60 (rounded up). For example, the default hourly limit of 1,000 allows 17 API requests per 60-second window. This applies to all /api/v1/* endpoints.
Every 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) |
When you exceed the rate limit, the API returns:
{ "error": { "code": "RATE_LIMITED", "message": "API key rate limit exceeded" }}Use the Retry-After header to determine when to retry.
Email sending limits
Section titled “Email sending limits”Sending limits vary by plan and are applied per organization:
| Plan | Emails/month |
|---|---|
| Free | 100 |
| Starter | 10,000 |
| Pro | 100,000 |
All organizations share the same default API request rate: 1,000 requests per hour (approximately 17 per minute). Hourly and daily limits can be adjusted per organization by contacting support.
How limits work
Section titled “How limits work”- Monthly limit — total emails you can send per billing period
- Hourly request limit — maximum API requests in any rolling 60-minute window (default 1,000)
- Daily request limit — maximum API requests in any rolling 24-hour window (default 10,000)
When you hit an email sending limit, the API returns:
{ "error": { "code": "LIMIT_EXCEEDED", "message": "Organization email sending limit exceeded" }}Usage alerts
Section titled “Usage alerts”RelayPost sends alerts when you approach your limits:
| Threshold | Alert |
|---|---|
| 80% of monthly limit | Warning notification |
| 90% of monthly limit | Urgent notification |
| 100% of monthly limit | Sends blocked until next period or upgrade |
Upgrading
Section titled “Upgrading”If you consistently hit limits, upgrade your plan from Settings → Billing in the dashboard.
Tips for staying within limits
Section titled “Tips for staying within limits”- Use suppression lists to avoid sending to invalid addresses
- Batch campaign sends across multiple hours instead of all at once
- Monitor your usage dashboard to spot unexpected spikes
- Use the
scheduled_atfield to spread sends over time - Implement exponential backoff when you receive 429 responses
Frequently Asked Questions
Section titled “Frequently Asked Questions”What is the RelayPost API rate limit?
Section titled “What is the RelayPost API rate limit?”API request rate limits are derived from your organization’s hourly limit. The default is 1,000 requests per hour (approximately 17 per 60-second window). This applies to all /api/v1/* endpoints. When exceeded, the API returns a 429 status code with a Retry-After header.
What happens when I hit the email sending limit?
Section titled “What happens when I hit the email sending limit?”When you reach your plan’s email sending limit (monthly, hourly, or daily), the API returns a LIMIT_EXCEEDED error. Emails are blocked until the limit resets or you upgrade your plan.
How do I avoid hitting rate limits?
Section titled “How do I avoid hitting rate limits?”Use suppression lists to avoid sending to invalid addresses, batch campaign sends across multiple hours, implement exponential backoff on 429 responses, and use the scheduled_at field to spread sends over time.