Rate Limiter Routing
Enforce usage quotas and route requests accordingly. Block users who exceed their limits while providing clear error messages.
Use Case
- Prevent API abuse
- Manage costs with usage quotas
- Provide clear feedback on rate limits
Configuration
{
"model": "router/dynamic",
"router": {
"type": "conditional",
"pre_request": [
{
"name": "daily_user_limit",
"type": "rate_limiter",
"limit": 2,
"period": "hour",
"entity": "user_id",
"target": "requests"
}
],
"routes": [
{
"conditions": {
"all": [
{
"pre_request.daily_user_limit.allowed": {
"$eq": true
}
}
]
},
"name": "main_requests",
"targets": {
"$any": [
"anthropic/*"
],
"sort_by": "price",
"sort_order": "min"
}
},
{
"name": "other_requests",
"targets": {
"$any": [
"openai/gpt-4.1-nano"
],
"sort_by": "price",
"sort_order": "min"
}
}
]
}
}
How It Works
- Rate Limiter: Checks if user has exceeded 2 requests per hour
- Main Requests: Routes allowed requests to any Anthropic model, sorted by lowest price
- Other Requests: Routes remaining requests to GPT-4.1-nano for cost optimization
Variables Used
pre_request.daily_user_limit.allowed: Result of rate limit check (true if within limit)
Customization
- Adjust limits (daily, weekly, monthly)
- Different limits per user tier
- Custom error messages
- Graceful degradation instead of blocking