canonical: https://jentic.com/apis/manyreach.com/manyreach

# ManyReach API

ManyReach is a cold outreach platform built for agencies and outbound sales teams, and the API exposes campaigns, prospects, lists, senders, sequences, tags, messages, and workspaces under `/api/v2.` Endpoints support the lifecycle of a cold outbound program: spinning up a campaign, attaching prospects, defining the sequence of emails, starting and pausing sends, and pulling stats. Authentication is an API key in the X-API-Key header. The shape of the API matches the way an agency operator runs many parallel outbound campaigns rather than a generic ESP.

## For AI agents

Run cold outbound campaigns through ManyReach - campaigns, sequences, prospects, senders, and stats - over an X-API-Key REST API.

## Scope

Does not handle SMS outreach, calling, or paid ads - use for cold email campaigns, sequences, prospects, and stats only.

## Capabilities

- Spin up a new cold outreach campaign and configure its sequence of emails
- Add or remove prospects on a campaign and tag them for segmentation
- Start, pause, and copy campaigns to manage outbound volume
- Pull campaign-level stats - sent, opened, replied, bounced - for reporting
- Manage sender mailboxes and rotate senders across campaigns
- Maintain prospect lists and tags for reusable audience segments

## Use cases

### Spin up a vertical-specific cold campaign

Outbound agencies running parallel campaigns per ICP need to launch a new vertical quickly. POST `/api/v2/campaigns` creates the shell, POST `/api/v2/campaigns/{id}/sequences` attaches the email cadence, and POST `/api/v2/campaigns/{id}/start` kicks it off. The agency gets repeatable per-vertical launches without hand-clicking through the UI.

Example prompt: Create a campaign 'FinTech CTOs - July', attach the standard 4-step sequence, and start it once 200 prospects are loaded.

### Reply-driven prospect hygiene

Cold outbound senders need to remove prospects from sequences as soon as they reply, both for deliverability and for not embarrassing the buyer. DELETE `/api/v2/campaigns/{id}/prospects/{prospectId}` removes a prospect from a running campaign, and tagging via the tags endpoints marks the contact for future suppression. A handler tied to inbox replies can keep the campaign clean automatically.

Example prompt: On a 'reply received' inbox webhook, find the prospect by email in ManyReach and remove them from any active campaigns.

### Outbound performance reporting

Agency leads need a per-campaign performance roll-up across many client engagements. GET `/api/v2/campaigns/{id}/stats` returns sent, opened, clicked, replied, and bounced counts, which a reporting job aggregates per client. The agency can produce weekly performance updates without exporting CSVs from the ManyReach UI.

Example prompt: For every campaign tagged 'client-acme', pull weekly stats and produce a single performance summary email.

### Agent-driven outbound copilot

An AI copilot for an SDR can launch and tune campaigns from a chat interface. Through Jentic the agent searches by intent, calls POST `/api/v2/campaigns` to create the shell, attaches a sequence, and starts the run. The ManyReach API key is held in your Jentic One instance, never in the agent's prompt context, so leaked transcripts cannot expose the workspace credential.

Example prompt: Given an SDR instruction 'launch a 5-step sequence to fintech CTOs and start it next Monday', create the campaign, attach the sequence, and schedule the start.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v2/campaigns` | List campaigns |
| POST | `/api/v2/campaigns` | Create a campaign |
| POST | `/api/v2/campaigns/{id}/start` | Start a campaign |
| POST | `/api/v2/campaigns/{id}/pause` | Pause a campaign |
| POST | `/api/v2/campaigns/{id}/copy` | Copy a campaign |
| POST | `/api/v2/campaigns/{id}/sequences` | Attach a sequence to a campaign |
| GET | `/api/v2/campaigns/{id}/stats` | Get campaign performance stats |
| DELETE | `/api/v2/campaigns/{id}/prospects/{prospectId}` | Remove a prospect from a campaign |

## Key resources

- **Campaigns** — Outbound campaign shells with sequences, prospects, and stats
- **Sequences** — Ordered emails attached to a campaign
- **Prospects** — Recipients targeted by campaigns, with tagging
- **Senders** — Sender mailboxes used to deliver campaign messages
- **Tags** — Reusable labels applied to prospects and lists
- **Workspaces** — Top-level account scope for agency clients

## Why Jentic

- **Setup:** Wiring ManyReach by hand means setting its X-API-Key header, learning the `/api/v2` campaign, sequence, and prospect endpoints, and handling the start, pause, and copy actions yourself. Through Jentic you install once, import the ManyReach API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** ManyReach puts the campaign id in the URL path (`/api/v2/campaigns/{id}/...`), so a rule can pin your agent to one campaign: it can read its stats and manage its sequences and nothing else. You choose the operations it may call, so destructive ones like deleting a prospect are not included unless you add them.
- **Credential handling:** Your ManyReach API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a ManyReach campaign' or 'get campaign stats', and Jentic returns the matching ManyReach operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Instantly** — Cold outreach platform competing for the same agency / SDR audience.
- **Reply.io** — Multichannel outbound sequencing tool.
- **Salesloft** — Enterprise sales engagement platform with cadences and analytics.
- **Apollo** — B2B prospect database used to source contacts that then feed a ManyReach campaign.
- **Hunter** — Email finder and verifier used to clean prospect lists before importing.

## FAQ

### What authentication does the ManyReach API use?

ManyReach uses an API key sent in the X-API-Key header. Keys are generated in the workspace settings UI. Through Jentic the key is stored encrypted in the vault and attached to requests at call time, so the raw key never appears in the agent's prompt context.

### Can I start and pause a ManyReach campaign through the API?

Yes. POST `/api/v2/campaigns/{id}/start` kicks a campaign into the running state and POST `/api/v2/campaigns/{id}/pause` stops further sends. These are the same lifecycle controls exposed in the UI, so a programmatic 'pause everything' switch can be wired against incidents.

### What are the rate limits for the ManyReach API?

The spec does not publish a fixed per-second limit. ManyReach throttles per workspace and returns 429 with a Retry-After header when exceeded. For bulk prospect uploads, batch the writes and respect the Retry-After value rather than retrying immediately.

### How do I add prospects to a campaign through Jentic?

Run pip install jentic, then search Jentic for 'add prospects to a manyreach campaign'. Jentic returns the POST `/api/v2/campaigns/{id}/prospects` operation with its prospect-array schema, which you execute with the campaign id and the list of prospect emails to enqueue them on the campaign.

### Does the ManyReach API expose campaign performance stats?

Yes. GET `/api/v2/campaigns/{id}/stats` returns the per-campaign counts - sent, opened, clicked, replied, bounced - needed for reporting. Roll up across campaigns by iterating the campaign list and calling stats per id.

### Can I copy a successful campaign as a template?

Yes. POST `/api/v2/campaigns/{id}/copy` duplicates the campaign and its sequence configuration, returning a new campaign id you can edit (rename, swap audience) before starting. This is the fastest way to spin up sister campaigns per ICP.

### Can I limit what my agent is allowed to do with the ManyReach API?

Yes. Because you run Jentic One yourself, your own rules decide which ManyReach operations and credentials the agent may use. Since ManyReach puts the campaign id in the URL path (`/api/v2/campaigns/{id}/...`), you can pin the agent to a single campaign so it only reads that campaign's stats and manages its sequences. You also choose which operations it may call, so destructive actions such as DELETE `/api/v2/campaigns/{id}/prospects/{prospectId}` stay off unless you explicitly add them.
