The cold email API for automating outbound at scale
Create leads, launch campaigns and react to replies from your own code. The Emailchaser API is a simple REST API with Bearer authentication, webhooks and scoped keys, so your product, CRM and no-code tools can run cold outreach for you.
Emailchaser is all-in-one cold email software, and the API puts its outbound engine in your code. Authenticate with a workspace-scoped API key, then manage campaigns (launch, pause, reschedule and update settings), push leads, monitor your sender email accounts and subscribe to events like replies and bounces via webhooks. The full endpoint reference, request schemas and a Postman collection live in the API documentation.
If you'd rather talk to your outbound than code against it, the same API powers the Emailchaser MCP server, which connects AI agents like Claude Code directly to your workspace.
Cleaning the data before it reaches the API is a separate job. Our sister tool 1lookup.io handles it: call it before you POST a lead so a bad record never enters a campaign in the first place.
How the API fits into your stack
Your app, CRM or no-code tool sends authenticated HTTPS requests to the REST API, which acts on the campaigns, leads and inboxes in your workspace, and posts webhooks back the moment prospects reply.
What you can build with the Emailchaser API
Push leads from anywhere
Add up to 1,000 leads to a campaign in a single request (from your CRM, your product's waitlist, a Clay table or a Make scenario) and let automated follow-ups take over.
Control campaigns from your own stack
Launch, pause, reschedule or update campaigns programmatically, so outbound reacts to what happens in your product or pipeline instead of waiting for someone to log in.
React to replies in real time
Register webhooks for events like email replies, bounces and campaign status changes, and route them to your CRM, Slack or data warehouse the moment they happen.
Run outbound for every client
Agencies can script lead uploads, campaign launches and reporting across client workspaces, with a separate scoped API key per workspace that can be revoked at any time.
Monitor your sending infrastructure
List the sender email accounts connected to a workspace and check their status programmatically, so disconnected inboxes never silently stall a campaign.
Give AI agents a safe way in
Prefer natural language over HTTP calls? The same API keys power our MCP server, which lets Claude Code, Cursor and other AI agents manage campaigns with revocable access. A read-only key keeps an agent to reading; a read & write key also lets it spend credits and send email.
Make your first API call in minutes
Create a key, list your campaigns, then push leads in. Automated follow-ups take it from there.
Create your free Emailchaser account, then open Settings → Integrations & API and click “Create API key”. Pick a read-only or read & write scope; a read & write key can also spend credits, order domains and mailboxes, and send email. The full key is shown once, so store it securely.
Authenticate every request by sending your key in the Authorization header as a Bearer token. List your campaigns to grab a campaign ID.
Add leads (up to 1,000 per request) straight into that campaign, and automated follow-ups take it from there.
API endpoints
33 core endpoints across campaigns, leads, sender emails, replies, Lead Finder, webhooks, block list, as of September 2026; the full reference lists the rest. The base URL is https://api.emailchaser.com/r and every endpoint returns JSON.
| GET | /campaigns | List campaigns with status filters and pagination |
| GET | /campaigns/{id} | Get a campaign with settings, schedule and stats |
| PUT | /campaigns/{id} | Update campaign settings and sending limits |
| POST | /campaigns/{id}/resume | Launch a new campaign or resume a paused one |
| POST | /campaigns/{id}/pause | Pause a running campaign |
| PUT | /campaigns/{id}/schedule | Update timezone, sending days and time windows |
| DELETE | /campaigns/{id} | Delete a campaign and its data |
| POST | /leads | Create or update up to 1,000 leads, optionally adding them to a campaign |
| GET | /leads/{id} | Get a lead's contact and company details |
| PUT | /leads/{id} | Update a lead |
| DELETE | /leads/{id} | Delete a lead |
| GET | /sender-emails | List connected sender email accounts |
| GET | /sender-emails/{id} | Get a sender email account |
| GET | /replies | List replies from prospects, newest first |
| GET | /reply-drafts | List the AI's reply drafts awaiting review |
| PUT | /reply-drafts/{id} | Edit a draft's subject or body before it goes out |
| POST | /reply-drafts/{id}/send | Send a draft to the prospect as a real email; it cannot be recalled |
| GET | /lead-finder/filters | The filter values it accepts, today's limits and the credit price |
| POST | /lead-finder/searches | Search the B2B contact database; results are masked and cost no credits |
| GET | /lead-finder/searches/{id} | Read a search that was still running |
| POST | /lead-finder/imports | Add chosen people, or N new matches, to a campaign; spends credits and, by default, metered email verification |
| GET | /lead-finder/imports | List adds, newest first, with progress |
| GET | /lead-finder/imports/{id} | One add: added, skipped and why, credits spent |
| POST | /lead-finder/imports/{id}/cancel | Stop a running add; nothing after the current batch is charged |
| GET | /webhooks | List registered webhooks |
| POST | /webhooks | Register a webhook for an event type |
| DELETE | /webhooks/{id} | Delete a webhook |
| GET | /blocklist | List blocked domains and email addresses |
| POST | /blocklist | Block up to 1,000 domains or addresses in one call |
| DELETE | /blocklist | Unblock up to 1,000 domains or addresses in one call |
| GET | /blocklist/{id} | Get a block list entry |
| PUT | /blocklist/{id} | Update a block list entry |
| DELETE | /blocklist/{id} | Delete a block list entry |
See the full API reference for request and response schemas, pagination and error codes.
Real-time webhooks
The API accepts 10 webhook event types (as of September 2026): the six below, plus EmailUnsubscribe, CreditBalanceLow, AutopilotRunStatusChanged and DfyOrderCompleted. The MCP server's webhook tools offer the six below. Register one and Emailchaser sends a POST to your URL the instant it happens, so your CRM, Slack and data warehouse stay in sync without polling.
Fires when a campaign sends an email, so you can log every touch in your own system.
Fires the moment a prospect replies: route hot leads straight to your CRM or Slack.
Fires when an email bounces, so you can suppress bad addresses and protect deliverability.
Fires when a lead is added to your workspace, whether by the API, an import or the app.
Fires when a lead's category changes, for example from contacted to interested.
Fires when a campaign is launched, paused or completed, to keep dashboards in sync.
What every delivery carries
A unique event ID, in the X-Emailchaser-Event-Id header and again in the JSON body as event_id (eventId on AutopilotRunStatusChanged and DfyOrderCompleted). A retried delivery keeps the same ID, so store the IDs you have handled and skip any you see again.
Endpoints with a signing secret, which every endpoint registered today gets, also receive X-Emailchaser-Timestamp and an HMAC-SHA256 signature in X-Emailchaser-Signature, computed over the timestamp, a dot and the raw body.
Built for developers
Bearer authentication
Send your key in the Authorization header as “Bearer YOUR_API_KEY”. There's nothing else to configure.
Scoped, revocable keys
Create read-only or read & write keys per workspace and revoke any key instantly. There is nothing in between: a read & write key can also spend credits, order domains and mailboxes, and send email.
Predictable rate limits
100 requests per 10 seconds and 600 per 60 seconds per account, with a clear 429 when you exceed them.
Idempotent lead upserts
POST /leads matches on email address and updates existing leads instead of creating duplicates.
Consistent JSON
Every endpoint speaks JSON with standard HTTP status codes and clear error messages.
Real-time webhooks
Subscribe to any of 10 event types and get a POST the moment something happens, with an event ID that makes a retried delivery easy to spot.
Integrations & no-code
Don't want to write code? Connect Emailchaser to the tools you already use, or let an AI agent drive it for you.
Make
Build no-code automations with the native Make integration: trigger campaigns and sync leads visually.
View on MakeClay
Push enriched leads from a Clay table straight into an Emailchaser campaign with the Clay integration.
View on ClayMCP server
Let AI agents like Claude Code and Cursor run outbound in natural language through the Emailchaser MCP server.
Explore the MCP serverWhat the API will not do
As of September 2026, from the API and MCP code itself.
- Read-only keys receive HTTP 403 on every write. The exceptions are four calls that buy and send nothing: audience size, a Lead Finder search, the setup ping and the domain availability check. There is no scope in between, so a key that can write can also spend credits, order domains and mailboxes, and send email.
- A Lead Finder search never returns an email address, phone number or LinkedIn URL. Contact details are revealed only when people are added to a campaign, and that is when credits are spent.
- There is no opens metric anywhere, not in stats, not in webhooks. Emailchaser does not track opens, so its absence is deliberate.
- The API cannot recall a reply once POST /reply-drafts/{id}/send has sent it. The draft's current subject and body go to the prospect straight away.
- Google and Microsoft mailboxes cannot be connected through the API. SMTP and IMAP mailboxes can.
- A single POST /leads request takes at most 1,000 leads.
- Webhook deliveries are signed with HMAC-SHA256 in the X-Emailchaser-Signature header, using a per-endpoint secret you can rotate. Only endpoints created before signing existed, and never rotated since, go out unsigned.
What customers reported
“george the new email double verification is so superior. bounce rates are 0% or 1% now (before 3%). good work”
“I’ve been managing cold email campaigns for quite some time, mostly for clients using Instantly and Smartlead. Recently, I started managing campaigns for two clients on Emailchaser, and honestly, it feels much smoother and more reliable than the other platforms. I’ve also seen higher reply rates here, which has been a great result.”
Cold email API FAQ
A cold email API lets your own software create and control cold outreach programmatically instead of through a dashboard. With the Emailchaser API you can add leads to campaigns, launch or pause sending, update schedules and receive webhooks when prospects reply, all over simple, authenticated HTTPS requests.
Create a free Emailchaser account, then go to Settings → Integrations & API and click Create API key. You choose a read-only or read & write scope when creating the key. There is nothing in between: a read & write key can call every endpoint, including the ones that spend credits, order domains and mailboxes, and send email. The full key is shown once, so store it securely. Keys can be revoked at any time.
Every request is authenticated with a Bearer token: send your API key in the Authorization header as 'Bearer YOUR_API_KEY'. Keys are scoped to one workspace, so a key can only ever read or change data in the workspace it was created in.
The API allows 100 requests per 10 seconds and 600 requests per 60 seconds per account, enforced across all of your API keys. Requests over the limit receive a 429 status code, so back off and retry when you see one.
Yes. A single POST /leads request accepts up to 1,000 leads at once, with optional fields like first name, company, job title and LinkedIn URL for personalization. Existing leads are updated by email address instead of duplicated, and passing a campaignId adds them straight into a campaign.
Yes. POST /campaigns/{id}/resume launches a campaign, which then sends, and POST /reply-drafts/{id}/send sends one of the AI's reply drafts to the prospect through the conversation's sender mailbox. That reply is a real email: it goes out with the draft's current subject and body and cannot be recalled, so edit it first with PUT /reply-drafts/{id} if needed. Both calls need a read & write key, and the MCP server's send_reply_draft tool sends a draft the same way.
Any language that can send an HTTPS request. The examples on this page show cURL, Node.js and Python, but Go, Ruby, PHP, Java and no-code tools all work the same way: set the Authorization header and send JSON.
Yes. The API docs at emailchaser.com/docs are generated from the API's own OpenAPI (Swagger) definition, so they always match the running API, and they include a ready-to-import Postman collection. Every endpoint shows its request and response schemas with cURL, JavaScript and Python examples.
Yes. Emailchaser has a native Make integration and a Clay integration for pushing leads from Clay tables into campaigns, and the REST API works with any tool that can send HTTP requests. AI assistants can use the same capabilities through the Emailchaser MCP server.
Still not convinced?
Read all 34 customer messages.
SEE REVIEWSP.s. these are actually real reviews (not fake G2 reviews) 🙂
“Btw thanks for your continuous help, best support ever! It means a lot as when I understand how the tool works, esp. In problematic situations, and And what it can do and cannot so from the start, I have more trust. There’s nothing worse for a user than what Smartlead does: lots of great features that don’t really work, including crucial ones for a sequencer like auto fallback to connected accounts when account gets disconnected (doesn’t have to get back to the original one after reconnection, no one expects miracles, just a solid infra delivering on its specs - not promises), plus their low quality support when the issues are revealed.”
“Got my first reply with Emailchaser :)”
“We've recently upgraded to the premium plan to increase our sending volume. Just wanted to say thanks for such an awesome platform and the support you've already given in getting us started.”
Ready to 10x your pipeline?
Send your first cold email campaign today.
Start my free trial