Audit Logs
Every significant action in CampaignOS is recorded in the audit log for compliance and debugging.
List Audit Logs
GET /api/workspaces/{workspaceId}/audit-logs
Paginated, filterable audit trail.
Auth: Session required
Query Parameters:
| Param | Type | Default | Description |
|---|---|---|---|
page | number | 1 | Page number |
limit | number | 50 | Items per page |
action | string | — | Filter by action type |
entityType | string | — | Filter by entity type |
entityId | string | — | Filter by entity ID |
userId | string | — | Filter by user who performed the action |
Response:
{
"data": [
{
"id": "log_abc123",
"action": "contact.consent.updated",
"entityType": "ContactConsent",
"entityId": "ct_abc123",
"userId": "usr_123",
"metadata": {
"channel": "EMAIL",
"oldStatus": "OPTED_IN",
"newStatus": "OPTED_OUT"
},
"createdAt": "2026-01-15T10:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 5000,
"totalPages": 100
}
}Logged Actions
| Action | Description |
|---|---|
contact.created | Contact created |
contact.updated | Contact profile updated |
contact.deleted | Contact deleted |
contact.merged | Two contacts merged |
contact.anonymized | Contact data anonymized (DSR) |
contact.consent.updated | Consent status changed |
campaign.created | Campaign created |
campaign.updated | Campaign updated |
campaign.executed | Campaign executed |
message.sent | Message dispatched |
workspace.created | Workspace created |
workspace.updated | Workspace settings updated |
apikey.created | API key created |
apikey.deleted | API key revoked |
unsubscribe | Contact unsubscribed |
Last updated on