Skip to content
Select themeSelect language

GET /organization/members/{user_id}/audit — recent audit events authored by a member, scoped to the org (member detail drawer).

GET
/api/organization/members/{user_id}/audit
curl --request GET \
--url https://example.com/api/organization/members/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/audit
user_id
required
string format: uuid
Media typeapplication/json
Array<object>
object
action
required
string
actor_email
string | null
actor_id
required
string
actor_label

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.

string | null
actor_type
required
string
correlation_id
required
string format: uuid
created_at
required
string format: date-time
id
required
string format: uuid
outcome

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.

string | null
payload_redacted
required

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
key
additional properties
project_id
string | null format: uuid
reason
string | null
target_id
required
string
target_type
required
string
task_id
string | null format: uuid
workspace_id
string | null format: uuid
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"
}
]