Skip to main content
Sente holds passwords, TOTP seeds, and logged-in browser sessions on your behalf. The audit trail is how you answer the question that follows from that: who touched them, and when. Every sensitive act — a credential read in plaintext, a session handed to a caller, a portable session exported, a connection revoked, a run taken over by a person — writes an event you can query. The trail is insert-only. There is no endpoint to edit or delete an event, events outlive the resources they describe, and they are scoped to your organization. meta carries descriptive fields only — never a password, never a TOTP seed, never session state.
This is the pull-based counterpart to webhooks. Run outcomes (completed, failed, blocked) are not audit events — they live on the run and on the run.* webhooks. The audit trail records deliberate acts on credentials, sessions, accounts, and takeover.

Query it

GET /v1/audit-events. There is no SDK or CLI wrapper for this endpoint yet — it is a plain authenticated GET.

Parameters

Response 200 — an array, newest first:
There is no pagination cursor: page by moving since backwards and raising limit. There is no endpoint to fetch a single event by id, and another org’s events are never returned.

Every action Sente records

This is the complete list of action values the API emits today.
meta never contains secret values, and neither does any other field. A credentials.read event tells you a read happened and against which account — it does not contain the credentials. Nor does it identify an individual actor: API keys are org-scoped, so an event records the organization, the action, and the subject — not which person or key performed it.

In the dashboard

app.sente.runActivity → the Security tab renders the same trail in plain English — “Credentials read”, “Logged-in session exported” — with the sensitive actions highlighted. It is the fastest way to answer “did anything touch our accounts this week” without writing a query.

Practical uses

Poll action=credentials.read, action=session.export, and action=connection.delete on a schedule with since set to your last poll, and forward anything new to your own alerting. Those three are the events where account access left Sente’s control.
Pull a window with since, then filter client-side on subjectId equal to the account’s reg_… id. Because the trail is insert-only and events outlive their resources, this still works after the connection was deleted.
connection.revoke and connection.delete are the durable record that access was withdrawn — useful when the account owner asks for evidence. Pair with the connection’s revokedAt field, which reflects current state rather than history.

Errors

Next steps

Security model

Where credentials live, how they are encrypted, and who can read them.

Sessions

What session.open and session.export actually hand out.

Webhooks

Push events for mail and run state, as opposed to this pull-based trail.

Audit events API reference

The endpoint contract in reference form.