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. 1

    Check your provider's rate limit (Signbee: 100/min free, 1,000/min paid)

  2. 2

    Add a try/catch around every API call that handles 429 responses

  3. 3

    Parse the Retry-After header to know how long to wait

  4. 4

    Implement exponential backoff for 500-series server errors (2s, 4s, 8s)

  5. 5

    Monitor your 429 rate in production — target below 1%

Try it with curl

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.