---
title: "Create Event Audit"
method: POST
path: "/audits/events/{event_id}"
tags: ["audits"]
---

# Create Event Audit

`POST /audits/events/{event_id}`

## Request

- Base URL: `https://api.verdun.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.verdun.ai/audits/events/{event_id}`
- Auth: HTTP bearer

Audit one human decision (owner, monitoring manager or operator; read-only
is refused). A lead's overturn is effective at once; a peer's waits for a
lead's review. A lead may replace a peer uphold or a still-pending peer
overturn. 404 no event / no evaluation, 409 not a human decision or already
audited, 403 on your own call.

## Path parameters

- `event_id` string, uuid, required

## Request body

- CreateCallAuditRequest
  - `verdict` 'upheld' | 'overturned', required: Uphold the original decision (a human operator's call or the AI agent's close), or overturn it.
  - `correct_disposition` string, nullable: Overturned only (required there, forbidden on upheld): the disposition the call should have been, as an OperatorDisposition MEMBER NAME. One of FALSE_ALARM, SUSPICIOUS_MONITOR, ESCALATE_VOICE_DOWN, ESCALATE_DISPATCH, and different from the original decision (the operator's, or the agent's).
  - `reason` string, nullable: Overturned only (required there, forbidden on upheld): why the call was wrong. Must not be blank; up to 2000 characters after stripping.

## Response `200`

Successful Response

