POST /v1/admin/retention/audit-events/purge
Full-admin-only retention control for durable command-center audit events. Dry-run returns counts only. Non-dry-run purges delete old rows from `admin_access_events`, `admin_command_events`, and `admin_approval_events` and require the exact confirmation string. Request bodies, raw tokens, prompts, outputs, query values, and local route details are never stored in these audit tables.

Authentication

API Key (header: X-B3IQ-Admin-Token)

Request Body required

application/json
older_than_days integer
Delete audit events created before this rolling window.
dry_run boolean
When true, return eligible row counts without deleting.
confirm string
Required for non-dry-run requests and must equal `PURGE AUDIT EVENTS`.

Responses

200 Audit retention dry-run or purge result.
application/json
object string
Enum: b3iq.admin.audit_retention_purge
status string
Enum: dry_run, purged
retention_policy string
Enum: admin_audit_events_v1
eligible_access_event_count integer
eligible_command_event_count integer
eligible_approval_event_count integer
eligible_total_event_count integer
purged_access_event_count integer
purged_command_event_count integer
purged_approval_event_count integer
purged_total_event_count integer
older_than_days integer
cutoff_created_before string (date-time)
purged_at string (date-time)
default B3IQ-native problem response.
curl -X POST 'https://{controlPlaneHost}/v1/admin/retention/audit-events/purge' \  -H 'X-B3IQ-Admin-Token: YOUR_API_KEY' \  -H 'Content-Type: application/json' \  -d '{  "older_than_days": 365,  "dry_run": false,  "confirm": "string"}'
const response = await fetch('https://{controlPlaneHost}/v1/admin/retention/audit-events/purge', {  method: 'POST',  headers: {      "X-B3IQ-Admin-Token": "YOUR_API_KEY",      "Content-Type": "application/json"  },  body: JSON.stringify({    "older_than_days": 365,    "dry_run": false,    "confirm": "string"  })});const data = await response.json();console.log(data);
200 Response
{  "object": "b3iq.admin.audit_retention_purge",  "status": "dry_run",  "retention_policy": "admin_audit_events_v1",  "eligible_access_event_count": 123,  "eligible_command_event_count": 123,  "eligible_approval_event_count": 123,  "eligible_total_event_count": 123,  "purged_access_event_count": 123,  "purged_command_event_count": 123,  "purged_approval_event_count": 123,  "purged_total_event_count": 123,  "older_than_days": 123,  "cutoff_created_before": "2024-01-01T00:00:00Z",  "purged_at": "2024-01-01T00:00:00Z"}
Ask a question... ⌘I