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