Connect your account, then chat with AI to run tools.
Smartlead is an AI-powered email outreach and cold email automation platform designed for lead generation. Manage email campaigns, track engagement metrics, monitor replies, and optimize outreach strategies at scale with automated follow-ups and lead categorization.
Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.
Browse all toolsDomain knowledge for Smartlead — workflow patterns, data models, and gotchas for your AI agent.
Cold-email automation. Every send is anchored to a Campaign; sequences fire from attached sender (Email Account) inboxes to Leads enrolled in the campaign. All inbound replies land in one Master Inbox spanning every campaign and sender.
A campaign's leads are scoped to that campaign — the same email address enrolled in multiple campaigns is a separate lead row each time. The global lead listing is the workspace-wide rollup, independent of any specific Lead List.
A Lead List is a workspace-level bucket of contacts that exists independently of any campaign. The canonical sourcing flow is:
Lead List attributes: id, list_name, leads_count, active_leads_count, tag_ids, timestamps. Only list_name is mutable on update — use tags via assign_tags_to_lead_lists for grouping. List filtering: paginated with limit (1-1000, default 10), offset (≥ 0), and tag_ids (filter by tag membership). The API does not expose a free-text name filter, a description / metadata field on the list itself, or a tag-listing surface for lead lists — discover tag ids in the Smartlead UI.
Imports require file_name (label only — does not need to match a real file), lead_list (array of contact objects, max 400 per call, email required per row), and optional settings flags to bypass the workspace-wide block / unsubscribe / community-bounce / duplicate checks. The response carries uploadedCount, duplicateCount, invalidCount, totalCount — duplicates are reported, not errored. Re-import is the canonical update path.
Push semantics: Smartlead's only move operation is "list → campaign" via push_leads_to_campaign with action='move'. There is no /lead-list/move-leads endpoint — list-to-list reorganisation is not exposed by the API. Tag-based grouping (assign_tags_to_lead_lists) is the workspace-level workaround.
assign_tags_to_lead_lists operates in batches: 1-10 lists per call, with tag_ids to attach and / or remove_tag_ids to detach (each 1-10 ids, at least one of the two must be non-empty).
All ids are integers: campaign ids (e.g. 3090077), lead ids, email-account ids, sequence ids, category ids. The Master Inbox surfaces campaign_lead_map_id for each conversation — pass it as email_lead_map_id to read-status, category, and reply verbs. Single-resource fetches use /{collection}/{id}.
Sender mailboxes are attached at the workspace level via the email-accounts surface, then linked to campaigns. The API does not expose an OAuth flow to connect Gmail / Outlook / SMTP credentials — that step happens in the Smartlead web UI. What the API does expose:
A campaign with zero attached senders cannot be set to START.
Every inbound reply lands in one workspace-wide Master Inbox, regardless of which campaign or sender it came from. Three read views share one filter shape:
Filters: email_status (typically Replied), campaign_id (up to 5), email_account_id (up to 20 for all, up to 10 for unread/important), campaign_team_member_id, campaign_tag_id, client_id (each up to 10), category_ids_in / category_ids_not_in (each up to 10), category_assigned, reply_time_between ([start_iso, end_iso]), free-text search (max 30 chars), sort_by (REPLY_TIME_DESC default, or SENT_TIME_DESC). Pagination: offset ≥ 0, limit 1–20.
Set fetch_message_history=true only when the full thread is required — payload is roughly 10x the latest-message-only response.
Each inbox message exposes:
Per-campaign reply counts live on the analytics endpoint. Per-reply rows live on statistics with email_status=replied (paginated). Full message thread lives on message-history keyed by (campaign_id, lead_id) — pull the lead id from the campaign's lead list, not from the global lead by email. The Master Inbox is the better entry point for cross-campaign reply triage; the campaign analytics surface is for per-campaign engagement reporting.
Campaign analytics accept start_date / end_date in YYYY-MM-DD. Both must be supplied together; the date-filtered endpoint diverges from the cumulative one. Inbox reply_time_between uses ISO 8601 datetimes (["2025-01-01T00:00:00Z","2025-01-31T23:59:59Z"]).
Newly added sender accounts default to warmup-enabled. Warmup volume should ramp before campaigns send through the account at full volume. The warmup-stats endpoint returns a 7-day rolling window only.
Track-open and track-click pixels degrade deliverability for cold outreach. Plain-text bodies outperform HTML for first-touch. Caps of ~30 new leads per day per sender, business-hours-only sending, and stop_lead_settings = REPLY_TO_AN_EMAIL are the conservative starting point.
Attach or detach tags on up to 10 Lead Lists in one call. Pass the target ``list_ids`` (1-10), then ``tag_ids`` to attach and / or ``remove_tag_ids`` ...
Permanently delete a campaign by id. Removes the campaign, its sequences, and its lead enrollments. Sender email accounts attached to the campaign are...
Detach sender email accounts from a campaign. Does not delete the email accounts themselves. Send an array of account ids — one DELETE call detaches a...
Remove one lead from a specific campaign. Does not delete the lead from the workspace — the same email may still be enrolled in other campaigns. Retur...
Permanently delete a sender email account. Removes the account from any campaigns it was attached to. Cannot be undone.
Delete a Lead List by id. Hard delete — removes the list and its lead memberships. Leads already pushed into a campaign before the delete remain in th...
Aggregate analytics for one campaign: sent_count, open_count, click_count, reply_count, bounce_count, block_count, unsubscribe_count, sequence_count, ...
List the sender email accounts currently attached to one campaign. A campaign cannot send before at least one sender is attached.
List leads enrolled in one campaign (paginated). Returns lead id, contact details, custom fields, and per-lead campaign status. Use the lead id from t...
Read campaigns owned by the workspace. Omit id to list every campaign (returns id, name, status, schedule, tracking config). Pass id (numeric, from th...
Read every sequence step on a campaign: subject, email_body, seq_number, seq_delay_details (delay in days from previous step), and variants. Use this ...
Per-message records for one campaign (paginated). Each row carries lead_email, sent_time, reply_time (when status is 'replied'), email_subject, sequen...
Read sender email accounts in the workspace. Omit id to list every account (returns id, from_email, type, smtp_host, warmup_enabled, daily caps). Pass...
7-day rolling warmup performance for one sender: emails sent, spam count, delivery rates, opens, replies. The endpoint returns at most the last 7 days...
List leads across the entire workspace (paginated). Returns data, skip, limit, hasMore. Use created_at_gt and email for filtering. For a single email ...
Read replies from the Smartlead Master Inbox — the unified inbox across every campaign and sender account. Pick view='all' (every reply), 'unread' (on...
Look up one lead by email address. Returns the lead's workspace-wide id, contact details, custom fields, and the list of campaigns the email is enroll...
List every lead category defined in the workspace. Each row is {id, name}. Categories are workspace-wide and apply to leads in any campaign — useful f...
Read Lead Lists — workspace-level lead staging buckets that exist independently of any campaign. Pass ``id`` to fetch one list (returns name, owner, t...
Read the full message thread for one lead in one campaign: every sent step (SENT) and every reply (REPLY) in chrono order, each with subject, email_bo...
Import contacts into a Lead List. Body: ``file_name`` (label, required), ``lead_list`` (array of contacts, max 400 per call, ``email`` required per ro...
Promote staged leads into a campaign. Specify the target with ``campaign_id`` (or ``campaign_name`` to auto-create). Pick exactly one source: ``list_i...
Send a reply into an existing Master Inbox email thread. Threading is preserved — the reply lands in the same conversation the original lead reply ope...
Transition a campaign's lifecycle status. START / PAUSED / STOPPED only — not the same surface as creating or editing a campaign. Smartlead mixes a ve...
Mark an inbox conversation as read (read_status=true) or unread (read_status=false). Use the campaign_lead_map_id from get_inbox_replies as the email_...
Assign or clear the category on a lead-campaign mapping. Pass category_id to assign, omit it (or pass null) to clear. This is the same surface the Mas...
Create or update a campaign. Omit id to create — only ``name`` (and optional ``client_id``) is read on the create branch; settings + schedule fields a...
Attach one or more sender email accounts to a campaign. email_account_ids is an array of numeric account ids (from get_email_accounts). The relation i...
Enroll leads in a campaign. lead_list is an array of objects; each lead requires ``email`` and may include first_name, last_name, company_name, phone_...
Save the full sequence list for a campaign — this is a replace, not a partial merge. Each sequence step needs seq_number (1-indexed), seq_delay_detail...
Create or update a sender email account. Omit id to create (POST email-accounts/save) — every SMTP/IMAP field is required because Smartlead validates ...
Update the warmup configuration for one sender account. Always an update — there is no separate create endpoint. warmup_enabled is the only required f...
Create a new Lead List (omit ``id``) or rename an existing one (pass ``id``). ``list_name`` is required on create and is the only mutable field on upd...
Smartlead is an AI-powered email outreach and cold email automation platform designed for lead generation. Manage email campaigns, track engagement metrics, monitor replies, and optimize outreach strategies at scale with automated follow-ups and lead categorization. It provides 33 tools that AI agents can use through the Model Context Protocol (MCP).
Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/smartlead. Authentication is handled automatically.
Smartlead provides 33 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.
Smartlead uses API Key or One-click sign in. Smartlead requires credentials. Connect via MCPBundles and authentication is handled automatically.
Connect Smartlead to any MCP client in minutes
https://mcp.mcpbundles.com/bundle/smartleadThe link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.
Smartlead and paste the MCP URL into Remote MCP server URL.Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).
More marketing integrations you might like
SendPulse is a multichannel marketing platform that provides email, SMS, and web push notifications ...
Spotify Ads offers an advertising platform that enables businesses to create and manage audio, video...
Partnerize is a marketing platform that enables brands to manage and optimize partnership marketing ...
SE Ranking Data API v1: domain analysis (regional and worldwide overviews, keywords, pages, subdomai...
Taboola is a content discovery and native advertising platform that helps publishers and advertisers...
PartnerStack is a platform that enables businesses to create and manage partnership programs, facili...