---
title: "The agent-safety verdict held a message BEFORE delivery — we never hold without telling you"
method: POST
path: "inbound.quarantined"
---

# The agent-safety verdict held a message BEFORE delivery — we never hold without telling you

`POST inbound.quarantined` (webhook)

## Headers

- `x-oveyon-event` string, required
- `x-oveyon-timestamp` integer, required
- `x-oveyon-signature` string, required

## Payload

- InboundQuarantined: Body of the `inbound.quarantined` webhook: the message was HELD before delivery — by the mailbox agent-safety quarantine or by one of your inbound policies (decision: we never hold without telling you). The body is not delivered; a human releases it in the panel or via API.
  - `event` 'inbound.quarantined', required
  - `eventId` string, uuid, required: Unique per POST (it is the delivery uid, never reused) — dedupe on it.
  - `timestamp` string, date-time, required
  - `message` object, required
    - `id` string
    - `subject` string, nullable
    - `fromHeader` string, nullable
  - `recipient` object, required
    - `id` string
    - `to` string
  - `quarantine` object, required
    - `reason` 'agent_safety_dangerous' | 'policy', required: `agent_safety_dangerous` = the mailbox quarantine held it on the verdict; `policy` = one of your inbound policies (action hold) held it — see `policy`.
    - `heldAt` string, date-time, required
    - `expiresAt` string, date-time, nullable: Policy holds follow the mailbox retention: after this moment the copy is deleted and release/reply answer 410 copy_expired. null for the agent-safety quarantine, whose clock only starts after release.
    - `agentSafety` object, nullable, required
      - `verdict` 'clean' | 'suspicious' | 'dangerous'
      - `score` integer
    - `policy` object, nullable: Present when reason is `policy`.
      - `name` string
      - `action` 'hold'
    - `release` object, required
      - `panel` string, uri: Where a human decides (Inbound → Deliveries, «Held»). Replying via API answers 409 message_quarantined until then.
      - `note` string

## Acknowledgement `200`

Answer 2xx fast. Nothing was delivered: the body is held until a human releases it in the panel; reply via API answers 409 message_quarantined meanwhile.

---

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