Rate limits
Requests are limited per second and per month. When you exceed the monthly limit, credits (if any) are consumed automatically. Response headers expose current limits and remaining usage.
Response headers
X-RateLimit-Limit-Second— per-second capX-RateLimit-Remaining-Second— remaining this secondX-RateLimit-Limit-Month— monthly quotaX-RateLimit-Remaining-Month— remaining this monthX-API-Plan— your plan name
HTTP 429
Per-second limit:
json
{
"success": false,
"error": "rate_limit_exceeded",
"message": "Per-second limit of 25 req/s exceeded (startup plan).",
"upgrade_url": "https://freecustom.email/api/pricing"
}Monthly quota exhausted (no credits):
json
{
"success": false,
"error": "monthly_quota_exceeded",
"message": "Monthly quota of 250,000 requests exhausted.",
"hint": "Purchase request credits (never expire) or upgrade your plan.",
"credits_url": "https://freecustom.email/api/credits",
"upgrade_url": "https://freecustom.email/api/pricing"
}Use the Retry-After header (seconds) when present to back off.
Endpoint Costs
Most API endpoints cost 1 request. However, some advanced endpoints and features consume more requests due to heavier processing:
GET /v1/inboxes/{inbox}/otp: 3 requestsGET /v1/inboxes/{inbox}/timeline: 2 requestsGET /v1/inboxes/{inbox}/insights: 3 requestsGET /v1/inboxes/{inbox}/wait: 10 requests- WebSocket Push (Basic): 1 request
- WebSocket Push (OTP Present & Parsed): 2 requests
- Webhook Delivery (Basic): 2 requests
- Webhook Delivery (OTP Present & Parsed): 4 requests