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 version of the extension on master 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.0.4.tar.gz (242.8 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.0.4-py3.9.egg (24.7 kB view details)

Uploaded Egg

Flask_Limiter-2.0.4-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: Flask-Limiter-2.0.4.tar.gz
  • Upload date:
  • Size: 242.8 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.0.4.tar.gz
Algorithm Hash digest
SHA256 eafdd81f384e0c99fb24bd366354c66cd143ae78512aad9b60a501df3f52ddf4
MD5 1da6505a952d30908cdd9076193bb74c
BLAKE2b-256 bf83127f9cc746809eeb6703507a35a7155a304361fb04e7faaca6b6ecbc4d8e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: Flask_Limiter-2.0.4-py3.9.egg
  • Upload date:
  • Size: 24.7 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.0.4-py3.9.egg
Algorithm Hash digest
SHA256 40368a04ac3c997c5f9c96f792355fc09b37893385e57d2671c23ee8d1d657e9
MD5 2ad498c9a01c11321bc29e78f4b0a418
BLAKE2b-256 2f384faaa9e7d53d33bb3fff965e9b22e9e89eab20b51f5b6b8b4e9d46bce222

See more details on using hashes here.

File details

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

File metadata

  • Download URL: Flask_Limiter-2.0.4-py3-none-any.whl
  • Upload date:
  • Size: 12.6 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.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 eea7012a8d422db18deb0d518bd94888ed1d22afd96747407ae78fe67773f32a
MD5 32dea6f1f5df95e7e31c9636a15a2900
BLAKE2b-256 903931855a710b013f6b79991858c982a256eb434c802517f16bf67397f1b102

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