Skip to main content

docs ci codecov pypi license

Flask-Limiter provides rate limiting features to flask applications.

It allows configuring various backends to persist the rate limits, which is provided by the limits library.

Quickstart

Add the rate limiter to your flask app. The following example uses the default in memory implementation for storage.

from flask import Flask
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address

app = Flask(__name__)
limiter = Limiter(
    app,
    key_func=get_remote_address,
    default_limits=["2 per minute", "1 per second"],
)

@app.route("/slow")
@limiter.limit("1 per day")
def slow():
    return "24"

@app.route("/fast")
def fast():
    return "42"

@app.route("/ping")
@limiter.exempt
def ping():
    return 'PONG'

app.run()

Test it out. The fast endpoint respects the default rate limit while the slow endpoint uses the decorated one. ping has no rate limit associated with it.

$ curl localhost:5000/fast
42
$ curl localhost:5000/fast
42
$ curl localhost:5000/fast
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>429 Too Many Requests</title>
<h1>Too Many Requests</h1>
<p>2 per 1 minute</p>
$ curl localhost:5000/slow
24
$ curl localhost:5000/slow
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>429 Too Many Requests</title>
<h1>Too Many Requests</h1>
<p>1 per 1 day</p>
$ curl localhost:5000/ping
PONG
$ curl localhost:5000/ping
PONG
$ curl localhost:5000/ping
PONG
$ curl localhost:5000/ping
PONG

For more details read the docs

Download files

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

Source Distribution

Flask-Limiter-2.4.5.1.tar.gz (254.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Flask_Limiter-2.4.5.1-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

Details for the file Flask-Limiter-2.4.5.1.tar.gz.

File metadata

  • Download URL: Flask-Limiter-2.4.5.1.tar.gz
  • Upload date:
  • Size: 254.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for Flask-Limiter-2.4.5.1.tar.gz
Algorithm Hash digest
SHA256 2e2cfb42758f71531312e530e16e431a399dc428babb45f5925a2dd17141fb8d
MD5 1b7ef8258a035e2bdb3f7f378c2d41bb
BLAKE2b-256 86f0f6ecc1acf92a40771f6a4bb20715630009373d1fbbea403f10406f5bbb57

See more details on using hashes here.

File details

Details for the file Flask_Limiter-2.4.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for Flask_Limiter-2.4.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0cef4e958d10ba8aff26777dbff31fc3a7c8feef6a593f27359d36db4c754909
MD5 124081a1d73ac4cc39411b1447c14990
BLAKE2b-256 46732574d906f514df0001347863779742b15c16337886d1e28af4a490ab8720

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

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