Overview
Rate limiting endpoints manage request limits, overrides, and namespace-based rate limiting across your API infrastructure.Key Changes in v2:
- Response format:
result
→{meta, data}
wrapper - Rate limit structure: Single
ratelimit
object →ratelimits
array with named limits - Override management: Enhanced override response format with additional metadata
- Async handling: Removed
async
parameter - Auto apply: Added
autoApply
parameter to apply ratelimits to key verifications automatically - Resources: Removed
resources
array - Metadata: Removed
meta
object from request body
Migration Impact:
- Existing in v1: Full rate limiting and override management functionality
- Enhanced in v2: Improved response format, better override metadata, and new listing capabilities
- Maintained in v2: All core rate limiting functionality with backward-compatible request formats
Rate Limit Checking
POST /v1/ratelimits.limit → POST /v2/ratelimits.limit
Key Changes:- Response format: Direct response →
{meta, data}
envelope - Enhanced response with additional metadata
- Better override handling
- Request Structure Changes
- Response Changes
- cURL Examples
Rate Limit Request
Rate Limit Overrides
POST /v1/ratelimits.setOverride → POST /v2/ratelimits.setOverride
Key Changes:- Response format: Direct response →
{meta, data}
envelope - Enhanced override targeting options
- Better validation and error handling
- Request Structure
- Response Changes
- cURL Examples
Set Override Request
GET /v1/ratelimits.getOverride → POST /v2/ratelimits.getOverride
Key Changes:- HTTP method: GET → POST
- Request format: Query parameters → Request body
- Response format: Direct response →
{meta, data}
envelope
- Request & Response
- cURL Examples
Get Override Request
Get Override Response Diff
GET /v1/ratelimits.listOverrides → POST /v2/ratelimits.listOverrides
Purpose: Get paginated list of all overrides in a namespace. Key Changes:- HTTP method: GET → POST
- Request format: Query parameters → Request body
- Response format: Direct response →
{meta, data}
envelope
- Request Structure
- Response Example
- cURL Examples
List Overrides Request
POST /v1/ratelimits.deleteOverride → POST /v2/ratelimits.deleteOverride
Key Changes:- Response format: Direct response →
{meta, data}
envelope
- Request & Response
- cURL Examples
Delete Override Request
Delete Override Response Diff
Key-Level Rate Limiting Changes
v1 Single Rate Limit → v2 Multiple Named Rate Limits
- Key Creation Changes
- Key Verification Changes
- Response Changes
Key Rate Limit Structure Migration
Migration Patterns
Response Format Migration
- Response Parsing Migration
v1 vs v2: Response Handling
Key-Level Rate Limiting Migration
- Rate Limit Structure Migration
v1 vs v2: Key Rate Limit Structure
Override Management Patterns
- Basic Override Operations
- v2 Enhanced Override Management
Override CRUD Operations
Advanced Features in v2
Multiple Rate Limits per Key
Complex rate limiting setup
Named Rate Limit Targeting
Selective rate limit application
Batch Override Management
Managing multiple overrides
Migration Checklist
Response Format Updates
- Change direct response access to
response.data
in all rate limiting calls - Extract and log
meta.requestId
from responses for debugging - Update error handling for new envelope response structure
- Handle enhanced metadata in override responses
Key-Level Rate Limiting Updates
- Convert
ratelimit
object toratelimits
array in key creation - Add
name
field to all rate limit configurations - Remove
async
parameter - Update Key creation to use autoApply if necessary
- Plan for multiple rate limits per key (different operation types)
- Update key verification to handle multiple rate limits
Override Management Updates
- Update override response parsing from
result
todata
- Utilize new
listOverrides
endpoint for enhanced management - Handle enhanced override metadata (overrideId, createdAt)
- Implement cursor-based pagination for large override lists
Enhanced Features
- Implement named rate limit targeting in key verification
- Use multiple rate limits for different operation types
- Set up batch override management processes using listOverrides
- Plan for granular rate limit control and monitoring
- Use request IDs for debugging and support
Advanced Rate Limiting Patterns
- Implement selective rate limit application by name
- Set up different costs for different rate limits
- Use identity-level rate limiting combined with key-level limits
- Build override management dashboards with enhanced data
Testing
- Test rate limiting with new response format
- Verify override creation, retrieval, and deletion
- Test multiple rate limits on single keys
- Validate named rate limit targeting in key verification
- Confirm override listing and pagination works correctly
- Test batch override management workflows