Skip to main content

Ratelimit Python requests, but only if they're not served from the cache

Project description


Ratelimit requests in Python, but only if they're not served from the cache

This package combines the best bits of the ratelimit module and the requests_cache module. It will rate limit outgoing requests, but not count invocations if a request can be served from the cache.


import requests
import requests_cache
from ratelimit import sleep_and_retry
from ratelimit_requests_cache import limits_if_not_cached

@limits_if_not_cached(calls=1, period=1)
def get_from_httpbin(i):
    return requests.get(f'{i}')

# Enable requests caching

# Notice that only the first ten requests will be ratelimited to 1 request / second
# After that, it's a lot quicker since requests can be served from the cache
# and the ratelimiter does not engage
for i in range(100):
    get_from_httpbin(i % 10)


python3 -m pip install ratelimit_requests_cache

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ratelimit_requests_cache-2023.10.30.tar.gz (2.6 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page