Skip to main content

Troubleshooting

Rate limit exceeded

How to handle and avoid rate limit errors.

Understanding rate limits

Authenticated requests are limited per API key and per account plan. A shared platform throttle also protects overall service stability.

  • Free: 10 requests/minute
  • Starter: 60 requests/minute
  • Professional: 300 requests/minute
  • Business: 1,000 requests/minute
  • Enterprise: 5,000 requests/minute

Implementing backoff

When you receive a 429 error, implement exponential backoff:

async function verifyWithBackoff(email, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await verify(email);
    } catch (err) {
      if (err.status === 429) {
        const wait = Math.pow(2, i) * 1000; // 1s, 2s, 4s
        await sleep(wait);
      } else {
        throw err;
      }
    }
  }
}

Best practices

  • Use batch endpoints instead of single requests
  • Back off with exponential, jittered delays on a 429
  • Queue requests and process at a sustainable rate
  • Cache results to avoid re-verifying same emails

Need higher limits?

Upgrade your plan or contact sales for custom limits.

Something wrong or missing here?

Tell us what to fix. Your email goes to the support team with this article's title already filled in.

Send feedback

Still need help?

Email support@kawaa.com. If your question is about a bulk job, include its job ID from the dashboard.

Contact support