---
title: "Add a mailbox forwarding destination"
method: POST
path: "/mailboxes/{id}/forwarding"
tags: ["Mailboxes"]
---

# Add a mailbox forwarding destination

`POST /mailboxes/{id}/forwarding`

## Request

- Base URL: `https://shipmail.to/api/v1`
- URL: `https://shipmail.to/api/v1/mailboxes/{id}/forwarding`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://shipmail.to/api/auth/oauth2/authorize`, token URL `https://shipmail.to/api/auth/oauth2/token`)

Send a confirmation email to a forwarding destination. Forwarding becomes active only after the recipient confirms. Active forwarding keeps a copy in the Shipmail mailbox and excludes messages classified as spam. Repeating this request for a pending destination sends a new confirmation link.

## Headers

- `X-Shipmail-Organization` string

## Request body

- CreateMailboxForwardingRequest
  - `destination` string, email, required
  - `sender` string, email, nullable: Optional exact From address. Omit or set null to forward every non-spam message.
  - `recipient` string, email, nullable: Optional exact mailbox primary address or alias. Omit or set null to match every address. When both sender and recipient are set, a message must match both.

## Response `200`

Forwarding destination created, refreshed, or already active.

- MailboxForwarding
  - `object` 'mailbox_forwarding', required
  - `id` string, required
  - `mailbox_id` string, required
  - `destination` string, email, required
  - `sender` string, email, nullable, required: Exact From address to forward, or null to forward every non-spam message.
  - `recipient` string, email, nullable, required: Exact mailbox primary address or alias that received the message, or null to match every address.
  - `status` 'pending' | 'active', required
  - `verification_sent_at` string, date-time, nullable, required
  - `verified_at` string, date-time, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `401`: Authentication failed.
- `403`: Insufficient permissions.
- `404`: Resource not found.
- `422`: Validation failed.
- `429`: Rate limit exceeded.

---

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