Rate limiting

Rate limiting is the act of limiting how many API calls can be made in a given period to a server. This helps to protect against attacks as well as ensure that a single customer cannot monopolize all of the bandwidth.

🚧

Rate limit is set to

100 API calls every 10 seconds

If you perform more than 100 API calls per 10 seconds, it will return the error code 429 Too Many Requests and you will be blocked from using ALL endpoints for 10 seconds.

When configuring your retry logic, we recommend that you implement it with a rate limit + backoff. i.e. If a call to Notabene does not return the expected response then retry, but retry steadily over time with exponential backoff.

For example:

import requests
from urllib3.util.retry import Retry

retry_strategy = Retry(
    total=3,
    backoff_factor=1,
    status_forcelist=[
        429,
        500,
        502,
        503,
        504,
    ],
    allowed_methods=[
        "POST",
        "GET",
        "DELETE",
    ],
)
requests_session = requests.Session()
requests_http_adapter = requests.adapters.HTTPAdapter(max_retries=retry_strategy)
requests_session.mount(prefix="https://", adapter=requests_http_adapter)