NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1289 most downloaded on PyPI
Rate limiting for flask applications
Last release 10 months ago
06 Dec 2025
Release timing varies
gaps range from 1 weeks to 6 months
Nearly every release is documented
notes for 57 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
13 years old
113 releases · first in 2014
Ensure cli commands fail gracefully when cli dependencies are not installed.
Release Date: 2025-12-06
Bug Fix
Ensure cli commands fail gracefully when cli dependencies are not installed.
Extract cli specific requirements to an extra
cli specific requirements to an extraOne column per quarter.
Release Date: 2025-12-02
Deployment
Extract cli specific requirements to an extra
Compatibility
Add python 3.14 support
Expose flask_limiter.Limit , flask_limiter.RouteLimit , flask_limiter.ApplicationLimit & flask_limiter.MetaLimit limit description classes that can be
flask_limiter.Limit, flask_limiter.RouteLimit,flask_limiter.ApplicationLimit & flask_limiter.MetaLimitLimiter extension.flask_limiterCaution This release has been yanked from pypi due to compatibility issues with Flask-AppBuilder & airflow. See #479
Caution
This release has been yanked from pypi due to compatibility issues with Flask-AppBuilder & airflow. See #479
flask_limiter.Limit, flask_limiter.RouteLimit,flask_limiter.ApplicationLimit & flask_limiter.MetaLimitRelease Date: 2025-09-12
Feature
Expose flask_limiter.Limit, flask_limiter.RouteLimit, flask_limiter.ApplicationLimit & flask_limiter.MetaLimit limit description classes that can be used to pass in default, application & meta limits to the Limiter extension. This allows for a more fine grained control for end users while also simplifying the internal implementation of different types of limits.
Compatibility Drop support for python 3.9 Add install extra for valkey
Release Date: 2025-03-14
Compatibility
Drop support for python 3.9
Add install extra for valkey
Improve documentation about rate limiting strategies
Release Date: 2025-03-11
Documentation
Improve documentation about rate limiting strategies
Typing
Use builtin types (list, set, tuple)
Change pypi release to use trusted publishing
Release Date: 2025-01-16
Security
Change pypi release to use trusted publishing
Fix typing error with exempt decorator
Release Date: 2025-01-05
Chores
Fix typing error with exempt decorator
Update types for window wrapper to use named tuple
Ensure wheels are uploaded to pypi as well (for real)
Release Date: 2024-11-27
Compatibility
Ensure wheels are uploaded to pypi as well (for real)
Update development dependencies
Release Date: 2024-11-27
Chores
Update development dependencies
Compatibility
Drop support for python 3.8
Add support for python 3.13
Add CI matrix entry for flask 3.1
Ensure cost is accounted for when testing conditional limits
Release Date: 2024-07-20
Bug fix
Ensure cost is accounted for when testing conditional limits
Fix errors with concurrent access to internal exemption maps during application startup.
Release Date: 2024-05-19
Bug fix
Fix errors with concurrent access to internal exemption maps during application startup.
Ensure exempt routes are exempt from meta limits as well
exempt routes are exempt from meta limits as wellRelease Date: 2024-04-21
Bug fix
Ensure exempt routes are exempt from meta limits as well
Update development dependencies
Release Date: 2024-02-11
Chores
Update development dependencies
Use ruff for all linting
Update CI compatibility matrix
Add meta_limits to allow for creating upper limits for requesting clients to breach application rate limits.
meta_limits to allow for creating upper limits for
requesting clients to breach application rate limits.Release Date: 2023-08-30
Feature
Add meta_limits to allow for creating upper limits for requesting clients to breach application rate limits.
Bug fix
Ensure on breach callbacks can be configured using flask config
Ensure _version.py has stable content when generated using git archive from a tag regardless of when it is run.
git archive from a tag regardless of when it is
run.Release Date: 2023-08-26
Bug fix
Ensure _version.py has stable content when generated using git archive from a tag regardless of when it is run.
Add extended configuration for application limits
application_limits_exempt_whenapplication_limits_deduct_whenapplication_limits_per_methodRelease Date: 2023-08-22
Feature
Add extended configuration for application limits
application_limits_exempt_when
application_limits_deduct_when
application_limits_per_method
Bug fix
Ensure blueprint static routes are exempt
Improve default limits documentation
Release Date: 2023-05-03
Chores
Improve default limits documentation
Update documentation dependencies
Fix typing compatibility errors in headers
Ensure per route limits are preferred (over application limits) when populating rate limiting headers in the case where no rate limit has been breache
Release Date: 2023-02-26
Bug Fix
Ensure per route limits are preferred (over application limits) when populating rate limiting headers in the case where no rate limit has been breached in the request.
Allow configuring request identity
Release Date: 2023-02-15
Feature
Allow configuring request identity
Chores
Improve linting with ruff
Update development dependencies
Skip logging an error if a decorated limit uses a callable to return the "current" rate limit and returns an empty string. Treat this is a signal that
Release Date: 2022-12-29
Feature
Skip logging an error if a decorated limit uses a callable to return the "current" rate limit and returns an empty string. Treat this is a signal that the rate limit should be skipped for this request.
Remove deprecated config variable RATELIMIT_STORAGE_URL
key_func as the first positional argument and all other arguments
as keyword arguments.Remove deprecated config variable RATELIMIT_STORAGE_URL
Release Date: 2022-12-28
Breaking changes
Remove deprecated config variable RATELIMIT_STORAGE_URL
Remove legacy backward compatibility path for flask < 2
Enforce key_func as a required argument
Chores
Simplify registration of decorated function & blueprint limits
Change order of extension constructor arguments to only require key_func as the first positional argument and all other arguments as keyword arguments
key_func as the first positional argument and all other arguments
as keyword arguments.Release Date: 2022-12-26
Breaking changes
Change order of extension constructor arguments to only require key_func as the first positional argument and all other arguments as keyword arguments.
Separate positional/keyword arguments in limit/shared_limit decorators
Features
Allow scoping regular limit decorators / context managers
Extend customization by http method to shared_limit decorator
Release Date: 2022-12-26
Feature
Extend customization by http method to shared_limit decorator
Update documentation quick start
Release Date: 2022-12-26
Chores
Update documentation quick start
Refresh documentation for class based views
Allow using limit & shared_limit decorators on pure functions that are not decorated as routes. The functions when called from within a request contex
limit & shared_limit decorators on pure
functions that are not decorated as routes. The functions
when called from within a request context will get rate limited.limit as a context manager to rate limit a code block
explicitly within a requestUpdate documentation dependencies
Release Date: 2022-11-15
Chores
Add sponsorship banner to rtd
Update documentation dependencies
Any exception raised when calling an on_breach callback will be re-raised instead of being absorbed unless swallow_errors is set. In the case of swall
on_breach callback will
be re-raised instead of being absorbed unless swallow_errors is set.
In the case of swallow_errors the exception will now be logged
at ERROR level instead of WARNINFOAdd default value for RateLimitExceeded optional parameter
Release Date: 2022-10-25
Bug Fix
Add default value for RateLimitExceeded optional parameter
Fix suppression of errors when using conditional deduction (Issue 363)
Ensure typing_extensions dependency has a minimum version
Release Date: 2022-09-22
Compatibility
Ensure typing_extensions dependency has a minimum version
Chores
Documentation tweaks
Update CI to use 3.11 rc2
Improve quick start documentation
Emit warning when in memory storage is used as a default when no storage uri is provided
Release Date: 2022-08-23
Usability
Emit warning when in memory storage is used as a default when no storage uri is provided
Expand use of on_breach callback to return a Response object that will be used as the error response on rate limits being exceeded
on_breach callback to return a Response
object that will be used as the error response on rate limits
being exceededRelease Date: 2022-08-11
Feature
Expand use of on_breach callback to return a Response object that will be used as the error response on rate limits being exceeded
Migrate use of flask._request_ctx_stack to flask.globals.request_ctx to support Flask 2.2+
flask._request_ctx_stack to flask.globals.request_ctx
to support Flask 2.2+Release Date: 2022-08-05
Compatibility
Migrate use of flask._request_ctx_stack to flask.globals.request_ctx to support Flask 2.2+
Chores
Expand CI matrix to test against Flask 2.0,2.1 & 2.2
Make tests compatible with Flask 2.2.+
Ensure multiple extension instances registered on a single application exercise before/after request hooks
Release Date: 2022-07-07
Features
Ensure multiple extension instances registered on a single application exercise before/after request hooks
Chores
Improve documentation
## Chore * Add python 3.11 to CI matrix
## Chore * Automate github releases
Release Date: 2022-04-21 * Chore * Automate github releases
Release Date: 2022-04-21
Chore
Automate github releases
Release Date: 2022-04-21 * Chore * Automate github releases
Release Date: 2022-04-21
Chore
Automate github releases
Second attempt to generate release notes
Release Date: 2022-04-21
Chore
Second attempt to generate release notes
Test for automating github release notes
Release Date: 2022-04-21
Chore
Test for automating github release notes
Release Date: 2022-04-21 * Chore * Automate github releases
Release Date: 2022-04-21
Chore
Automate github releases
Add CLI for inspecting & clearing rate limits
Release Date: 2022-04-20
Feature
Add CLI for inspecting & clearing rate limits
Bug Fix
Ensure exempt decorator can be used with flags for view functions
Chores
Refactor rate limit resolution to limit manager
Ensure request.blueprint is actually registered on the current app before using it for blueprint limits or exemptions. (Issue 336)
request.blueprint is actually registered on the current app before
using it for blueprint limits or exemptions. (Issue 336)Release Date: 2022-04-20
Bug Fix
Ensure request.blueprint is actually registered on the current app before using it for blueprint limits or exemptions. (Issue 336)
Extend cost parameter to default & application limits
Release Date: 2022-04-17
Feature
Extend cost parameter to default & application limits
Chore
Improve type strictness / checking
Improve documentation on landing page
Add missing extras requirements for installation
Release Date: 2022-04-14
Bug Fixes
Add missing extras requirements for installation
Add py.typed for PEP 561 compliance
Expose option to register a callback for rate limit breaches of default limits via the ~flask_limiter.Limiter.on_breach constructor parameter
~flask_limiter.Limiter.on_breach
constructor parameterflask.g with request context for keeping track of
extension state (327)~flask_limiter.Limiter.exempt to accomodate
nested blueprints. (326)Allow a function to be used for the cost parameter to limiter decorators.
cost parameter
to limiter decorators.Release Date: 2022-03-05
Feature
Allow a function to be used for the cost parameter to limiter decorators.
Release Date: 2022-01-30 * Chore * Update documentation theme
Release Date: 2022-01-30
Chore
Update documentation theme
Nothing published for this version
## Chore * Update documentation theme
Add current_limit attribute to extension to allow clients to fetch the relevant current limit that was evaluated.
current_limit attribute to extension to
allow clients to fetch the relevant current limit
that was evaluated.on_breach callback for limit and shared_limit
decorators to be used as hooks for when a limit is breachedcost argument to limit and shared_limit to control
how much is deducted when a hit occurs.Removed deprecated RATELIMIT_GLOBAL config
Release Date: 2021-12-22
Chore
Documentation theme upgrades
Integrate pytest-docker plugin
Mass linting
Deprecation
Removed deprecated RATELIMIT_GLOBAL config
Added deprecation doc for RATELIMIT_STORAGE_URL config
Release Date: 2021-12-15 Documentation & test tweaks
Release Date: 2021-12-15
Documentation & test tweaks
## Features * Pin Flask, limits to >= 2 * Add type hints
Release Date: 2021-11-28
Features
Pin Flask, limits to >= 2
Add type hints
Remove deprecated get_ipaddr method
Release Date: 2021-11-28
Deprecations
Remove deprecated get_ipaddr method
Remove use of six
Remove backward compatibility hacks for RateLimit exceptions
Drop support for python < 3.7 & Flask < 2.0
Drop support for python < 3.7 & Flask < 2.0
Prepend key_prefix to extension variables attached to g
Final Release for python < 3.7
key_prefix to extension variables attached to gg.view_limitsRelease Date: 2021-11-27
Final Release for python < 3.7
Features
Prepend key_prefix to extension variables attached to g
Expose g.view_limits
Always set headers for conditional limits
Release Date: 2020-08-25
Bug Fix
Always set headers for conditional limits
Skip init_app sequence when the rate limiter is disabled
Your coding agent can read these notes before it upgrades. Set up the MCP server →