> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentium.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate limiting

> Public rate limiting signatures and configuration in @agentium/core 4.0.0.

Import these **6 exports** from `@agentium/core`. Read the [rate limiting guide](/advanced/rate-limiting) for setup and behavior, or return to the [package reference](/api-reference/core).

A `?` marks an optional field. These are declarations for lookup; run the examples in the linked guide. Follow related-type links for Agentium types and source links for imported dependency types.

## ConcurrencyLimiter

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/rate-limit/concurrency-limiter.ts)

```typescript theme={null}
export declare class ConcurrencyLimiter {
    constructor(maxConcurrent: number, timeoutMs?: number);
    acquire(): Promise<() => void>;
    get pending(): number;
    get active(): number;
    get available(): number;
}
```

## QuotaConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/rate-limit/types.ts)

```typescript theme={null}
export interface QuotaConfig {
    tenantQuotas?: Record<string, {
        tokensPerDay: number;
        costPerDay: number;
    }>;
    defaultQuota?: {
        tokensPerDay: number;
        costPerDay: number;
    };
    priorityLevels?: Record<string, "p0" | "p1" | "p2">;
}
```

## RateLimitConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/rate-limit/types.ts)

```typescript theme={null}
export interface RateLimitConfig {
    maxTokensPerMinute?: number;
    maxTokensPerHour?: number;
    maxRequestsPerMinute?: number;
    maxConcurrent?: number;
    perTenant?: boolean;
    perUser?: boolean;
    onLimitReached?: "queue" | "reject" | "degrade";
    degradeStrategy?: {
        useCheaperModel: ModelProvider;
        reduceMaxTokens: number;
    };
}
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider).

## RateLimitScope

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/rate-limit/types.ts)

```typescript theme={null}
export interface RateLimitScope {
    tenantId?: string;
    userId?: string;
    agentName?: string;
}
```

## RateLimitStatus

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/rate-limit/types.ts)

```typescript theme={null}
export interface RateLimitStatus {
    allowed: boolean;
    remaining: number;
    resetMs: number;
    degraded?: boolean;
}
```

## TokenRateLimiter

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/rate-limit/token-rate-limiter.ts)

```typescript theme={null}
export declare class TokenRateLimiter {
    constructor(config: RateLimitConfig);
    check(scope: RateLimitScope, tokensToAcquire?: number): RateLimitStatus;
    acquire(estimatedTokens: number, scope: RateLimitScope): RateLimitStatus;
    record(actualTokens: number, estimatedTokens: number, scope: RateLimitScope): void;
    getUsage(scope: RateLimitScope): {
        minuteTokens: number;
        minuteRequests: number;
        hourlyTokens: number;
    };
    reset(scope?: RateLimitScope): void;
}
```

Related: [`RateLimitConfig`](/api-reference/core/rate-limit#ratelimitconfig), [`RateLimitScope`](/api-reference/core/rate-limit#ratelimitscope), [`RateLimitStatus`](/api-reference/core/rate-limit#ratelimitstatus).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.