Laravel: different api rate limits for different paths

laravel, php, rate-limiting, throttling

Solution

You may want to try commenting out the default rate on line 40 of the `Kernel.php` since you are specifying it in each middleware group to avoid conflict.

You may also want to change the middleware to include the second parameter of how long the waiting period is until the next request can come in. (e.g. `throttle:60,1`)

Problem

I need to setup different rate limits for different paths. Foe example: On path /users I want to have rate limit of 60 requests per minute, while for path /stats I want to have rate limit of only 5 requests per minute. I tried with next approach ``` Route::group(['middleware' => ['auth', 'throttle:60']], function(){ Route::get('users', 'User@list'); }); Route::group(['middleware' => ['auth', 'throttle:5']], function(){ Route::get('stats', 'User@stats'); }); ``` Somehow, last rate limit is applied. However, when making requests on users path, X-Rate-Limit-Limit header is set to 60, but it throws "Too many requests" error when it reaches 6th request.

Original source