---
title: "Dry-run a sample send against the mailbox's policy (no side effects)"
method: POST
path: "/v1/mailboxes/{id}/policy/preview"
tags: ["policy"]
---

# Dry-run a sample send against the mailbox's policy (no side effects)

`POST /v1/mailboxes/{id}/policy/preview`

## Request

- Base URL: `https://api.replylayer.ai`
- URL: `https://api.replylayer.ai/v1/mailboxes/{id}/policy/preview`
- Auth: HTTP bearer

## Path parameters

- `id` string, required

## Request body

- object
  - `at_time` string, date-time
  - `body` string
  - `run_content_scan` boolean
  - `subject` string
  - `to` string, email, required

## Response `200`

Success

- object
  - `budget` object, required
    - `limit` integer, required
    - `remaining` integer, required
    - `warmup_applied` boolean, required
  - `content_scan_run` boolean, required
  - `email_effect` object, required
    - `effect_status` 'sent' | 'held_for_review' | 'held_infrastructure' | 'blocked', required
    - `releasable` boolean, required
    - `retryable` boolean, required
    - `terminal` boolean, required
  - `mailbox_id` string, required
  - `result` 'passes_all_checks_run' | 'would_hold' | 'would_block', required
  - `result_summary` string, required
  - `trace` object[], required
    - `details` object, required
    - `gate` 'authoring' | 'recipient_authority' | 'send_window' | 'content_scan' | 'human_review' | 'send_budget', required
    - `outcome` 'pass' | 'would_hold' | 'would_block' | 'not_run' | 'skipped', required
    - `reason` string, required

## Other responses

- `400`: Validation error
- `401`: Missing or invalid API key (code: UNAUTHORIZED)
- `404`: Not found
- `429`: Rate limited (code: RATE_LIMITED)
- `500`: Internal error (code: INTERNAL_ERROR)

---

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