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.6.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.6-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for Flask-Limiter-2.4.6.tar.gz
Algorithm Hash digest
SHA256 47db9e06f09e7205e0a89fad2033de745bee2d4dd852bb0e04a20214c08b9de2
MD5 c7adddc0ff04096216ec1b219214cff4
BLAKE2b-256 61d11649f54e9cdf834271942356de6ac0c709a208b5aa093576e6d09545d07e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: Flask_Limiter-2.4.6-py3-none-any.whl
  • Upload date:
  • Size: 24.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for Flask_Limiter-2.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2f0cfc25335f07f47bc3b2d49c17c2dbc380188ccf2ff1501680812b6f45fe61
MD5 e7595d7e2d1488d1433056696969f335
BLAKE2b-256 cdfc7079408353407c32a45b8efa948b6e7e1580c4e89dbe0547e91f176a46b7

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.4.6

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