Contents
On this page

List Mirrors - Plugixa Activity Log

GET /plugixa-activity-log/v1/mirrors

List every mirror: the places a copy of each new event is sent to (a syslog server, an HTTPS endpoint or a daily file), oldest first.

Needs settings access (see who can call what). Needs Plugixa Activity Log Pro, with the Mirrors module on under Plugixa Activity Log -> Monitors.

Request

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

The list is not paged and takes no parameters.

Responses

200 OK. data is every mirror; meta holds the choices a mirror can take.

{
  "success": true,
  "data": [
    {
      "id": 2,
      "name": "Central syslog",
      "type": "syslog",
      "enabled": true,
      "config": { "host": "logs.example.com", "port": 6514, "transport": "tls" },
      "filters": { "min_severity": "low", "groups": [] },
      "created_by": 1,
      "created_at": "2026-11-12 09:30:00",
      "modified_at": "2026-11-12 09:30:00",
      "waiting": 0
    },
    {
      "id": 3,
      "name": "SIEM collector",
      "type": "http",
      "enabled": true,
      "config": { "url": "https://siem.example.com/ingest", "token": "••••9f2c", "has_token": true },
      "filters": { "min_severity": "", "groups": ["authentication", "users"] },
      "created_by": 1,
      "created_at": "2026-11-12 09:40:00",
      "modified_at": "2026-11-12 09:40:00",
      "waiting": 12
    }
  ],
  "meta": {
    "groups": [
      { "key": "authentication", "label": "Sign-ins" }
    ],
    "types": ["syslog", "http", "file"],
    "transports": ["udp", "tcp", "tls"],
    "file_folder": "uploads/plugixa-activity-log/mirror/",
    "allow_private": false
  }
}
Field Type Meaning
data[].id integer The mirror’s id
data[].name string The mirror’s name
data[].type string syslog, http or file. Fixed once created
data[].enabled boolean Whether new events are sent to it
data[].config object Depends on type: see Create Mirror. An http token is masked: four dots and its last four characters, with has_token beside it
data[].filters.min_severity string Only events at least this severe, or empty for all
data[].filters.groups string[] Only events of these groups, or empty for all
data[].created_by integer WordPress user id of whoever created the mirror
data[].created_at string UTC datetime
data[].modified_at string UTC datetime of the last change
data[].waiting integer Events queued for this mirror and not delivered yet
meta.groups array Every event group (key and label), sorted by label: the values filters.groups accepts
meta.types string[] The mirror types
meta.transports string[] The syslog transports
meta.file_folder string Where a file mirror writes, under the uploads folder
meta.allow_private boolean Whether a syslog mirror may point at a private network address on this site

Errors

Plus the errors every endpoint can return.

Examples

curl -s "https://your-site.example/wp-json/plugixa-activity-log/v1/mirrors" \
  -u "admin:$WP_APP_PASSWORD"
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-activity-log/v1/mirrors');
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/mirrors', {
  headers: {
    'Authorization': `Basic ${auth}`,
  },
});
const { data, meta } = await response.json();

Quick Links

Share