May 7, 2026 · Developer Guide

E-Signature API Rate Limits: What Every Developer Should Know

Hit a 429 and your contract never arrives. Here's how to build retry logic that never drops a document — with rate limits from 6 providers compared side-by-side.

Michael Beckett
Michael Beckett

Founder, Signbee

TL;DR

Rate limits vary wildly across e-signature APIs. DocuSign allows 1,000 calls/hour (~17/min). Signbee allows 1,000/min on paid plans. Without proper retry logic, a single 429 means a contract never reaches the signer. We compared 6 providers and built a retry pattern that handles 429s, 500s, and network failures.

Why rate limits matter for e-signatures

Unlike a failed search query or a broken analytics event, a failed e-signature API call means a real document never reaches a real person. An NDA that doesn't arrive delays a deal. An offer letter that silently fails means a candidate hears nothing. A HIPAA consent form that drops means a patient can't be treated.

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

ProviderSend limitStatus check limit
Signbee (free)100/min200/min
Signbee (paid)1,000/min5,000/min
DocuSign1,000/hour1,000/hour
HelloSign100/min150/min
PandaDoc300/min600/min
BoldSign300/min500/min

For a deeper comparison of integration complexity and pricing, see our full comparison of the 6 best e-signature APIs.

The retry pattern that never drops a document

JavaScript — rate-limit-aware fetch wrapper
async function sendWithRetry(url, options, maxRetries = 3) {
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
    const res = await fetch(url, options);

    if (res.ok) return res.json();

    if (res.status === 429) {
      // Rate limited — respect Retry-After header
      const retryAfter = parseInt(
        res.headers.get("Retry-After") || "5", 10
      );
      console.warn(`Rate limited. Waiting ${retryAfter}s...`);
      await new Promise((r) => setTimeout(r, retryAfter * 1000));
      continue;
    }

    if (res.status >= 500 && attempt < maxRetries) {
      // Server error — exponential backoff
      const delay = Math.pow(2, attempt) * 1000;
      console.warn(`Server error ${res.status}. Retry in ${delay}ms`);
      await new Promise((r) => setTimeout(r, delay));
      continue;
    }

    // Client error (4xx) — don't retry
    throw new Error(`${res.status}: ${await res.text()}`);
  }

  throw new Error("Max retries exceeded");
}

// Usage
const result = await sendWithRetry(
  "https://signb.ee/api/v1/send",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Authorization": "Bearer YOUR_API_KEY",
    },
    body: JSON.stringify({
      markdown: "# NDA\n\nTerms here...",
      recipient_name: "Jane Smith",
      recipient_email: "jane@example.com",
    }),
  }
);

Common rate limit mistakes

MistakeConsequence
No retry logicDocuments silently fail
Ignoring Retry-AfterHammering the API → IP ban
Promise.all for batchesOne 429 aborts all docs
No concurrency limit500 simultaneous requests
No monitoringDon't know docs are failing

Monitoring rate limit health

Track three metrics in production:

429 rate (should be)<1%
Retry success rate (should be)>99%
Dead letter queue size (should be)0
Avg response time (Signbee)<2s
Avg response time (DocuSign)3-5s

Frequently Asked Questions

What are e-signature API rate limits?

Rate limits define how many API calls you can make in a given time window. Exceeding them returns a 429 status code. Without retry logic, the document send silently fails.

What happens when you hit a rate limit?

You receive a 429 Too Many Requests response, usually with a Retry-After header. Your code should pause for the specified duration and retry. Without handling, the document never reaches the signer.

Which provider has the highest rate limit?

Signbee offers 1,000/min on paid plans — roughly 60x more throughput than DocuSign's 1,000/hour. See our full provider comparison.

Never drop a document — 5 free docs/month, 100 req/min.

Last updated: May 7, 2026 · Michael Beckett is the founder of Signbee and B2bee Ltd.

Related resources