plans | array | Audit data for each requested plan. |
plans[].plan_id | string | Plan identifier. |
plans[].plan_version | number | Current plan version. |
plans[].status | enum | active, suspended, or completed. |
plans[].budget | object | Budget state. |
plans[].budget.authorized | number | Total authorized budget from the plan. |
plans[].budget.committed | number | Total budget committed from confirmed outcomes. |
plans[].budget.remaining | number | Authorized minus committed. |
plans[].budget.utilization_pct | number | Committed as a percentage of authorized. |
plans[].channel_allocation | object | Current channel mix. Keyed by channel ID. |
plans[].channel_allocation[channel].committed | number | Budget committed to this channel. |
plans[].channel_allocation[channel].pct | number | Channel’s share of the authorized total budget. |
plans[].governed_actions | array | Per-governed-action breakdown, grouped by governance_context. |
plans[].governed_actions[].governance_context | string | Opaque governance context identifying this governed action. |
plans[].governed_actions[].purchase_type | enum | media_buy, rights_license, signal_activation, or creative_services. |
plans[].governed_actions[].status | enum | active, suspended, or completed. |
plans[].governed_actions[].committed | number | Budget committed for this governed action. |
plans[].governed_actions[].check_count | integer | Number of governance checks performed. |
plans[].summary | object | Aggregate validation and outcome statistics. |
plans[].summary.checks_performed | number | Total governance checks performed. |
plans[].summary.outcomes_reported | number | Total outcomes reported. |
plans[].summary.statuses | object | Count of each governance check status (approved, denied, conditions). Also includes human_reviewed as a supplementary count — checks that required human review before resolving. Always a subset of approved + denied; conditions is an agent-issued flow-control state and is never counted here. |
plans[].summary.findings_count | number | Total findings across all checks and outcomes. |
plans[].summary.escalations | array | Checks that were escalated for human review and their resolutions. |
plans[].summary.escalations[].check_id | string | The governance check that was escalated. |
plans[].summary.escalations[].reason | string | Why the check was escalated. |
plans[].summary.escalations[].resolution | string | How it was resolved (e.g., approved_by_human, rejected_by_human). |
plans[].summary.escalations[].resolved_at | string | ISO 8601 resolution timestamp. |
plans[].summary.drift_metrics | object | Aggregate governance metrics for detecting oversight drift. See specification. |
plans[].summary.drift_metrics.escalation_rate | number | Fraction of checks that were escalated for human review (0-1). |
plans[].summary.drift_metrics.escalation_rate_trend | enum | increasing, stable, or declining. |
plans[].summary.drift_metrics.auto_approval_rate | number | Fraction of checks approved without human intervention (0-1). |
plans[].summary.drift_metrics.human_override_rate | number | Fraction of escalations where the human overrode the governance agent’s recommendation (0-1). |
plans[].summary.drift_metrics.mean_confidence | number | Average confidence score across findings (0-1). Present when findings include confidence. |
plans[].summary.drift_metrics.thresholds | object | Organization-defined thresholds for drift metrics. When a metric crosses its threshold, the governance agent includes a finding. |
plans[].summary.drift_metrics.thresholds.escalation_rate_max | number | Maximum acceptable escalation rate. A rate above this may indicate policy miscalibration. |
plans[].summary.drift_metrics.thresholds.escalation_rate_min | number | Minimum acceptable escalation rate. A rate below this may indicate eroding oversight. |
plans[].summary.drift_metrics.thresholds.auto_approval_rate_max | number | Maximum acceptable auto-approval rate. |
plans[].summary.drift_metrics.thresholds.human_override_rate_max | number | Maximum acceptable human override rate. |
plans[].entries | array | Ordered audit trail (only when include_entries is true). |
plans[].entries[].id | string | Entry identifier. |
plans[].entries[].type | enum | check or outcome. |
plans[].entries[].timestamp | string | ISO 8601 timestamp. |
plans[].entries[].plan_id | string | Plan this entry belongs to. Present when querying multiple plans or a portfolio. |
plans[].entries[].caller | string | URL of the agent that made the request. Resolved from the credentials used on the governance callback. |
plans[].entries[].tool | string | The AdCP tool (present for check entries). |
plans[].entries[].status | enum | Governance check status (present for check entries). |
plans[].entries[].check_type | enum | intent or execution (present for check entries). Inferred from the fields present on the original check request. |
plans[].entries[].mode | enum | audit, advisory, or enforce — governance mode active when this check was evaluated. Recorded by the governance agent from its runtime configuration at check time, not from a plan field. Present on check entries; absent on outcome entries and on governance agents that have not yet adopted this field. Lets auditors distinguish approved decisions made under enforce from those made under audit (where the agent could not have blocked anything). |
plans[].entries[].explanation | string | Human-readable explanation of the governance decision (present for check entries). |
plans[].entries[].policies_evaluated | array | Registry policy IDs evaluated during this check. |
plans[].entries[].categories_evaluated | array | Governance categories evaluated (e.g., budget_authority, regulatory_compliance). Agent-internal labels, not a protocol-level enum — each string is defined by the governance agent’s policy model. Since one governance agent per account composes all specialist review (legal, brand safety, category-specialist reviewers) behind its single endpoint, categories_evaluated and findings[].details are how internal decomposition surfaces for audit. Consumers MUST treat values as opaque labels: pattern-matching against a fixed list is not safe across agents. |
plans[].entries[].findings | array | Findings from this check, including category, severity, policy ID, explanation, and confidence. |
plans[].entries[].governance_context | string | Opaque governance context identifying the governed action this entry belongs to. |
plans[].entries[].plan_hash | string | Audit-layer binding to the plan revision this attestation was evaluated over — base64url_no_pad(SHA-256(JCS(plan_payload))) per Plan binding and audit. Present on check entries. Auditors and buyer-side compliance tooling verify by recomputing over the retained plan revision and byte-comparing the decoded 32-byte digests. |
plans[].entries[].purchase_type | enum | media_buy, rights_license, signal_activation, or creative_services. Present when the entry is associated with a specific governed action. |
plans[].entries[].outcome | enum | Outcome type (present for outcome entries). |
plans[].entries[].committed_budget | number | Budget committed (present for completed outcome entries). |
plans[].entries[].outcome_status | string | Outcome status (present for outcome entries). |