# RateLimiterDefinitionDto

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

A limiter as the running host declares it: name, grouping, scope, and the defaults a rule
overrides.

## Fields
- `name` (string): The limiter's unique name, matched against `RateLimitRule.LimiterName`. (nullable)
- `displayName` (string): Human-readable name for the administration UI. (nullable)
- `description` (string): Optional description shown as help text. (nullable)
- `category` (string): Grouping category, for example "API" or "Payment Pages". (nullable)
- `scope` ([RateLimitScope](https://devportal.demo.winkpg.io/docs/api/models/RateLimitScope.md)): The scope the limiter operates at. A profile must bind to the same scope to affect it.
  Values:
  - `Global`: Platform-wide limit shared across all tenants and merchants.
  - `PerTenant`: Per-tenant limit. Keyed by the tenant identifier.
  - `PerMerchant`: Per-merchant limit. Keyed by the merchant identifier.
  - `PerEntity`: Per-entity limit (for example a specific hosted payment page instance). Keyed by the identifier of that entity.
  - `PerEndpoint`: Per-endpoint limit. Keyed by the matched endpointPattern rather than the raw request path, so a pattern containing a wildcard produces one bounded counter key instead of one key per distinct URL.
  - `PerApiKey`: Per-API-key limit. Keyed by the API key identifier (never the key secret).
  - `PerIpAddress`: Per-IP-address limit. Keyed by the resolved client IP address.
- `accumulationType` ([RateLimitAccumulationType](https://devportal.demo.winkpg.io/docs/api/models/RateLimitAccumulationType.md)): Whether the limiter counts requests or accumulates an amount.
  Values:
  - `Count`: Counts discrete requests, checked against permitLimit.
  - `Amount`: Accumulates a decimal amount (for example a transaction value), checked against maxAmount. Only FixedWindow supports amount accumulation.
- `defaultAlgorithm` ([RateLimitAlgorithm](https://devportal.demo.winkpg.io/docs/api/models/RateLimitAlgorithm.md)): The algorithm applied when no rule overrides it.
  Values:
  - `FixedWindow`: Fixed (tumbling) window: the counter resets when the window rolls over. The window identifier is derived from the current UTC instant, so every process agrees on the boundary without coordination.
  - `SlidingWindow`: Sliding window: tracks individual request timestamps over a rolling span using a sorted set. More precise than a fixed window at the cost of more Redis memory.
  - `TokenBucket`: Token bucket: permits replenish at a steady rate and short bursts are allowed up to the bucket capacity.
  - `Concurrency`: Concurrency limiter: bounds the number of concurrent in-flight requests. The slot is held for the duration of the downstream request and released afterwards.
- `defaultPermitLimit` (integer(int32)): The permit limit applied when no rule overrides it.
- `defaultMaxAmount` (number(double)): The amount ceiling applied when no rule overrides it, for amount accumulation. (nullable)
- `defaultWindowSeconds` (integer(int32)): The window applied when no rule overrides it, in seconds.
- `defaultQueueLimit` (integer(int32)): The burst allowance applied when no rule overrides it.

## See also

- [All documentation](https://devportal.demo.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
