First of all, here is more information about our rate limit:
- Our rate limit is 600 requests every 10 minutes per company
- We have a burst limit that takes precedence over our rate limit which is 36 requests every 6 seconds
- When you exceed the rate limit, we will return a 429 error
- This rate limit is on a rolling 6 second and 10 minute window
What to do when you hit our rate limit and get a 429 error:
1. Check your headers. Do they follow the format below? Here I am using the example of retrieving my custom field IDs as an example. Please replace the URL with your endpoint.
curl -H "Content-Type: application/json" -X GET \
--header "X-PW-AccessToken:TOKEN" \
--header "X-PW-Application:developer_api" \
--header "X-PW-UserEmail:EMAIL" \
2. Is it possible you are hitting our burst limit? The burst limit is every 36 requests every 6 seconds.
3. Add some tracking in your code to check how often you hit our servers. That way you can build something on your end to throttle how often the calls are being made.
4. Here are some guides on how to handle rate limits:
5. In general, if you are using webhooks to move data between two systems, we recommend using a chron job that runs every night or every other night when there is less web traffic.
6. Here are some ideas on how to avoid the rate limit when bulk importing records: