Skip to content

RateLimiterConfig

Full TypeScript interface for createRateLimiter() config.

Top-level fields

FieldTypeDefaultDescription
limitsRecord<string, ModelLimitOverride>{}Override built-in model limits
costCostConfigBudget caps and cost store
queueQueueConfigQueue behavior
retryRetryConfigRetry behavior
circuitCircuitBreakerConfigCircuit breaker
scopesRecord<string, ScopeConfig>{}Per-scope rate limits
storeRateLimitStoreInMemoryStoreRate limit window store
onEventHandlersEvent 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
storeCostStorePersistent 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.