`GET /api/admin/audit/board` — the #691 §E server-paginated admin-audit board: filtered+paged rows + total + (optional) action/target-kind facets.
const url = 'https://example.com/api/admin/audit/board';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/admin/audit/boardParameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Exact action (the action facet/select).
Exact target_kind (the target facet/select).
Free-text search over action / target_kind / target_id / actor.
Whitelisted sort key: created_at | action | target_kind.
Sort direction asc | desc (default desc).
Recompute the facets (default true).
Responses
Section titled “Responses”One page of the admin-audit board.
object
The action / target-kind facet chips (each {value,count}, largest-first).
object
One filter-chip value and its count. Counts are workspace-wide (independent of the active filter — the chip totals do not shift as the user filters).
object
How many rows fall in this bucket.
The bucket value (e.g. a scope, a role, a framework).
One filter-chip value and its count. Counts are workspace-wide (independent of the active filter — the chip totals do not shift as the user filters).
object
How many rows fall in this bucket.
The bucket value (e.g. a scope, a role, a framework).
object
Examplegenerated
{ "facets": { "actions": [ { "count": 1, "value": "example" } ], "target_kinds": [ { "count": 1, "value": "example" } ] }, "items": [ { "action": "example", "actor_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "after": "example", "before": "example", "created_at": "2026-04-15T12:00:00Z", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "reason": "example", "target_id": "example", "target_kind": "example" } ], "total": 1}