Skip to main content
Lettr rate limits API requests to ensure fair usage across all customers. In addition to request-level rate limits, the Send Email endpoint returns quota headers that track your daily and monthly email usage.

Rate Limit

The default rate limit is 3 requests per second per team, shared across all API keys belonging to the same team. If you exceed the limit, subsequent requests return 429 Too Many Requests until the window resets.

Rate Limit Headers

Every API response includes rate limit headers:
HeaderTypeDescription
X-RateLimit-LimitintegerMaximum number of requests allowed per second.
X-RateLimit-RemainingintegerHow many requests you have left in the current window.
X-RateLimit-ResetintegerUnix timestamp (in seconds) when the rate limit window resets.
Retry-AfterintegerHow many seconds to wait before retrying. Only present on 429 responses.

Sending Quota Headers

The Send Email endpoint returns additional headers that track your email sending quotas. These headers are present for free tier teams.

Daily Quota

HeaderTypeDescription
X-Daily-LimitintegerMaximum number of emails you can send per day.
X-Daily-RemainingintegerHow many emails you have left today.
X-Daily-ResetintegerUnix timestamp (in seconds) when the daily counter resets (midnight UTC).

Monthly Quota

HeaderTypeDescription
X-Monthly-LimitintegerMaximum number of emails you can send per billing month.
X-Monthly-RemainingintegerHow many emails you have left this month.
X-Monthly-ResetintegerUnix timestamp (in seconds) when the monthly counter resets (start of next billing month).

Error Codes

When you exceed a limit, the API returns a 429 response with one of these error codes:
Error CodeDescription
rate_limit_exceededToo many API requests. Slow down and retry after the Retry-After period.
daily_quota_exceededDaily sending quota exceeded (free tier). Try again after midnight UTC.
quota_exceededMonthly sending quota exceeded. Upgrade your plan to continue sending.
429 Rate Limit Exceeded
{
  "message": "Rate limit exceeded. Please slow down your requests.",
  "error_code": "rate_limit_exceeded"
}
429 Daily Quota Exceeded
{
  "message": "Daily sending quota exceeded. Please try again tomorrow.",
  "error_code": "daily_quota_exceeded"
}
429 Monthly Quota Exceeded
{
  "message": "Sending quota exceeded. Upgrade your plan to continue sending.",
  "error_code": "quota_exceeded"
}