Test Rate Limit Check · Schema
RateLimitConfig
Configuration for an API rate limit policy defining request quotas, time windows, and enforcement behavior.
API GovernanceAPI ManagementAPI TestingPerformance TestingRate LimitingTesting
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier for the rate limit configuration. |
| name | string | Human-readable name for this rate limit policy. |
| api_name | string | Name of the API this rate limit applies to. |
| scope | string | Scope at which the rate limit is applied. |
| limit | integer | Maximum number of requests allowed in the defined time window. |
| window_seconds | integer | Duration of the rate limit time window in seconds. |
| window_type | string | Algorithm used to enforce the rate limit window. |
| burst_limit | integer | Maximum burst allowance above the baseline rate limit. |
| enabled | boolean | Whether this rate limit policy is currently active. |
| response_status | integer | HTTP status code returned when the rate limit is exceeded. |
| headers | object | Rate limit headers returned in API responses. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/test-rate-limit-check/refs/heads/main/json-schema/test-rate-limit-check-rate-limit-config-schema.json",
"title": "RateLimitConfig",
"description": "Configuration for an API rate limit policy defining request quotas, time windows, and enforcement behavior.",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the rate limit configuration."
},
"name": {
"type": "string",
"description": "Human-readable name for this rate limit policy."
},
"api_name": {
"type": "string",
"description": "Name of the API this rate limit applies to."
},
"scope": {
"type": "string",
"enum": ["global", "per-consumer", "per-ip", "per-api-key", "per-endpoint"],
"description": "Scope at which the rate limit is applied."
},
"limit": {
"type": "integer",
"minimum": 1,
"description": "Maximum number of requests allowed in the defined time window."
},
"window_seconds": {
"type": "integer",
"minimum": 1,
"description": "Duration of the rate limit time window in seconds."
},
"window_type": {
"type": "string",
"enum": ["fixed", "sliding", "token-bucket", "leaky-bucket"],
"description": "Algorithm used to enforce the rate limit window."
},
"burst_limit": {
"type": "integer",
"minimum": 0,
"description": "Maximum burst allowance above the baseline rate limit."
},
"enabled": {
"type": "boolean",
"description": "Whether this rate limit policy is currently active."
},
"response_status": {
"type": "integer",
"minimum": 400,
"maximum": 599,
"default": 429,
"description": "HTTP status code returned when the rate limit is exceeded."
},
"headers": {
"$ref": "#/$defs/RateLimitHeaders",
"description": "Rate limit headers returned in API responses."
}
},
"required": ["id", "name", "limit", "window_seconds"],
"$defs": {
"RateLimitHeaders": {
"type": "object",
"properties": {
"limit_header": {
"type": "string",
"default": "X-RateLimit-Limit",
"description": "Header name for the rate limit maximum."
},
"remaining_header": {
"type": "string",
"default": "X-RateLimit-Remaining",
"description": "Header name for remaining requests in the window."
},
"reset_header": {
"type": "string",
"default": "X-RateLimit-Reset",
"description": "Header name for the window reset timestamp."
},
"retry_after_header": {
"type": "string",
"default": "Retry-After",
"description": "Header name indicating when the client may retry."
}
}
}
}
}