---
title: "Approve a held message (not agent-callable)"
method: POST
path: "/v1/messages/{id}/approve"
tags: ["messages"]
---

# Approve a held message (not agent-callable)

`POST /v1/messages/{id}/approve`

## Request

- Base URL: `https://api.replylayer.ai`
- URL: `https://api.replylayer.ai/v1/messages/{id}/approve`
- Auth: HTTP bearer

## Path parameters

- `id` string, required

## Request body

- object
  - `add_to_allowlist` boolean
  - `reason` string

## Response `200`

Success

- object
  - `allowlist` object
    - `email` string
    - `reason` 'invalid_address'
    - `result` 'added' | 'already_on_list' | 'not_added', required
  - `message_id` string, required
  - `status` 'sent' | 'blocked', required

## Other responses

- `400`: Validation error
- `401`: Missing or invalid API key
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict
- `429`: Rate limited
- `500`: Internal error (code: INTERNAL_ERROR)
- `502`: Upstream failure
- `503`: Temporarily unavailable

---

[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)
