Surfil

API · audit

There is no public device endpoint for the audit chain, and this page won't pretend there is. Audit entries are written server-side by privileged actions and read by owners and admins through the Hub, not fetched with a device token.

What writes the chain

Privileged operations append hash-linked audit entries as a side effect - they are not a client-callable endpoint. For example:

  • POST /v1/billing/webhook - Stripe events that change org entitlement are audited (signature-verified, replay-idempotent).
  • Key rotation - key.rotate epoch→N is recorded so you know which epoch key attested a given receipt.
  • Device revocation and role changes - recorded with actor, target, and a hash link to the prior entry.

How to read it

The chain is exposed to authorized users in the Hub with per-entry drill-down, not over the public API. That keeps a tamper-evident record readable by the people who should see it, without adding a device-token surface to a privileged log.

The mechanics of the hash chain - why editing a past entry breaks every later hash - are in the audit chain runbook. When a public audit read endpoint ships, it will be documented here, not before.