Skip to content
Select themeSelect language

get_api_operator_v1_overview

GET
/api/operator/v1/overview
curl --request GET \
--url https://example.com/api/operator/v1/overview
Media typeapplication/json
object
active_task_count
required
integer format: int64
audit_event_count_24h
required
integer format: int64
cost_anomalies
required
Array<object>
object
baseline_cost_usd
required
number format: double
ratio
required
number format: double
recent_cost_usd
required
number format: double
top_task_id

The top spend-driving task in the window — the card deep-links it (#555).

string | null format: uuid
top_task_title
string | null
workspace_id
required
string format: uuid
workspace_name

The workspace’s name (#555 — the card shows the name, not the bare UUID).

string | null
exfil_event_count_24h
required
integer format: int64
exfil_hit_rates
required
Array<object>
object
action
required
string
audit_count
required
integer format: int64
event_count
required
integer format: int64
hit_rate
required
number format: double
workspace_id
string | null format: uuid
failed_task_count_24h
required
integer format: int64
model_degradations
required
Array<object>
object
agent_type
required
string
current_failure_rate
required
number format: double
model
string | null
previous_failure_rate
required
number format: double
sample_count
required
integer format: int64
provider_outages
required
Array<object>
object
failed_count_1h
required
integer format: int64
failed_count_24h
required
integer format: int64
latest_failure_at
required
string format: date-time
provider
required
string
recent_exfil_events
required
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
recent_failed_tasks
required
Array<object>
object
failed_at
required
string format: date-time
task_id
required
string format: uuid
title
required
string
workspace_id
string | null format: uuid
workspace_count
required
integer format: int64
Examplegenerated
{
"active_task_count": 1,
"audit_event_count_24h": 1,
"cost_anomalies": [
{
"baseline_cost_usd": 1,
"ratio": 1,
"recent_cost_usd": 1,
"top_task_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"top_task_title": "example",
"workspace_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"workspace_name": "example"
}
],
"exfil_event_count_24h": 1,
"exfil_hit_rates": [
{
"action": "example",
"audit_count": 1,
"event_count": 1,
"hit_rate": 1,
"workspace_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
}
],
"failed_task_count_24h": 1,
"model_degradations": [
{
"agent_type": "example",
"current_failure_rate": 1,
"model": "example",
"previous_failure_rate": 1,
"sample_count": 1
}
],
"provider_outages": [
{
"failed_count_1h": 1,
"failed_count_24h": 1,
"latest_failure_at": "2026-04-15T12:00:00Z",
"provider": "example"
}
],
"recent_exfil_events": [
{
"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"
}
],
"recent_failed_tasks": [
{
"failed_at": "2026-04-15T12:00:00Z",
"task_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"title": "example",
"workspace_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
}
],
"workspace_count": 1
}