Skip to main content
The Lusha API enforces rate limits to ensure fair usage and stable performance for all customers. Limits are applied per account, and some are tracked over multiple windows (per second, per minute, per hour, and per day). If your application exceeds a limit, the API returns a 429 Too Many Requests response.

Limits by endpoint group

Rate limits are applied at the account level, not per API key. If multiple systems share the same account, their requests count against the same quota. Higher-tier plans may have higher daily and hourly quotas - contact your account manager if you need a limit increase.

Rate limit response headers

Every response includes headers you can use to track your current usage against each rate limit window:
Poll these headers instead of guessing when you are close to a limit - they tell you exactly how much headroom is left in each window.

429 Too Many Requests

When you exceed a rate limit, the API returns:
The message reflects which limit was hit - for example, a per-second/per-minute burst, an hourly quota, a daily quota, or a trial account limit. Your client must detect the 429 status code and pause before retrying regardless of the exact message.

Handling rate limit errors

Implement exponential backoff with jitter when retrying after a 429. Start with a short wait (for example, 1 second), double it on each subsequent retry, and add a small random delay to avoid synchronized retries from multiple clients.
A minimal retry pattern looks like this:
Additional best practices:
  • Batch requests thoughtfully. If you need to enrich thousands of records, spread requests over time rather than sending them all at once.
  • Monitor the account usage endpoint sparingly. Its limit is stricter (5 requests per minute), so poll it infrequently - for example, once at the start of a job rather than before every API call.
  • Distinguish 429 from other errors. Do not retry 400 or 401 responses; those indicate problems with your request or credentials that retrying will not fix.

Next steps

If your integration encounters unexpected errors beyond rate limiting, review the full list of error codes to understand what each HTTP status code means and how to respond.