# POST /email-campaigns/:campaign_id/send

**Resource:** [Email Campaigns](./email-campaigns.md)  
**MCP tool:** `send_email_blast`  
**Scopes:** `email-blasts:write`  
**Write operation:** yes

Trigger sending of an email campaign to its saved audience. Costs credits per recipient. Optionally override the content for this send (subject, body_html, intro_text, cta_text, cta_url, show_reply_button) — the overrides are written onto the blast before it fires. The audience is NOT overridable here; it stays set on the blast. Duplicate guard: if the content is byte-identical to the last successful send, the request is refused with HTTP 409 { duplicate: true, last_sent_at } and nothing is sent — pass confirm_duplicate: true to override. To preview a blast in a real inbox without sending to the audience, use send_email_blast_test.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `campaign_id` | path | string | yes |  |
| `subject` | body | string | no | Optional. Override the blast subject for this send. |
| `body_html` | body | string | no | Optional. Override the blast HTML body for this send. |
| `intro_text` | body | string | no | Optional. Override the intro text for this send. |
| `cta_text` | body | string | no | Optional. Override the CTA button text. |
| `cta_url` | body | string | no | Optional. Override the CTA button URL. |
| `show_reply_button` | body | boolean | no | Optional. Toggle the reply button for this send. |
| `confirm_duplicate` | body | boolean | no | Set true to override the duplicate-content guard and re-send content identical to a previous send. Omit for the default safe behaviour. |

## Request example

```bash
curl -X POST   "https://api.trustpager.com/functions/v1/api/v1/email-campaigns/:campaign_id/send"   -H "Authorization: Bearer YOUR_API_KEY"
```

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`