Get started
Rate limits & quotas
The API allows 10 requests per second per account by default. Plans set daily and monthly sending quotas; deliveries are paced per account.
Three different limits apply to an account. They protect the platform and your sender reputation, and each one fails in its own, recognizable way.
| Limit | Applies to | When exceeded |
|---|---|---|
| Request rate | API requests per second, per account | 429 rate_limit_exceeded with Retry-After |
| Sending quotas | Recipients accepted per UTC day and per month | 429 daily_quota_exceeded / monthly_quota_exceeded |
| Delivery pacing | How fast accepted mail leaves the MTA | Nothing fails: deliveries are spread over time |
Request rate
The default is 10 requests per second per account, with bursts up to twice that. The limit is shared by every API key and dashboard session of the account. When you exceed it:
HTTP/1.1 429 Too Many Requests
Retry-After: 1
Content-Type: application/json
{"statusCode":429,"name":"rate_limit_exceeded","message":"Too many requests. Please limit the number of requests per second."}Wait for the number of seconds in Retry-After, then retry. There are no ratelimit-* headers.
To send many emails, use POST /emails/batch: one request carries up to 100 emails, so 10 requests per second can submit up to 1,000 emails per second. If you need a higher request rate, contact support.
Sending quotas
Quotas count accepted recipients: an email to three recipients uses three. Recipients that are on your suppression list are not delivered and do not count.
- The daily quota resets at 00:00 UTC.
- The monthly quota follows the UTC calendar month.
- A batch that would go over the daily quota is rejected as a whole.
- Quota errors do not include
Retry-After. Broadcasts that hit a quota pause and resume automatically the next UTC day (Broadcasts).
Plans
| Plan | Emails per month | Daily cap | Sending domains |
|---|---|---|---|
| Free | 10,000 | 500 | 1 |
| Starter | 50,000 | — | 3 |
| Growth | 250,000 | — | 10 |
| Scale | 1,000,000 | — | Unlimited |
Prices and overage are on pidgely.com/#pricing. New accounts start in a sandbox on the Free plan: the sandbox applies the Free plan's quotas and domain limit, with no other restriction on what you can send or to whom.
Delivery pacing
Accepting an email and delivering it are separate steps. Each account delivers at its own contracted rate: a burst from one customer is spread over time instead of starving everyone else, and receiving servers see a steady stream. You don't need to throttle on your side: send as fast as the request rate allows and Pidgely schedules the deliveries.
Reputation guard
To protect your domain and the shared IPs, sending is paused automatically when, over the last 7 days:
- the bounce rate is above 4% (evaluated once at least 200 messages were delivered or bounced), or
- the complaint rate is above 0.1% (evaluated once at least 1,000 messages were delivered).
While paused, new sends get 403 validation_error (sending is paused for this account: …) and queued messages wait. Clean your list (see Deliverability) and contact support to resume.