# Ratelimit callbacks Ratelimit callbacks allow module developers to override ratelimit settings dynamically whilst Synapse is running. Ratelimit callbacks can be registered using the module API's `register_ratelimit_callbacks` method. The available ratelimit callbacks are: ### `get_ratelimit_override_for_user` _First introduced in Synapse v1.132.0_ ```python async def get_ratelimit_override_for_user(user: str, limiter_name: str) -> Optional[RatelimitOverride] ``` Called when constructing a ratelimiter of a particular type for a user. The module can return a `messages_per_second` and `burst_count` to be used, or `None` if the default settings are adequate. The user is represented by their Matrix user ID (e.g. `@alice:example.com`). The limiter name is usually taken from the `RatelimitSettings` key value. The limiters that are currently supported are: - `rc_invites.per_room` - `rc_invites.per_user` - `rc_invites.per_issuer` If multiple modules implement this callback, they will be considered in order. If a callback returns `None`, Synapse falls through to the next one. The value of the first callback that does not return `None` will be used. If this happens, Synapse will not call any of the subsequent implementations of this callback. If no module returns a non-`None` value then the default settings will be used.