---
title: "Send Test Email Broadcast"
method: POST
path: "/emails/broadcasts/{id}/send_test"
tags: ["Emails::Broadcast"]
---

# Send Test Email Broadcast

`POST /emails/broadcasts/{id}/send_test`

## Request

- Base URL: `https://myworkspace.myclickfunnels.com/api/v2`
- URL: `https://myworkspace.myclickfunnels.com/api/v2/emails/broadcasts/{id}/send_test`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://accounts.myclickfunnels.com/oauth/authorize`
    - Token URL: `https://accounts.myclickfunnels.com/oauth/token`
- TypeScript: <https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/docs/emails/broadcasts/:id/send_test/post.ts> (a function with typed inputs; its response is checked against the schema)

Send the saved main broadcast content to 1-5 explicit recipients without changing the broadcast or sending its audience. Matching workspace contacts personalize the preview. Subject and sender overrides affect only this test. The broadcast must satisfy the dashboard test-send eligibility check independently of overrides; completed, canceled, unhealthy and incomplete broadcasts cannot be tested. Existing preview permissions and workspace/team quotas apply. API and MCP test sends share a limit of 10 requests per minute per user. Submissions are synchronous and ordered; duplicates are separate submissions. HTTP 200 confirms that the existing preview action was created and run. No status resource, inbox tracking or idempotent replay is provided.

## Path parameters

- `id` string, required

## Request body

- object
  - `emails_broadcasts_send_preview_action` object, required: Unsupported and read-only keys are ignored.
    - `recipients` string[], required: One email address per entry. Outer whitespace is trimmed; order and duplicates are preserved.
    - `subject` string, nullable: Optional test-only subject with valid Liquid. Omitted, null or blank uses the saved subject.
    - `from_address_id` union: Optional numeric or public ID from this workspace's valid preview senders. Omitted, null or blank uses the saved sender. Overrides cannot repair an ineligible broadcast.
      - integer
      - string

## Response `200`

The existing preview action ran for every requested recipient.

- object
  - `status` 'accepted'
  - `accepted_count` integer

## Other responses

- `400`: Missing/non-object request root or malformed JSON.
- `401`: Unauthorized
- `403`: Scope/workspace-grant denial, or an inactive team subscription.
- `404`: Not Found
- `422`: Invalid fields, ineligible broadcast, unusable sender, or exhausted preview budget. No messages are submitted. An exhausted workspace or team preview limit returns the message in the example; retrying before the limit resets fails the same way.
- `429`: More than 10 API/MCP test-send requests per minute for this user. No preview action is created and no preview budget is consumed.

## Changes

- **2026-11-03** `511d88b30aea`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/changes/emails/broadcasts/:id/send_test/post.md)

---

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