Guide
How to Handle E-Signature API Rate Limits
When you exceed an e-signature API's rate limit, the server returns a 429 status code. Without retry logic, the document silently fails — meaning a contract never reaches the signer.
Steps
- 1
Check your provider's rate limit (Signbee: 100/min free, 1,000/min paid)
- 2
Add a try/catch around every API call that handles 429 responses
- 3
Parse the Retry-After header to know how long to wait
- 4
Implement exponential backoff for 500-series server errors (2s, 4s, 8s)
- 5
Monitor your 429 rate in production — target below 1%
Try it with curl
curl -X POST https://signb.ee/api/send \
-H "Content-Type: application/json" \
-d '{
"content": "# Your Document\n\nContent here...",
"senderName": "Your Name",
"senderEmail": "you@email.com",
"recipientName": "Recipient",
"recipientEmail": "recipient@email.com"
}'Legal validity
Electronic signatures are legally binding under the ESIGN Act (US), eIDAS Regulation (EU), and Electronic Communications Act (UK). Every Signbee document includes a SHA-256 tamper-proof certificate.
More details
Rate limits are the most common cause of silent e-signature failures in production. Your code looks fine. Your tests pass. But under load — during a batch send, a quarterly invoice run, or a busy enrollment period — you exceed the limit and documents start dropping.
Rate limits by provider: - Signbee (free): 100/min send, 200/min status - Signbee (paid): 1,000/min send, 5,000/min status - DocuSign: 1,000/hour (~17/min) - HelloSign: 100/min - PandaDoc: 300/min - BoldSign: 300/min
The retry pattern: 1. Make the API call 2. If 429: read Retry-After header, wait that many seconds, retry 3. If 500+: exponential backoff (2s, 4s, 8s), max 3 retries 4. If 4xx (not 429): don't retry — it's a client error (bad input) 5. After max retries: add to dead letter queue, alert team
Common mistakes: - No retry logic at all (documents silently fail) - Ignoring Retry-After header (hammering the API → IP ban) - Using Promise.all for batches (one 429 aborts all docs) - No concurrency limit (500 simultaneous requests) - No monitoring (don't know documents are failing)
Frequently asked questions
What is a 429 status code?
HTTP 429 means 'Too Many Requests'. The server is rate limiting your client. The response usually includes a Retry-After header telling you how many seconds to wait before retrying.
What happens if I don't handle rate limits?
The document send silently fails. No contract, NDA, or offer letter reaches the recipient. Your application may show 'sent' but the document was never actually delivered.
Which e-signature API has the highest rate limit?
Signbee offers 1,000/min on paid plans — roughly 60x more throughput than DocuSign's 1,000/hour.
Related resources
Try Signbee — free, no credit card.