Skip to content

RateLimiterConfig ​

Full TypeScript interface for createRateLimiter() config.

Top-level fields ​

FieldTypeDefaultDescription
limitsRecord<string, ModelLimitOverride>{}Override built-in model limits
costCostConfig—Budget caps and cost store
queueQueueConfig—Queue behavior
retryRetryConfig—Retry behavior
circuitCircuitBreakerConfig—Circuit breaker
scopesRecord<string, ScopeConfig>{}Per-scope rate limits
storeRateLimitStoreInMemoryStoreRate limit window store
onEventHandlers—Event handlers
debugbooleanfalseDebug console logging

ModelLimits ​

FieldTypeDescription
rpmnumberMax requests per minute
itpmnumber?Max input tokens per minute
otpmnumber?Max output tokens per minute
rpdnumber?Max requests per day
maxConcurrentnumber?Max in-flight requests
inputPricePerMillionnumberUSD per million input tokens
outputPricePerMillionnumberUSD per million output tokens

CostConfig ​

FieldTypeDefaultDescription
budgetBudgetPeriod—{ hourly?, daily?, monthly? } in USD
onExceeded'throw' | 'queue' | 'fallback''throw'Budget exceeded behavior
storeCostStore—Persistent cost store

QueueConfig ​

FieldTypeDefaultDescription
maxSizenumber500Max queued requests
timeoutnumber30_000Queue wait timeout (ms)
onFull'throw' | 'drop-low''throw'Behavior when queue is full

RetryConfig ​

FieldTypeDefaultDescription
maxAttemptsnumber4Max attempts including first
backoff'exponential' | 'linear' | 'fixed''exponential'Backoff strategy
baseDelaynumber1_000Base delay (ms)
maxDelaynumber60_000Max delay cap (ms)
jitterbooleantrueAdd random jitter
parseRetryAfterbooleantrueHonor Retry-After headers
retryOnnumber[][429, 500, 502, 503, 504]Status codes to retry
callTimeoutnumber?—Per-call API timeout (ms)

CircuitBreakerConfig ​

FieldTypeDefaultDescription
failureThresholdnumber5Consecutive failures before opening
cooldownMsnumber60_000Time to stay open (ms)
tripOnnumber[][500, 502, 503, 504]Status codes that trip the circuit

ScopeConfig ​

FieldTypeDescription
rpmnumber?Max requests per minute for this scope
itpmnumber?Max input tokens per minute
maxConcurrentnumber?Max concurrent requests

Released under the MIT License.