@limitry/client - v0.4.1
    Preparing search index...

    Class RateLimits

    Index

    Constructors

    Methods

    • Check rate limits

      Check current rate limit status for the given dimensions without consuming a request.

      This endpoint allows you to query rate limit status without actually counting against the limit. Useful for:

      • Pre-flight checks before processing requests
      • Displaying rate limit status to users
      • Monitoring rate limit consumption

      Dimension Matching:* Rate limits are matched based on dimension filters. Pass dimensions like:

      • customer_id: Filter by customer
      • event_type: Filter by event type
      • model: Filter by model
      • provider: Filter by provider
      • Any custom dimension from event properties

      Parameters

      • request: { [key: string]: unknown }

        Request body

      Returns Promise<
          {
              allowed: boolean;
              rateLimits: {
                  exceeded: boolean;
                  id: string;
                  limit: number;
                  name: string;
                  remaining: number;
                  reset: number;
                  window: string;
              }[];
          },
      >

      Rate limit check result

      const request: Request = {
      // Add request properties here
      };

      const result = await client.rateLimits.check(request);
      console.log(result);

      Unauthorized

      If a network error occurs

    • Create a rate limit

      Create a new rate limit with dimension filters.

      Rate limits control how many requests can be made within a time window. You can apply rate limits to specific customers, models, event types, or any combination using dimension filters.

      Parameters

      • request: {
            dimensionFilters: { [key: string]: unknown };
            enabled: boolean;
            limitValue: number;
            name: string;
            window: "hour" | "second" | "minute";
        }

        Request body

        • dimensionFilters: { [key: string]: unknown }

          Dimension filters that determine which requests match this rate limit

          {}
          
        • enabled: boolean

          Whether the rate limit is enabled

          true
          
        • limitValue: number

          Maximum number of requests allowed in the time window

        • name: string

          Human-readable name for the rate limit

        • window: "hour" | "second" | "minute"

          Time window for the rate limit

      Returns Promise<
          {
              createdAt: string;
              dimensionFilters: { [key: string]: unknown };
              enabled: boolean;
              id: string;
              limitValue: number;
              name: string;
              projectId: string;
              updatedAt: string;
              window: string;
          },
      >

      Rate limit created

      const request: Request = {
      name: "example",
      limitValue: 123,
      window: "example",
      dimensionFilters: {},
      enabled: true
      };

      const result = await client.rateLimits.create(request);
      console.log(result);

      Invalid request

      Unauthorized

      If a network error occurs

    • Delete a rate limit

      Delete a rate limit by ID.

      Parameters

      • id: string

        Unique identifier for the rate limit

      Returns Promise<{ success: boolean }>

      Rate limit deleted

      const result = await client.rateLimits.delete("id_123");
      console.log(result);

      Unauthorized

      Rate limit not found

      If a network error occurs

    • Get a rate limit

      Get a specific rate limit by ID.

      Parameters

      • id: string

        Unique identifier for the rate limit

      Returns Promise<
          {
              createdAt: string;
              dimensionFilters: { [key: string]: unknown };
              enabled: boolean;
              id: string;
              limitValue: number;
              name: string;
              projectId: string;
              updatedAt: string;
              window: string;
          },
      >

      Rate limit found

      const result = await client.rateLimits.get("id_123");
      console.log(result);

      Unauthorized

      Rate limit not found

      If a network error occurs

    • List rate limits

      List all rate limits for the project.

      Parameters

      • Optionallimit: string

        Maximum number of rate limits to return (1-100, default: 50) (default: "50")

      • Optionalcursor: string

        Pagination cursor from the previous response

      Returns Promise<RateLimitsListResponse>

      List of rate limits

      const items = await client.rateLimits.list();
      for (const item of items.data) {
      console.log(item);
      }

      Invalid query parameters

      Unauthorized

      If a network error occurs

    • Update a rate limit

      Update an existing rate limit.

      Parameters

      • id: string

        Unique identifier for the rate limit

      • request: {
            dimensionFilters?: { [key: string]: unknown };
            enabled?: boolean;
            limitValue?: number;
            name?: string;
            window?: "hour" | "second" | "minute";
        }

        Request body

        • OptionaldimensionFilters?: { [key: string]: unknown }

          Dimension filters that determine which requests match this rate limit

        • Optionalenabled?: boolean

          Whether the rate limit is enabled

        • OptionallimitValue?: number

          Maximum number of requests allowed in the time window

        • Optionalname?: string

          Human-readable name for the rate limit

        • Optionalwindow?: "hour" | "second" | "minute"

          Time window for the rate limit

      Returns Promise<
          {
              createdAt: string;
              dimensionFilters: { [key: string]: unknown };
              enabled: boolean;
              id: string;
              limitValue: number;
              name: string;
              projectId: string;
              updatedAt: string;
              window: string;
          },
      >

      Rate limit updated

      const request: Request = {
      name: "example",
      dimensionFilters: {}
      // ... other properties
      };

      const result = await client.rateLimits.update(
      "id_123",
      request
      );
      console.log(result);

      Unauthorized

      Rate limit not found

      If a network error occurs