Rules

Tag scan and URL results when fields, headers, or cookies match a query.

What a rule does

A rule tags scan and URL results. It does not block, delete, or notify by itself. When a result matches, the rule's tags are applied. Create returns 201.

POST/v3/rules

Create a rule

Request fields

FieldNotes
rule_nameName shown on the rule
descriptionOptional
queriesOne or more match queries. Every field inside a query must match
run_all_queriesWhen true, every query can match and apply its tags. When false, the first matching query wins
tagsTags applied when the rule matches

Each query can set fields, headers, cookies, and its own tags (applied when that query is the one that matched).

A field value uses exactly one operator: eq, contains, lazy, lazy_contains, in, or regex.

Header conditions use name and val (same operators), or any_val to require only that the header name exists. Do not combine any_name with any_val.

curl -sS -X POST "https://api.efflux.io/v3/rules" \
  -H "Authorization: Bearer $EFFLUX_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "rule_name": "Open SSH",
    "description": "Tag hosts serving SSH",
    "run_all_queries": false,
    "tags": ["ssh"],
    "queries": [
      {
        "fields": {
          "port": { "eq": "22" },
          "service": { "contains": "ssh" }
        }
      }
    ]
  }'

Try a rule before you save it

POST/v3/rules/evaluate

Evaluate a rule against one result

GET/v3/rules/{rule_id}/matches

Preview matches for a saved rule

Manage rules

GET/v3/rules

List rules

GET/v3/rules/{rule_id}

Get a rule

PUT/v3/rules/{rule_id}

Replace a rule

DELETE/v3/rules/{rule_id}

Delete a rule

The list defaults to limit 20 (max 200). Whether your plan includes rules is on GET /limits.