Skip to main content

Viewing history in the app

Settings → Change History (/settings/change-history) reads this API back. It leads with chain integrity, because a log you cannot trust is worse than no log, and shows a field-level before/after diff for the selected change rather than the raw row snapshots. Filter by entity type, action, or the user who made the change. Selecting an entry shows who, when, the request id, and each field that moved.
Attribution. Entries written before 2026-08-15 record the actor as system with no user id — the helpers accepted one and almost no caller passed it. The screen flags those in amber as “no actor recorded” rather than implying the platform made the change. Entries written since name the person.
Snapshot coverage is partial. Whole-row before/after snapshots are recorded for configuration entities — offers, creatives, contact policies, decisioning gates, decision flows — and not for high-volume records such as interactions. Where no snapshot exists the screen says no field-level detail was recorded, rather than showing an empty diff that would imply nothing changed.

GET /api/v1/audit-logs

Query audit log entries. Admin only. Logs are immutable — no DELETE, PUT, or PATCH operations are permitted.

Query Parameters

Response

Audit log fields

Audit logs are append-only. DELETE, PUT, and PATCH requests return 405 Method Not Allowed with a clear message that audit logs are immutable.

Cascade audit entries

When a parent entity is soft-deleted with cascade (e.g., deleting a category cascades to sub-categories and offers), a separate audit log entry is created for each cascaded child. These entries include a changes.reason field indicating the cascade source:

GET /api/v1/audit-logs/verify

Verify the integrity of the audit log chain using SHA-256 hash verification. Admin only.

Query Parameters

Response

Broken Chain Response

Broken Reasons


GET /api/v1/audit-export

Export audit logs for SOC 2 compliance. Supports JSON, CSV, and SOC 2 formatted output. Rate limited to 10 requests per 60 seconds. Admin only.

Query Parameters

Example

CSV exports are returned as downloadable files with Content-Disposition: attachment.

POST /api/v1/audit-export

Verify audit integrity chain via the export endpoint.

Request Body


Roles

See also: Compliance | Operations Dashboard