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.2.0.tar.gz (244.1 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.2.0-py3.9.egg (29.5 kB view details)

Uploaded Egg

Flask_Limiter-2.2.0-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: Flask-Limiter-2.2.0.tar.gz
  • Upload date:
  • Size: 244.1 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.2.0.tar.gz
Algorithm Hash digest
SHA256 41490ae6ae49f96569fa4bdd32112e5ee180fef197b68d1503d74fe17cb1ff5d
MD5 d21b5e3f7e2d73d4cd12e3d47c0b3e4f
BLAKE2b-256 fda928836d65af87ac5fde48dd82a5e65f276883c3ee4a3fcc01ed2504d5922f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: Flask_Limiter-2.2.0-py3.9.egg
  • Upload date:
  • Size: 29.5 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.2.0-py3.9.egg
Algorithm Hash digest
SHA256 52ab35c78ccf67329f54a7e4d66036bc83537d5e4b6d434df3571c1136d97bc5
MD5 f33979d2bf86d5f26a76ed6a539a6901
BLAKE2b-256 e2e1abb4dde4d4b152d1f41a550aa598180b348ce4ec13ede408e61893ee92e0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: Flask_Limiter-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 14.5 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46cc74e79801dca98c1a2135c52e6c5af5a55de33f5ae6f7b866f40c2f4f2ab1
MD5 7828934d768efa05d7c5098a69f38dfc
BLAKE2b-256 f6fdb8a90fb9e10a69c19d9c68102784892436af26b287667d965438ee8ba6a6

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.2.0

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