Rate Limiting

Overview

📘

System Identification

Please ensure you have registered your system with Follow Up Boss as indicated in the Identification section.

📘

Rate Limit Increase

If your system needs bigger limits, please email [email protected] explaining your use case.

Rate limiting is enforced by the API and is based on a sliding 10 second window.

Within every response from our API, the following headers indicate the current limit, remaining requests before reaching the limit, the window of time evaluated in seconds, and the context.

Additionally, we indicate the context for which this rate limit applies. Any given endpoint will only be subject to one context. For example /v1/events may have an 'events' context, for which there may be stricter limits, requests to this endpoint would not affect other contexts, such as 'global'.

HTTP/1.1 200 OK
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 156
X-RateLimit-Window: 10
X-RateLimit-Context: global

Systems that exhaust their limits will receive a 429 (Too Many Requests) response code, and a Retry-After header.

If you receive a 429 response code, your request was not processed and you will have to retry the request. The Retry-After header indicates how long to wait (in seconds) before retrying (or sending any other request).

HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Window: 10
X-RateLimit-Context: global
Retry-After: 8

Default Settings

Here are the contexts available and their limits as they are currently set. We will make changes as needed, so always check the headers for the most up-to-date values applicable to your requests.

ContextLimitEndpoints associatedMethod
POST.eventsunlimited*/v1/eventsPOST
events20/v1/eventsGET
global250N/AN/A

If you are making requests without a valid X-System-Key header, the allowed rate is much lower:

ContextLimitEndpoints associatedMethod
POST.eventsunlimited*/v1/eventsPOST
events10/v1/eventsGET
global125N/AN/A

You may in some cases also receive a 429 (Too Many Requests) even if you still have requests remaining. Perhaps because we temporarily have less capacity than usual, or we notice an exceptionally high number of requests from a particular IP address or system.

Please make sure your system respects the 429 header even if X-RateLimit-Remaining shows you should have requests remaining.