Contents
On this page
Export Events - Plugixa Activity Log
GET /plugixa-activity-log/v1/export
Download the events that match a set of filters as one CSV file.
Needs the export access level (see who can call what): administrators, and the roles allowed to export. Needs Plugixa Activity Log Pro, with the CSV export module on under Plugixa Activity Log -> Monitors.
Note. The file holds at most 50,000 events, taken oldest first. When more events match, the rest are left out without any sign in the file or the headers. Narrow the period with
date_fromanddate_toand download in slices to be sure you have everything.
Note. Every download is itself recorded in the log, as event 9003, with the number of rows it held.
Request
GET https://your-site.example/wp-json/plugixa-activity-log/v1/export?min_severity=high&date_from=2026-11-01&date_to=2026-11-12
Query parameters
The same filters as List Events: severity, min_severity, event_code, group, module, user_id, user_login, user_role, ip, object_type, object_id, action, search, date_from, date_to and site_id. They combine with AND, and a value the server does not understand is dropped rather than refused.
The paging parameters of List Events (per_page, before_id, after_id, with_total) have no effect here. On multisite, a site administrator only ever gets their own site’s events, whatever site_id says.
Responses
200 OK. The body is the CSV file, not JSON.
Content-Type: text/csv; charset=utf-8
Content-Disposition: attachment; filename="activity-log-2026-11-12-093000.csv"
X-Content-Type-Options: nosniff
id,time_utc,time_site,severity,event_code,group,message,user_id,user,role,ip,object_type,object_id,object,site_id
48211,"2026-11-12 09:14:02","2026-11-12 10:14:02",medium,1003,Sign-ins,"Failed sign-in attempt for “sam”: the password was wrong.",5,sam,editor,203.0.113.9,user,5,sam,1
| Column | Meaning |
|---|---|
id |
The event’s id |
time_utc |
When it happened, UTC, YYYY-MM-DD HH:MM:SS |
time_site |
The same moment on the site’s clock |
severity |
informational, low, medium, high or critical |
event_code |
The event code |
group |
The name of the event’s area, as shown in the admin |
message |
The sentence recorded at the time |
user_id |
The WordPress user id, 0 when nobody was signed in |
user |
The login recorded at the time |
role |
The role the person had at the time |
ip |
The client address |
object_type, object_id, object |
What the event was about: its kind, its id (empty when there is none) and its label |
site_id |
The network site |
The file starts with a UTF-8 byte-order mark so that spreadsheet programs read it as UTF-8. A cell that starts with =, +, -, @, a tab or a carriage return gets a leading ', so a spreadsheet does not run it as a formula.
Errors
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/plugixa-activity-log/v1/export?min_severity=high&date_from=2026-11-01&date_to=2026-11-12" \
-u "admin:$WP_APP_PASSWORD" \
-o activity-log.csv
<?php
$query = http_build_query(['min_severity' => 'high', 'date_from' => '2026-11-01', 'date_to' => '2026-11-12']);
$ch = curl_init('https://your-site.example/wp-json/plugixa-activity-log/v1/export?' . $query);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => 'admin:' . getenv('WP_APP_PASSWORD'),
]);
file_put_contents('activity-log.csv', curl_exec($ch));
curl_close($ch);
const auth = Buffer.from(`admin:${process.env.WP_APP_PASSWORD}`).toString('base64');
const query = new URLSearchParams({ min_severity: 'high', date_from: '2026-11-01', date_to: '2026-11-12' });
const response = await fetch(`https://your-site.example/wp-json/plugixa-activity-log/v1/export?${query}`, {
headers: {
'Authorization': `Basic ${auth}`,
},
});
const csv = await response.text();
Quick Links
Share