Outreaches
An Outreach is a container for related campaigns. When two or more campaigns under the same outreach have unique_contacts: true, a contact enrolled in any one campaign is automatically skipped by the others. Useful for running parallel A/B tests or geo-segmented variants of the same outreach without double-emailing anyone.
Campaigns can exist outside an outreach (outreach_id: null) — they just don’t dedupe across siblings.
List outreaches
Section titled “List outreaches”GET /outreachesAuthorization: Bearer <key>[ { "id": "...", "name": "Q2 OC contractors", "unique_contacts": true, "created_at": "..." }]Create an outreach
Section titled “Create an outreach”POST /outreachesAuthorization: Bearer <key>Content-Type: application/json
{ "outreach": { "name": "Q2 OC contractors", "unique_contacts": true } }{ "id": "...", "name": "Q2 OC contractors", "unique_contacts": true }Show an outreach (with campaign roll-up)
Section titled “Show an outreach (with campaign roll-up)”GET /outreaches/:idAuthorization: Bearer <key>{ "id": "...", "name": "Q2 OC contractors", "unique_contacts": true, "totals": { "pending": 1500, "sent": 800, "opened": 320, "replied": 12, "bounced": 40 }, "campaigns": [ { "id": "...", "name": "Variant A", "status": "active" }, { "id": "...", "name": "Variant B", "status": "active" } ]}Update an outreach
Section titled “Update an outreach”PATCH /outreaches/:idAuthorization: Bearer <key>Content-Type: application/json
{ "outreach": { "name": "Renamed", "unique_contacts": false } }Errors
Section titled “Errors”| Status | Code | When |
|---|---|---|
| 404 | outreach_not_found | Unknown id or belongs to another account. |
| 422 | validation_failed | Missing name or other validation. |