Copy a broadcast
Create a new DRAFT with the same sender, subject, body and audience as an existing broadcast.
https://app.usenotix.dev/api/v1/broadcasts/{broadcastId}/duplicateNeeds a full access key. Sending access keys cannot call this. Key permissions lists the extra rules some calls have.
Create a new DRAFT with the same sender, subject, body and audience as an existing broadcast. Nothing is sent or scheduled. The copy meets every check a new draft does, against the calling key. The original's schedule, recipient cap and approval are not copied: schedule the copy yourself, and over the key's approval policy it needs its own approval.
Path parameters
Body parameters
The copy's name. Defaults to the original's name with " (Copy)".
At most 255 characters.
Headers
Bearer followed by your API key.
Errors
The original has no contact book, or the copy fails a check a new draft must pass.
No campaign with this id for the calling team (or, for a pinned key, on its domain).
Every error has the same shape. See all error codes.
curl -X POST "https://app.usenotix.dev/api/v1/broadcasts/<broadcastId>/duplicate" \
-H "Authorization: Bearer $NOTIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme"
}'
{
"id": "cm1x8f3k20001qz7v5b9d2e4a",
"name": "Acme",
"from": "Acme <receipts@acme.com>",
"subject": "Your receipt for order 4471",
"previewText": "Thanks for your order.",
"contactBookId": "cm1x8f3k20001qz7v5b9d2e4a",
"segmentId": "cm1x8f3k20001qz7v5b9d2e4a",
"html": "<p>Thanks for your order.</p>",
"content": "string",
"status": "string",
"scheduledAt": "2026-10-01T09:00:00Z",
"batchSize": 1,
"batchWindowMinutes": 1,
"total": 1,
"maxRecipients": 1,
"sent": 1,
"delivered": 1,
"opened": 1,
"clicked": 1,
"unsubscribed": 1,
"bounced": 1,
"hardBounced": 1,
"complained": 1,
"replyTo": [
"string"
],
"cc": [
"string"
],
"bcc": [
"string"
],
"createdAt": "2026-10-01T09:00:00Z",
"updatedAt": "2026-10-01T09:00:00Z"
}