Skip to main content

Limits

Rate limits are tracked per API key. Every response includes the current rate limit status:

When rate limited

You’ll receive a 429 Too Many Requests response:
Wait until the reset Unix timestamp before making more requests.

Pagination limits

Best practices

Use webhooks instead of polling

Instead of calling GET /rankings/keywords every 5 minutes to check for changes, subscribe to the keywords.updated webhook and only fetch data when positions actually update.

Batch your requests

When syncing multiple data types for a project, fetch them in parallel:
This uses 3 of your rate limit instead of making sequential calls that take longer.

Cache responses

Store API responses in your database and serve your UI from the cache. Only re-fetch when:
  • A webhook event signals new data is available
  • The user manually requests a refresh
  • A scheduled sync interval passes (e.g., daily for backlinks which don’t have webhooks yet)

Use pagination efficiently

For large datasets, use limit and offset to page through results: