# POST /email-campaigns/:campaign_id/sends/:send_id/duplicate

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

Copy a run into a new PAUSED run, offset by offset_days (default 7). This is how a send series is built: schedule the invite, duplicate it twice, then rewrite each copy as the reminder and the last call. The copy is independent from the moment it exists, so editing it never touches the original. It is always created paused, because a duplicate exists to be edited, and is armed with resume_email_blast_run once it says what it should.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `campaign_id` | path | string | yes |  |
| `send_id` | path | string | yes | The run to copy. |
| `offset_days` | body | number | no | Days after the source run's send time to place the copy. Defaults to 7. Negative values place it earlier. |
| `require_approval` | body | boolean | no | Optional. Set true to route this write into the approval queue for human review instead of executing it immediately (returns 202 + an approval_id). Works even when your key/token has permission to execute directly. |

## Request example

```bash
curl -X POST   "https://api.trustpager.com/functions/v1/api/v1/email-campaigns/:campaign_id/sends/:send_id/duplicate"   -H "Authorization: Bearer YOUR_API_KEY"   -H "Content-Type: application/json"   -d '{"offset_days":"..."}'
```

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