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.

Compatibility

The 2.x versions of the extension only supports Pythons versions >= 3.7 and Flask >= 2.0.

If you are looking for support for older versions, please refer to the 1.x branch

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

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.1.1.tar.gz (244.0 kB view details)

Uploaded Source

Built Distributions

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

Flask_Limiter-2.1.1-py3.9.egg (28.0 kB view details)

Uploaded Egg

Flask_Limiter-2.1.1-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: Flask-Limiter-2.1.1.tar.gz
  • Upload date:
  • Size: 244.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for Flask-Limiter-2.1.1.tar.gz
Algorithm Hash digest
SHA256 574c0503d63ec5ffbbd077e7c4b5cf61079844ab1c5db7f9201bdabe191b3c04
MD5 50d8e5599945170e72532f8630fe1356
BLAKE2b-256 7bd7a048baafd737fe689274e9c9158e9fea89c02624d00dd739dfd1a9a7b18d

See more details on using hashes here.

File details

Details for the file Flask_Limiter-2.1.1-py3.9.egg.

File metadata

  • Download URL: Flask_Limiter-2.1.1-py3.9.egg
  • Upload date:
  • Size: 28.0 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for Flask_Limiter-2.1.1-py3.9.egg
Algorithm Hash digest
SHA256 385baaeb731e51a6f89f8db8e815f216e94dc61531c1fffe4b00f07a4d707909
MD5 b5e4061cbce9228b1d6eb2bc13850aba
BLAKE2b-256 f8cd81c4261a2241f93d3f2c171273c401808f62697330d964d1f870e47f5e52

See more details on using hashes here.

File details

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

File metadata

  • Download URL: Flask_Limiter-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for Flask_Limiter-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 281de2746de0a39e62a4d0aa4359e5d84a065a2cc21831455ea11f6e9b2d8948
MD5 4a5048a83276516dd52c1b2b61eaa6e4
BLAKE2b-256 3ccdb43b91d43cd50d600d8ee618cf5ef677e277ec1f25bb2362ffa01cd808dd

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