Update Rate Limit Condition

PUT /v1/firewall/rate-limits/{uuid}/conditions/{condition_uuid}

Rewrite one condition of a rate-limit rule. This is a full write of the condition, not a patch: send type, operator and value every time (an omitted logical_operator becomes AND). The condition keeps its uuid and its place in the rule's evaluation order.

The body and its validation are the same as Add Rate Limit Condition. The change is announced to the edges in every region as soon as it is saved. Requires the rate_limits:update permission in the active account and the custom_rate_limits entitlement.

Path parameters

uuid string (uuid) Req
The rule's uuid from List Rate Limits.
condition_uuid string (uuid) Req
The condition's uuid, from the rule's conditions (Get Rate Limit). It must belong to this rule.

Deprecated: the legacy integer ids are still accepted in the path until the sunset, answered with Deprecation and Sunset headers. Use the uuids.

Request body

type string Req
What to match (see Add Rate Limit Condition for the types).
operator string Req
An operator the type allows.
value string
What to compare with; required except for exists / not_exists.
logical_operator string
AND (default) or OR: joins this condition to the next one.

Response (200 OK)

The condition as stored: uuid, rule_uuid, condition_type, operator, condition_value, logical_operator and created_at (when it was first added). Sending the values it already has is not an error: you get the same 200.

Deprecated: until the sunset this response also carries the legacy integer id and *_id fields. Don't use them; read uuid and the *_uuid fields.

Errors

400 Bad Request
Invalid JSON (Invalid JSON payload); a condition that fails validation — "error": "Bad request" with the reason in detail; or an integer id after the sunset (integer_id_unsupported).
401 Unauthorized
Missing or invalid auth.
403 Forbidden
Your role lacks rate_limits:update; your plan doesn't include custom_rate_limits ("code": "entitlement_required"); or the account is suspended (account_suspended).
404 Not Found
Rate limit rule not found (no such rule in the active account), or Condition not found (no such condition, or it belongs to another rule).
409 Conflict
quota_paused: the rule is paused over your plan's limits and is read-only.
415 Unsupported Media Type
The request has no Content-Type: application/json header.
Request — widen the path match
curl -X PUT "https://api.ngris.com/v1/firewall/rate-limits/019ba36e-e098-77b3-9442-42b30e58d656/conditions/019bec4f-3378-7c19-bd58-40f1aec544ad" \ -H "X-API-KEY: <your_api_key>" \ -H "Content-Type: application/json" \ -d '{ "type": "path", "operator": "in", "value": "/login, /signup, /password-reset" }'
Response — 200 OK
{ "uuid": "019bec4f-3378-7c19-bd58-40f1aec544ad", "rule_uuid": "019ba36e-e098-77b3-9442-42b30e58d656", "condition_type": "path", "operator": "in", "condition_value": "/login, /signup, /password-reset", "logical_operator": "AND", "created_at": "2026-10-20T09:15:00Z" }