If you’re working with Laravel APIs, you might have encountered this default throttle setting:
'api' => [
'throttle:60,1',
'bindings',
],
This line lives in your app/Http/Kernel.php
file and controls how many requests a user can make to your API. In this blog post, we’ll explore what it means, why you might want to change it, and how to safely increase the rate limit for your Laravel application.
🧠 What Does 'throttle:60,1'
Mean?
This throttle rule applies a rate limit to all API requests:
60
= number of requests allowed1
= time in minutes
🔁 In short:
Each user (or IP) can make 60 requests per minute to your API.
🚫 Why You Might Want to Change It
You may want to increase the throttle limit if:
- Your frontend app sends many background requests.
- You’re integrating with another system (like a mobile app or a microservice).
- Users are getting
429 Too Many Requests
errors frequently.
✅ How to Increase the Throttle Value
To change the limit, go to:
app/Http/Kernel.php
Find this section:
protected $middlewareGroups = [
'api' => [
'throttle:60,1',
'bindings',
],
];
Change it to something like:
'api' => [
'throttle:200,1', // Allow 200 requests per minute
'bindings',
],
Tip:
You can adjust this as needed, for example:
'throttle:100,1'
→ 100 req/min'throttle:500,5'
→ 500 requests every 5 minutes
🎯 Apply Custom Throttle to Specific Routes (Optional)
If you don’t want to increase the throttle globally, you can apply it to specific routes like this:
Route::middleware(['auth:api', 'throttle:300,1'])->get('/profile', function () {
return response()->json(['user' => auth()->user()]);
});
Or create a group:
Route::middleware(['auth:api', 'throttle:500,5'])->group(function () {
Route::get('/orders', 'OrderController@index');
Route::get('/products', 'ProductController@index');
});
Bonus: Create Named Custom Throttle
In RouteServiceProvider.php
:
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Support\Facades\RateLimiter;
public function boot()
{
RateLimiter::for('custom-api', function ($request) {
return Limit::perMinute(300)->by($request->ip());
});
}
Then in routes:
Route::middleware(['throttle:custom-api'])->get('/my-endpoint', 'MyController@method');
Laravel makes it easy to control your API traffic using the throttle middleware. If you’re experiencing issues like 429 Too Many Requests
, just increasing the limit in Kernel.php
or applying custom route-level throttling can solve your problem efficiently.