Contents
On this page

List Alert Rules - Plugixa Activity Log

GET /plugixa-activity-log/v1/rules

List every alert rule on the site, oldest first.

Needs settings access (see who can call what). Needs Plugixa Activity Log Pro, with the Alert rules module on under Plugixa Activity Log -> Monitors. Alert rules depend on the Notifications module: with Notifications off, the route does not exist.

Request

GET https://your-site.example/wp-json/plugixa-activity-log/v1/rules

The list is not paged and takes no parameters.

Responses

200 OK. data is every rule.

{
  "success": true,
  "data": [
    {
      "id": 4,
      "name": "Administrator sign-ins from outside the office",
      "enabled": true,
      "conditions": {
        "codes": [],
        "groups": ["authentication"],
        "min_severity": "medium",
        "severities": [],
        "user_roles": ["administrator"],
        "user_ids": [],
        "ips": ["203.0.113.0/24"],
        "object_types": [],
        "search": ""
      },
      "channels": [
        { "type": "email", "target": "security@example.com", "secret": "", "has_secret": false },
        { "type": "webhook", "target": "https://hooks.example.com/activity", "secret": "••••cret", "has_secret": true }
      ],
      "throttle_minutes": 15,
      "created_by": 1,
      "created_at": "2026-11-12 09:30:00",
      "modified_at": "2026-11-12 09:30:00"
    }
  ]
}
Field Type Meaning
data[].id integer The rule’s id
data[].name string The rule’s name
data[].enabled boolean Whether the rule is checked against new events
data[].conditions object What an event must match. Every condition that is filled in must hold; an empty one does not narrow. See Create Alert Rule
data[].channels array Where an alert goes
data[].channels[].type string email, slack, discord, teams or webhook
data[].channels[].target string An email address, or an https:// address
data[].channels[].secret string A webhook’s signing secret, masked: four dots and its last four characters. Empty when there is none
data[].channels[].has_secret boolean Whether a signing secret is stored
data[].throttle_minutes integer 0 sends every match. Otherwise the rule fires at most once in this many minutes
data[].created_by integer WordPress user id of whoever created the rule
data[].created_at string UTC datetime
data[].modified_at string UTC datetime of the last change

A stored secret never comes back in full.

Errors

Plus the errors every endpoint can return.

Examples

curl -s "https://your-site.example/wp-json/plugixa-activity-log/v1/rules" \
  -u "admin:$WP_APP_PASSWORD"
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-activity-log/v1/rules');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'admin:' . getenv('WP_APP_PASSWORD'),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const auth = Buffer.from(`admin:${process.env.WP_APP_PASSWORD}`).toString('base64');
const response = await fetch('https://your-site.example/wp-json/plugixa-activity-log/v1/rules', {
  headers: {
    'Authorization': `Basic ${auth}`,
  },
});
const { data } = await response.json();

Quick Links

Share