SMTP rate limits
If you send email through EffiLink’s SMTP interface, the following connection and message-size constraints apply:If you need to send emails larger than 10 MB, contact EffiLink Support to discuss options for your account.
Web API rate limits
REST API limits are enforced per endpoint. Depending on the endpoint, limits are expressed as requests per hour, requests per second, or both.- A per-hour limit caps the total number of requests you can make to that endpoint within any rolling 60-minute window.
- A per-second limit caps the instantaneous burst rate to prevent traffic spikes.
- Where both apply, both limits must be satisfied simultaneously.
Handling HTTP 429 Too Many Requests
When you exceed a rate limit, the API returns:429 responses gracefully rather than treating them as fatal errors. A recommended retry strategy:
- Detect the 429 — Check the HTTP status code on every response.
- Back off — Wait before retrying. Start with a short delay (e.g. 1 second) and increase it exponentially on repeated
429responses (e.g. 2 s, 4 s, 8 s). - Respect the reset window — If the response includes a
Retry-Afterheader, wait at least that many seconds before your next attempt. - Resume — Once the rate window resets, resume normal request flow.
Tips for staying within limits
- Batch your sends. The
/v5/sms/sendsendpoint accepts up to 100 recipients per request. Grouping recipients reduces the total number of API calls required. See Batch Personalized SMS for details. - Schedule bulk operations off-peak. If you need to make a high volume of calls (e.g. syncing contacts or triggering campaigns), spread them over time rather than issuing them all at once.
- Cache read responses. For endpoints like
/v5/verified_sendersor/v5/contacts, cache the results locally and refresh only when your data changes rather than polling on a tight loop. - Monitor your usage. Keep track of your request rate in your application layer so you can proactively throttle before hitting platform limits rather than reacting to
429errors. - Use the transactional endpoint judiciously. At 10 requests/second,
/v5/transactionalhas a strict burst cap. Queue outgoing transactional messages and dispatch them at a controlled rate to avoid unexpected rejections.