---
title: "Send a test of a campaign"
method: POST
path: "/campaigns/{id}/send-test"
tags: ["Campaigns"]
---

# Send a test of a campaign

`POST /campaigns/{id}/send-test`

## Request

- Base URL: `https://api.sendfox.com`
- URL: `https://api.sendfox.com/campaigns/{id}/send-test`
- Auth: OAuth 2
  - Authorization code: `https://sendfox.com/oauth/authorize`
  - Token URL: `https://sendfox.com/oauth/token`

Delivers the rendered campaign to the addresses given so it can be checked in a
real inbox. This is a real send to those addresses only: the campaign's audience is
untouched and the campaign stays a draft. Recipients are added to the account's
"My Test Contacts" list.

Limits: up to 30 addresses per call (1 on the free plan) and 30 test sends per
account per day, shared with Send Test in the SendFox app. A test from a newly
created account goes to the account's own address only, unless the campaign sends
from a domain the account has verified; `notice` in the response says so when
addresses were dropped.

## Request body

- object
  - `emails` string[], required: Addresses to deliver the test to. Trimmed and de-duplicated.

## Response `200`

Test delivered

- object
  - `sent` boolean
  - `campaign_id` integer
  - `sent_to` string[]: The addresses the test actually went to
  - `notice` string, nullable: Set when the test was narrowed to the account's own address

## Other responses

- `403`: Forbidden. Most often an ownership/authorization failure (Laravel's default `{"message": "..."}` shape). If the account is restricted by SendFox, the response instead carries the structured `account_restricted` body with a link to the account status page.
- `404`: Campaign not found
- `422`: No addresses, an invalid address, or more than the per-call limit
- `429`: Either limit was reached: the 60 requests per minute shared across all endpoints, or this endpoint's own 30 test sends per day. Don't assume which one: wait for the `Retry-After` seconds, which is under a minute for the first and can be hours for the second.

## Changes

- **2026-11-07** `ae5d5ba1d502`: 1 info
  - added the media type `application/json` for the response with the status `429`
- **2026-09-30** `1c85e046fea0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sendfox/apis/sendfox-api/changes/campaigns/:id/send-test/post.md)

---

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