GET /organization/members/{user_id}/audit — recent audit events authored by a member, scoped to the org (member detail drawer).
const url = 'https://example.com/api/organization/members/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/audit';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/organization/members/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/auditParameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”object
Resolved human actor label/email for a user actor — the filtered audit-board
query (list_filtered) populates these via a LEFT JOIN on user_profiles /
auth.users; every other SELECT * decode leaves them None (the column is
absent), so #[sqlx(default)] keeps those call sites working unchanged. The UI
shows the label when present and falls back to a shortened actor_id otherwise.
How a privileged decision RESOLVED: allowed | denied | approved | rejected | scope_bound | frozen | escalated | ... (open vocabulary, set by the writer
AuditInput::with_outcome at the decision call sites). None for every
non-decision event (a plain mutation, a read) and every historical row; the
Reports Audit board renders the result chip only when this is Some. Decoded
from the audit_events.outcome column (migration 261); #[sqlx(default)]
keeps a projection that omits the column (e.g. a count-only CTE) decoding.
The redacted event payload (the audit drawer reads it as a typed map).
Runtime stays serde_json::Value; the spec types it as an open map.
object
Examplegenerated
[ { "action": "example", "actor_email": "example", "actor_id": "example", "actor_label": "example", "actor_type": "example", "correlation_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "created_at": "2026-04-15T12:00:00Z", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "outcome": "example", "payload_redacted": { "additionalProperty": "example" }, "project_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "reason": "example", "target_id": "example", "target_type": "example", "task_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "workspace_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }]