Skip to main content

Current Rate Limits

Rate limits protect against abuse and ensure system stability.

How It Works

  • API Endpoints (/api/v1/*): Rate limited by API key after authentication
  • Health Check (/api/health): Rate limited by IP address before any processing
  • Algorithm: Sliding window (distributed evenly across the time period)

Rate Limit Headers

Every API response includes rate limit information in the headers:

Rate Limit Exceeded Response

When you exceed the rate limit, you’ll receive a 429 status code:
The response also includes a Retry-After header with seconds until you can retry:

Best Practices

1. Monitor Rate Limit Headers

JavaScript

2. Implement Exponential Backoff

Python

3. Respect Rate Limit Reset Time

Python

4. Batch Requests Efficiently

Instead of making 1000 individual requests, use bulk endpoints:

5. Distribute Load Over Time

Python

Advanced Rate Limiting Strategies

Request Queue with Rate Limiting

JavaScript

Need Higher Limits?

If your use case requires higher rate limits:
1

Assess Your Needs

Document your expected request volume and use case
2

Contact Us

Email support@lupitor.com with your requirements
3

Review Options

We’ll work with you to find the right limits for your needs
4

Upgrade

Higher limits may be available on enterprise plans

Common Scenarios

High-Volume Lead Import

If importing thousands of leads:
  1. Use bulk endpoint (POST /leads/bulk) - 1000 leads per request
  2. Batch your imports - 10 bulk requests per minute = 10,000 leads/min
  3. Run during off-hours if possible
  4. Monitor progress and handle errors gracefully

Real-Time Integrations

For webhook-triggered lead creation:
  1. Queue incoming webhooks instead of immediate API calls
  2. Process queue at controlled rate (90-95 requests/min)
  3. Leave headroom for retries and other operations
  4. Implement circuit breakers for cascading failures

Analytics Dashboards

For dashboards that query the API:
  1. Cache responses for at least 1 minute
  2. Aggregate data on the backend
  3. Use webhooks for real-time updates instead of polling
  4. Implement request debouncing for user interactions

Monitoring Rate Limits

Track your usage to avoid surprises:
Python