Skip to content

Rate Limits

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 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:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the current window
X-RateLimit-RemainingRequests remaining in the current window
Retry-AfterSeconds 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.

Sending limits vary by plan and are applied per organization:

PlanEmails/month
Free100
Starter10,000
Pro100,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.

  • 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"
}
}

RelayPost sends alerts when you approach your limits:

ThresholdAlert
80% of monthly limitWarning notification
90% of monthly limitUrgent notification
100% of monthly limitSends blocked until next period or upgrade

If you consistently hit limits, upgrade your plan from Settings → Billing in the dashboard.

  • 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_at field to spread sends over time
  • Implement exponential backoff when you receive 429 responses

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.

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.