- CallAuditOut
  - `event_id` string, uuid, required: The audited alarm.
  - `evaluation_id` string, uuid, nullable: The audited evaluation; null once that evaluation or its deciding account is deleted.
  - `operator_id` string, uuid, nullable: The decider; null once that account is deleted, and always null when the decider is the AI agent.
  - `operator_name` string, required: Snapshot of the decider's name; "Verdun Agent" when the decider is the AI agent.
  - `decision` string, required: The decider's OperatorDisposition MEMBER NAME at audit time.
  - `verdict` 'upheld' | 'overturned', required: The lead's ruling on the original decision.
  - `correct_disposition` string, nullable: Overturned only: the disposition it should have been (member name).
  - `reason` string, nullable: Overturned only: the auditor's reason.
  - `auditor_id` string, uuid, nullable: The auditing lead; null once that account is deleted.
  - `auditor_name` string, required: Snapshot of the auditing lead's name.
  - `ad_hoc` boolean, required: True when the call was neither sampled nor rushed: a lead picked it themselves.
  - `created_at` string, date-time, required: When the audit was made.
  - `decider_is_agent` boolean: True when the audited decision was the AI agent's close (not a human operator's). Nobody loses points on such an audit and nobody can dispute it.
  - `points` integer, required: -1000 (SCORE_OVERTURN) charged to the decider while an overturn is active (confirmed, not reversed on dispute), else 0. Always 0 when the decider is the AI agent.
  - `catch_points` integer: Credited to a PEER auditor while their overturn is active, else 0 (a lead's overturn earns no catch): +1000 (SCORE_CATCH) for a human decider, +250 (SCORE_AGENT_CATCH) when the decider is the AI agent, 0 when `auto_confirmed`.
  - `auto_confirmed` boolean: A peer's overturn of an AI agent false alarm (Non-threatening -> False alarm): confirmed at once with no lead review (reviewed_by_id null) and worth 0 points. Only agent misses go to a lead and earn the agent catch.
  - `dispute` CallAuditDisputeOut
    - `note` string, required: The decider's dispute note.
    - `at` string, date-time, required: When the dispute was filed.
    - `status` 'pending' | 'reversed' | 'stands', required: pending until a different lead rules.
    - `ruled_by_id` string, uuid, nullable: The ruling lead; null while pending or once that account is deleted.
    - `ruled_by_name` string, nullable: Snapshot of the ruling lead's name.
    - `ruled_at` string, date-time, nullable: When the ruling was made.
  - `auditor_is_lead` boolean: Snapshot: the auditor was an owner or monitoring manager when they ruled (false = a peer operator).
  - `review_status` 'pending' | 'confirmed' | 'rejected', nullable: Overturned only (null on an upheld audit). A lead's overturn is confirmed at once; a peer's is pending until a lead confirms or rejects it. Only a confirmed overturn costs points.
  - `reviewed_by_id` string, uuid, nullable: The lead who confirmed or rejected the overturn (the auditor, for a lead's own); null while pending or once that account is deleted.
  - `reviewed_by_name` string, nullable: Snapshot of the reviewing lead's name.
  - `reviewed_at` string, date-time, nullable: When the overturn was confirmed or rejected.
  - `review_note` string, nullable: The reviewing lead's optional note.
  - `superseded_peer_audit` CallAuditRecord
    - `event_id` string, uuid, required: The audited alarm.
    - `evaluation_id` string, uuid, nullable: The audited evaluation; null once that evaluation or its deciding account is deleted.
    - `operator_id` string, uuid, nullable: The decider; null once that account is deleted, and always null when the decider is the AI agent.
    - `operator_name` string, required: Snapshot of the decider's name; "Verdun Agent" when the decider is the AI agent.
    - `decision` string, required: The decider's OperatorDisposition MEMBER NAME at audit time.
    - `verdict` 'upheld' | 'overturned', required: The lead's ruling on the original decision.
    - `correct_disposition` string, nullable: Overturned only: the disposition it should have been (member name).
    - `reason` string, nullable: Overturned only: the auditor's reason.
    - `auditor_id` string, uuid, nullable: The auditing lead; null once that account is deleted.
    - `auditor_name` string, required: Snapshot of the auditing lead's name.
    - `ad_hoc` boolean, required: True when the call was neither sampled nor rushed: a lead picked it themselves.
    - `created_at` string, date-time, required: When the audit was made.
    - `decider_is_agent` boolean: True when the audited decision was the AI agent's close (not a human operator's). Nobody loses points on such an audit and nobody can dispute it.
    - `points` integer, required: -1000 (SCORE_OVERTURN) charged to the decider while an overturn is active (confirmed, not reversed on dispute), else 0. Always 0 when the decider is the AI agent.
    - `catch_points` integer: Credited to a PEER auditor while their overturn is active, else 0 (a lead's overturn earns no catch): +1000 (SCORE_CATCH) for a human decider, +250 (SCORE_AGENT_CATCH) when the decider is the AI agent, 0 when `auto_confirmed`.
    - `auto_confirmed` boolean: A peer's overturn of an AI agent false alarm (Non-threatening -> False alarm): confirmed at once with no lead review (reviewed_by_id null) and worth 0 points. Only agent misses go to a lead and earn the agent catch.
    - `dispute` CallAuditDisputeOut
      - `note` string, required: The decider's dispute note.
      - `at` string, date-time, required: When the dispute was filed.
      - `status` 'pending' | 'reversed' | 'stands', required: pending until a different lead rules.
      - `ruled_by_id` string, uuid, nullable: The ruling lead; null while pending or once that account is deleted.
      - `ruled_by_name` string, nullable: Snapshot of the ruling lead's name.
      - `ruled_at` string, date-time, nullable: When the ruling was made.
    - `auditor_is_lead` boolean: Snapshot: the auditor was an owner or monitoring manager when they ruled (false = a peer operator).
    - `review_status` 'pending' | 'confirmed' | 'rejected', nullable: Overturned only (null on an upheld audit). A lead's overturn is confirmed at once; a peer's is pending until a lead confirms or rejects it. Only a confirmed overturn costs points.
    - `reviewed_by_id` string, uuid, nullable: The lead who confirmed or rejected the overturn (the auditor, for a lead's own); null while pending or once that account is deleted.
    - `reviewed_by_name` string, nullable: Snapshot of the reviewing lead's name.
    - `reviewed_at` string, date-time, nullable: When the overturn was confirmed or rejected.
    - `review_note` string, nullable: The reviewing lead's optional note.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/verdun/apis/verdun-api.md) - [All operations](https://skmtc.dev/verdun/apis/verdun-api/llms.txt) - [OpenAPI document](https://skmtc.dev/verdun/apis/verdun-api/revisions/a19366be50a3?raw)
