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 achanges.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
Content-Disposition: attachment.
POST /api/v1/audit-export
Verify audit integrity chain via the export endpoint.Request Body
Roles
See also: Compliance | Operations Dashboard