Skip to content
Scalekit Docs

Apollo MCP

Vendor MCP61 toolsOAuth 2.1/DCRCRM & SalesMarketing

Connect to Apollo MCP to search B2B contacts, enrich people and organizations, manage CRM records, and enroll prospects in sequences.

Apollo MCP connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'apollomcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Apollo MCP:', link)
    process.stdout.write('Press Enter after authorizing...')
    await new Promise(r => process.stdin.once('data', r))
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'apollomcp_apollo_contacts_search',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Aggregates apollo website visitors domain — Return visit counts, unique-visitor counts, and top visited paths for a single visiting company on one of your team’s tracked websites, over a date range
  • Update apollo website visitor domain tracker, apollo labels, apollo context center — Add, edit, or delete a domain in the team’s website visitor domain tracker
  • Send apollo website visitor domain tracker, apollo emailer messages, apollo emailer messages email — Email the Apollo website visitor tracking JavaScript snippet to one or more recipients — typically a developer who will install it on the team’s website
  • Script apollo website visitor domain tracker install — Return the ready-to-embed Apollo website visitor tracking snippet for the team, with the team’s tracker id already substituted in as appId — never hand-assemble the template or guess the loader URL yourself
  • Index apollo website visitor domain tracker, apollo labels, apollo fields — Retrieve the website visitor domain tracker configuration for the team: the tracker id, team id, the list of active allowed referrer domains (with tracking status, contact-level tracking settings, and intent paths), the maximum domain limit for the team, and whether visitor credits are exhausted
  • Show apollo webhook result, apollo context center, apollo tasks — Poll for the result of an asynchronous Apollo enrichment request: either a phone-number reveal started by apollo_people_match or apollo_people_bulk_match with reveal_phone_number=true, or a waterfall enrichment (email and/or phone) started with run_waterfall_email=true and/or run_waterfall_phone=true

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

apollomcp_apollo_accounts_bulk_create#Create multiple accounts (companies) in a single call by passing an array of account objects. No deduplication is applied — each object becomes a new record even if it matches an existing account by name or domain; review the array carefully before submitting.3 params

Create multiple accounts (companies) in a single call by passing an array of account objects. No deduplication is applied — each object becomes a new record even if it matches an existing account by name or domain; review the array carefully before submitting.

NameTypeRequiredDescription
accountsarrayrequiredArray of account objects to create. Each object accepts the same fields as the single Create Account endpoint: name, domain, phone, raw_address, typed_custom_fields.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_accounts_create#Add a new account (company) to your team's Apollo database. Apollo does not deduplicate on create — if a matching account already exists by name or domain, a new record is created; use the Update Account tool to modify existing accounts.7 params

Add a new account (company) to your team's Apollo database. Apollo does not deduplicate on create — if a matching account already exists by name or domain, a new record is created; use the Update Account tool to modify existing accounts.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
domainstringoptionalThe website domain of the account (no scheme). Example: apollo.io
namestringoptionalThe name of the account (company). Example: Apollo
phonestringoptionalThe phone number for the account. Example: 555-303-1234
raw_addressstringoptionalThe address of the account. Example: 535 Mission St, Suite 1100, San Francisco, CA 94105
typed_custom_fieldsobjectoptionalCustom field values keyed by custom field ID. Call the List Custom Fields tool (apollo_fields_index) first to get field IDs and allowed values for account-modality fields.
apollomcp_apollo_accounts_update#Update an existing account (company) in your team's Apollo database. Requires the Apollo account ID; use Create Account to add new accounts that do not yet exist.8 params

Update an existing account (company) in your team's Apollo database. Requires the Apollo account ID; use Create Account to add new accounts that do not yet exist.

NameTypeRequiredDescription
idstringrequiredThe Apollo ID for the account that you want to update. Example: 63f53afe4ceeca00016bdd2f
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
domainstringoptionalUpdate the domain. Example: apollo.io
namestringoptionalUpdate the account name. Example: Apollo
phonestringoptionalUpdate the phone number. Example: 555-303-1234
raw_addressstringoptionalUpdate the address. Example: 535 Mission St, Suite 1100, San Francisco, CA 94105
typed_custom_fieldsobjectoptionalCustom field values keyed by custom field ID. Call the List Custom Fields tool (apollo_fields_index) first to get field IDs and allowed values for account-modality fields.
apollomcp_apollo_analytics_sync_report#Query Apollo's sales analytics data with flexible filtering, grouping, and aggregation across emails, calls, meetings, tasks, opportunities, and conversation intelligence. Supports 55+ dimensions for time-series, user, and cross-tab breakdowns.8 params

Query Apollo's sales analytics data with flexible filtering, grouping, and aggregation across emails, calls, meetings, tasks, opportunities, and conversation intelligence. Supports 55+ dimensions for time-series, user, and cross-tab breakdowns.

NameTypeRequiredDescription
metricsarrayrequiredSelect 1-15 metrics to report on. Categories include Email, Phone Calls, Meetings, Tasks, Contacts/Accounts, Opportunities, Sequences, Conversation Intelligence, and LinkedIn.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
date_rangeobjectoptionalTime period for the report. Use a preset modality OR range_start + range_end, not both.
filtersobjectoptionalOptional filters to narrow down data. All filters are AND-ed together.
group_byarrayoptionalPrimary breakdown dimension (max 1). For time series use smart_datetime_* values; for user analysis use smart_user_id.
pivot_group_byarrayoptionalOptional second dimension for cross-tab or pivot table analysis. Requires group_by to also be set. Use low-cardinality dimensions for best results.
sortobjectoptionalSort grouped results by a metric value. Only applies when group_by is set.
apollomcp_apollo_contacts_bulk_create#Create multiple contacts in a single call by passing an array of contact objects. Apollo automatically deduplicates — any object matching an existing contact by email or other details updates that record instead of creating a new one.3 params

Create multiple contacts in a single call by passing an array of contact objects. Apollo automatically deduplicates — any object matching an existing contact by email or other details updates that record instead of creating a new one.

NameTypeRequiredDescription
contactsarrayrequiredArray of contact objects to create. Each object accepts the same fields as the single Create Contact endpoint.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_contacts_create#Create a new contact in your team's Apollo account. Apollo automatically prevents duplicates — if a matching contact is found by email or other details, that existing contact is updated instead of creating a new one.17 params

Create a new contact in your team's Apollo account. Apollo automatically prevents duplicates — if a matching contact is found by email or other details, that existing contact is updated instead of creating a new one.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
account_idstringoptionalThe Apollo ID for the account this contact belongs to. Example: 63f53afe4ceeca00016bdd2f
corporate_phonestringoptionalThe work/office phone number. Example: +44 7911 123456
direct_phonestringoptionalThe primary phone number. Example: 555-303-1234
emailstringoptionalThe email address of the contact. Example: example@email.com
first_namestringoptionalThe first name of the contact. Example: Tim
home_phonestringoptionalThe home phone number. Example: 555-303-1234
label_namesarrayoptionalLists to which the contact belongs.
last_namestringoptionalThe last name of the contact. Example: Zheng
mobile_phonestringoptionalThe mobile phone number. Example: 555-303-1234
organization_namestringoptionalThe name of the contact's employer (company). Example: apollo
other_phonestringoptionalAlternative phone number. Example: 555-303-1234
present_raw_addressstringoptionalThe personal location for the contact. Example: Atlanta, United States
titlestringoptionalThe current job title that the contact holds. Example: senior research analyst
typed_custom_fieldsobjectoptionalCustom field values keyed by custom field ID. Call the List Custom Fields tool (apollo_fields_index) first to get field IDs and allowed values for contact-modality fields.
website_urlstringoptionalThe corporate website URL. Example: https://www.apollo.io/
apollomcp_apollo_contacts_update#Update an existing contact in your team's Apollo account. Requires the Apollo contact ID; use Search Contacts to find the ID, and Create Contact to add new contacts.18 params

Update an existing contact in your team's Apollo account. Requires the Apollo contact ID; use Search Contacts to find the ID, and Create Contact to add new contacts.

NameTypeRequiredDescription
idstringrequiredThe Apollo ID for the contact that you want to update. To find contact IDs, call the Search for Contacts endpoint. Example: 66e34b81740c50074e3d1bd4
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
account_idstringoptionalUpdate the account ID. Example: 63f53afe4ceeca00016bdd2f
corporate_phonestringoptionalWork/office phone.
direct_phonestringoptionalPrimary phone.
emailstringoptionalUpdate the contact email. Example: example@email.com
first_namestringoptionalUpdate the contact's first name. Example: Tim
home_phonestringoptionalHome phone.
label_namesarrayoptionalReplace lists this contact belongs to. Passing new values will overwrite existing lists.
last_namestringoptionalUpdate the contact's last name. Example: Zheng
mobile_phonestringoptionalMobile phone.
organization_namestringoptionalUpdate the employer (company) name. Example: apollo
other_phonestringoptionalAlternate phone.
present_raw_addressstringoptionalUpdate location (city/state/country). Example: Atlanta, United States
titlestringoptionalUpdate the job title. Example: senior research analyst
typed_custom_fieldsobjectoptionalCustom field values keyed by custom field ID. Call the List Custom Fields tool (apollo_fields_index) first to get field IDs and allowed values for contact-modality fields.
website_urlstringoptionalUpdate the employer website URL. Example: https://www.apollo.io/
apollomcp_apollo_context_center_create_product#Add a new product or service to the team's Context Center, which Apollo uses to personalize AI-generated outreach. Each call creates a NEW product record — calling this twice creates two separate products; to change an existing product, do not call this again — first read it with apollo_context_center_show_product (or apollo_context_center_show) and use apollo_context_center_update_product instead. Only product_or_service_name is required, but confirm the product name and description with the user before calling. After the call succeeds, echo back only the new product's id and name.6 params

Add a new product or service to the team's Context Center, which Apollo uses to personalize AI-generated outreach. Each call creates a NEW product record — calling this twice creates two separate products; to change an existing product, do not call this again — first read it with apollo_context_center_show_product (or apollo_context_center_show) and use apollo_context_center_update_product instead. Only product_or_service_name is required, but confirm the product name and description with the user before calling. After the call succeeds, echo back only the new product's id and name.

NameTypeRequiredDescription
product_or_service_namestringrequiredName of the product or service being added to the Context Center. Required. Example: Apollo Sequences
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
is_defaultbooleanoptionalIf true, this becomes the team's default product and any prior default product is unset. Defaults to false.
one_sentence_descriptionstringoptionalA single-sentence summary of the product used to help Apollo generate outreach messaging.
product_contentstringoptionalDetailed product information in Markdown — features, use cases, and value propositions Apollo can reference when generating messaging.
apollomcp_apollo_context_center_create_profile#Create the team's Context Center Ideal Customer Profile (ICP) — the single team-wide profile Apollo uses to personalize AI-generated outreach: who the team sells to, the company's value proposition, the pain points it solves, and its proof points. A Context Center has two parts: this ICP (one per team) and a set of product profiles managed separately via apollo_context_center_create_product / apollo_context_center_update_product; this tool sets only the ICP. Use this when the team is setting up its Context Center for the first time — to edit an existing profile, use apollo_context_center_update_profile instead. Confirm every field value with the user before calling; never invent company positioning, value props, or competitors. No fields are strictly required, but leaving the profile mostly empty limits how well Apollo can personalize messaging.19 params

Create the team's Context Center Ideal Customer Profile (ICP) — the single team-wide profile Apollo uses to personalize AI-generated outreach: who the team sells to, the company's value proposition, the pain points it solves, and its proof points. A Context Center has two parts: this ICP (one per team) and a set of product profiles managed separately via apollo_context_center_create_product / apollo_context_center_update_product; this tool sets only the ICP. Use this when the team is setting up its Context Center for the first time — to edit an existing profile, use apollo_context_center_update_profile instead. Confirm every field value with the user before calling; never invent company positioning, value props, or competitors. No fields are strictly required, but leaving the profile mostly empty limits how well Apollo can personalize messaging.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
additional_contextstringoptionalAny other context that should inform AI-generated messaging.
approvedbooleanoptionalWhether the new Context Center is approved and active. Set true to publish it (live for AI-generated messaging); leave false to create it as a draft. Confirm the user's intent before approving. Defaults to false.
call_to_actionstringoptionalThe preferred next step to ask prospects to take.
company_or_product_namestringoptionalThe company or primary product name.
company_overviewstringoptionalWhat the company or product does.
customer_pain_pointsstringoptionalThe problems the product solves for the customer.
customer_profilestringoptionalWho the team sells to — the ideal customer. Example: RevOps leaders at 200-2000 employee B2B SaaS companies.
disqualification_criteriastringoptionalAttributes that disqualify an account from being a fit.
domainstringoptionalThe company's primary web domain.
high_value_fit_criteriastringoptionalAttributes that make an account an especially high-value fit.
icp_fit_criteriastringoptionalAttributes that make an account a good fit.
primary_competitorsstringoptionalMain competitors the company is compared against.
product_differentiatorsstringoptionalHow the product is different from or better than competitors.
profile_namestringoptionalA human-readable label for this ICP.
research_sourcesstringoptionalSources the team uses to research accounts.
social_proofstringoptionalCustomers, case studies, metrics, or testimonials that build credibility.
value_propositionstringoptionalWhy a customer should buy — the core value delivered.
apollomcp_apollo_context_center_show#Fetch the team's full Context Center — the Ideal Customer Profile (ICP) and all product profiles Apollo uses to personalize AI-generated messaging. Returns the team's current Context Center including drafts that have not yet been approved. Always call this first before editing the profile or a product, so you read the current values and send only the fields that change. Returns a 404 if the team has no Context Center yet — in that case use apollo_context_center_create_profile to set one up.2 params

Fetch the team's full Context Center — the Ideal Customer Profile (ICP) and all product profiles Apollo uses to personalize AI-generated messaging. Returns the team's current Context Center including drafts that have not yet been approved. Always call this first before editing the profile or a product, so you read the current values and send only the fields that change. Returns a 404 if the team has no Context Center yet — in that case use apollo_context_center_create_profile to set one up.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_context_center_show_product#Fetch a single product from the team's Context Center by its Apollo id. Use this to read a product's current details before editing it with apollo_context_center_update_product or referencing it in messaging.3 params

Fetch a single product from the team's Context Center by its Apollo id. Use this to read a product's current details before editing it with apollo_context_center_update_product or referencing it in messaging.

NameTypeRequiredDescription
idstringrequiredApollo ID of the product to fetch. Must be an exact id from a prior Context Center response (e.g. apollo_context_center_show) in this session — never an id from memory or assumptions. Example: 63f53afe4ceeca00016bdd2f
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_context_center_update_product#Update an existing product in the team's Context Center. Each field you send REPLACES the prior value of that field; fields you omit are left unchanged. Before calling, read the product first with apollo_context_center_show_product (or apollo_context_center_show) and confirm the new values with the user — this action overwrites the prior content and is not reversible. After calling, echo back only the product id and a short summary of what changed.7 params

Update an existing product in the team's Context Center. Each field you send REPLACES the prior value of that field; fields you omit are left unchanged. Before calling, read the product first with apollo_context_center_show_product (or apollo_context_center_show) and confirm the new values with the user — this action overwrites the prior content and is not reversible. After calling, echo back only the product id and a short summary of what changed.

NameTypeRequiredDescription
idstringrequiredApollo ID of the product to update. Must be an exact id from a prior Context Center response in this session — never an id from memory or assumptions. Example: 63f53afe4ceeca00016bdd2f
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
is_defaultbooleanoptionalIf true, this becomes the team's default product and any prior default product is unset.
one_sentence_descriptionstringoptionalUpdated single-sentence summary of the product.
product_contentstringoptionalUpdated product detail in Markdown — features, use cases, and value propositions.
product_or_service_namestringoptionalUpdated product or service name. Example: Apollo Sequences
apollomcp_apollo_context_center_update_profile#Update fields on the team's EXISTING Context Center Ideal Customer Profile (ICP). Each field you send REPLACES the prior value of that field; fields you omit are left unchanged. This requires a Context Center to already exist — if the team has no Context Center yet, use apollo_context_center_create_profile instead (it auto-creates one). This is the team's shared profile: an edit changes it for everyone on the team and overwrites prior content, so it is not reversible. Before calling, read the current profile with apollo_context_center_show, confirm the new values with the user, and send only the fields that change. After calling, echo back only the profile id and a short summary of which fields changed — do not paste the full payload.19 params

Update fields on the team's EXISTING Context Center Ideal Customer Profile (ICP). Each field you send REPLACES the prior value of that field; fields you omit are left unchanged. This requires a Context Center to already exist — if the team has no Context Center yet, use apollo_context_center_create_profile instead (it auto-creates one). This is the team's shared profile: an edit changes it for everyone on the team and overwrites prior content, so it is not reversible. Before calling, read the current profile with apollo_context_center_show, confirm the new values with the user, and send only the fields that change. After calling, echo back only the profile id and a short summary of which fields changed — do not paste the full payload.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
additional_contextstringoptionalAny other context that should inform AI-generated messaging.
approvedbooleanoptionalWhether the Context Center is approved and active after this update. Set true to publish it (live for AI-generated messaging); leave false to save as a draft. Editing without approved: true returns the profile to active, so set true when the user wants to keep it active. Confirm the user's intent before approving. Defaults to false.
call_to_actionstringoptionalThe preferred next step to ask prospects to take.
company_or_product_namestringoptionalThe company or primary product name.
company_overviewstringoptionalWhat the company or product does.
customer_pain_pointsstringoptionalThe problems the product solves for the customer.
customer_profilestringoptionalWho the team sells to — the ideal customer.
disqualification_criteriastringoptionalAttributes that disqualify an account from being a fit.
domainstringoptionalThe company's primary web domain.
high_value_fit_criteriastringoptionalAttributes that make an account an especially high-value fit.
icp_fit_criteriastringoptionalAttributes that make an account a good fit.
primary_competitorsstringoptionalMain competitors the company is compared against.
product_differentiatorsstringoptionalHow the product is different from or better than competitors.
profile_namestringoptionalA human-readable label for this ICP.
research_sourcesstringoptionalSources the team uses to research accounts.
social_proofstringoptionalCustomers, case studies, metrics, or testimonials that build credibility.
value_propositionstringoptionalWhy a customer should buy — the core value delivered.
apollomcp_apollo_conversations_get_insights#Retrieve AI-generated insights for a single conversation — only available once insights have been fully processed (state=insights_generated). Returns four sections: summary (plaintext overview including outcome, pricing discussion, next steps, objections, and pain points), action_items (timestamped items with speaker attribution), questions (raised during the call, with speaker and timestamp), and tracker_insights (topic tracker hits such as competitor mentions or pricing triggers, with timestamp and spoken sentence). The end user will not provide a conversation id directly — call apollo_conversations_search first to find candidates, then pass the id from that result. If multiple conversations match, present topic and start_time and ask the user to confirm which one before calling this tool; when exactly one conversation clearly matches, proceed without extra confirmation.3 params

Retrieve AI-generated insights for a single conversation — only available once insights have been fully processed (state=insights_generated). Returns four sections: summary (plaintext overview including outcome, pricing discussion, next steps, objections, and pain points), action_items (timestamped items with speaker attribution), questions (raised during the call, with speaker and timestamp), and tracker_insights (topic tracker hits such as competitor mentions or pricing triggers, with timestamp and spoken sentence). The end user will not provide a conversation id directly — call apollo_conversations_search first to find candidates, then pass the id from that result. If multiple conversations match, present topic and start_time and ask the user to confirm which one before calling this tool; when exactly one conversation clearly matches, proceed without extra confirmation.

NameTypeRequiredDescription
idstringrequiredConversation id from apollo_conversations_search in this session. Must be the exact id value returned by that tool call — never from memory, prior sessions, or assumptions. Example: 66e9e215ece19801b219997f
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_conversations_get_transcript#Retrieve the transcript for a single conversation, along with conversation metadata, in the requested format. The end user will not provide a conversation id directly — call apollo_conversations_search first to find candidates, then pass the id from that result. If multiple conversations match, present topic and start_time and ask the user to confirm which one before calling this tool; when exactly one conversation clearly matches, proceed without extra confirmation.4 params

Retrieve the transcript for a single conversation, along with conversation metadata, in the requested format. The end user will not provide a conversation id directly — call apollo_conversations_search first to find candidates, then pass the id from that result. If multiple conversations match, present topic and start_time and ask the user to confirm which one before calling this tool; when exactly one conversation clearly matches, proceed without extra confirmation.

NameTypeRequiredDescription
idstringrequiredConversation id from apollo_conversations_search in this session. Must be the exact id value returned by that tool call — never from memory, prior sessions, or assumptions. Example: 66e9e215ece19801b219997f
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
transcript_formatstringoptionalTranscript output format. Use "formatted" for readable text, "raw" for JSON segments, "hash" for structured objects. Defaults to formatted.
apollomcp_apollo_domain_purchase_index#List the domains your team has purchased through Apollo. Returns each domain's id, domain name, status, billing period, SPF/DKIM/DMARC diagnostics, and any mailboxes already provisioned on it. Call this to obtain a domain_purchase_id before purchasing a mailbox — a mailbox can only be provisioned on a domain the team already owns, and the mailbox email's domain must match the domain returned here. Never guess a domain_purchase_id; use only ids returned by this tool.2 params

List the domains your team has purchased through Apollo. Returns each domain's id, domain name, status, billing period, SPF/DKIM/DMARC diagnostics, and any mailboxes already provisioned on it. Call this to obtain a domain_purchase_id before purchasing a mailbox — a mailbox can only be provisioned on a domain the team already owns, and the mailbox email's domain must match the domain returned here. Never guess a domain_purchase_id; use only ids returned by this tool.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_email_account_purchase_create#Purchase one or more Apollo-provisioned outbound mailboxes against a domain the team already owns. THIS CONSUMES CREDITS and provisions real mailboxes — it is irreversible from this tool. No deduplication is applied; provisioning fails if the mailbox address is already in use. The mailbox is automatically owned by the authenticated user. Credit cost per mailbox (unified credits): shared = 300, google = 800, outlook = 1500; total = count × per-type cost, and all mailboxes in one request must share the same mailbox_type. You MUST get explicit user confirmation of the exact credit total before calling this tool. Provisioning is asynchronous: new mailboxes start in status_cd "pending_setup" and become "active" once ready; the request is rejected if the team has insufficient credits.3 params

Purchase one or more Apollo-provisioned outbound mailboxes against a domain the team already owns. THIS CONSUMES CREDITS and provisions real mailboxes — it is irreversible from this tool. No deduplication is applied; provisioning fails if the mailbox address is already in use. The mailbox is automatically owned by the authenticated user. Credit cost per mailbox (unified credits): shared = 300, google = 800, outlook = 1500; total = count × per-type cost, and all mailboxes in one request must share the same mailbox_type. You MUST get explicit user confirmation of the exact credit total before calling this tool. Provisioning is asynchronous: new mailboxes start in status_cd "pending_setup" and become "active" once ready; the request is rejected if the team has insufficient credits.

NameTypeRequiredDescription
email_accountsarrayrequiredThe mailboxes to purchase. All mailboxes must share the same mailbox_type.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_email_account_purchase_index#List the team's Apollo-provisioned (purchased) mailboxes. Returns each mailbox's id, email, mailbox type (type_cd), provisioning status (status_cd: pending_setup | active | inactive), assigned user, forwarding email, and billing period. Use this to check the status of a purchased mailbox, or to see what mailboxes the team already owns. This lists PURCHASED mailboxes only — not mailboxes connected via OAuth (use the email accounts list tool for those). Optionally filter by domain_purchase_id to see mailboxes on one purchased domain.3 params

List the team's Apollo-provisioned (purchased) mailboxes. Returns each mailbox's id, email, mailbox type (type_cd), provisioning status (status_cd: pending_setup | active | inactive), assigned user, forwarding email, and billing period. Use this to check the status of a purchased mailbox, or to see what mailboxes the team already owns. This lists PURCHASED mailboxes only — not mailboxes connected via OAuth (use the email accounts list tool for those). Optionally filter by domain_purchase_id to see mailboxes on one purchased domain.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
domain_purchase_idstringoptionalOptional. Filter mailboxes to a single purchased domain. Must be the exact id value returned by apollo_domain_purchase_index in this session. Never use an ID from memory, prior sessions, or assumptions. Example: 66e9e215ece19801b219997f
apollomcp_apollo_email_accounts_index#Retrieve all linked email inboxes (mailboxes) for your team's Apollo account. Always call this before adding contacts to a sequence to get valid sender email account IDs — never guess or fabricate them.2 params

Retrieve all linked email inboxes (mailboxes) for your team's Apollo account. Always call this before adding contacts to a sequence to get valid sender email account IDs — never guess or fabricate them.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_emailer_campaigns_add_contact_ids#Add contacts to existing sequences in your team's Apollo account. This action sends real emails from a real person's mailbox and is irreversible once emails are dispatched. Before calling, confirm the sequence ID, email account ID, and get explicit user approval.19 params

Add contacts to existing sequences in your team's Apollo account. This action sends real emails from a real person's mailbox and is irreversible once emails are dispatched. Before calling, confirm the sequence ID, email account ID, and get explicit user approval.

NameTypeRequiredDescription
emailer_campaign_idstringrequiredThe same ID as the id field above. Must be the exact id value returned by apollo_emailer_campaigns_search in this session.
idstringrequiredThe Apollo ID for the sequence to which you want to add contacts. Must be the exact id value returned by apollo_emailer_campaigns_search in this session.
send_email_from_email_account_idstringrequiredThe Apollo ID(s) for the email account(s) used to send to contacts. Accepts one id as a string, or multiple ids as an array of strings. To find ids, call the Get a List of Email Accounts endpoint.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
add_if_in_queuebooleanoptionalSet to true if you want to add contacts even if they are currently in the queue for processing. Defaults to false.
auto_unpause_atstringoptionalDateTime when paused contacts should be automatically unpaused. Must be used with status=paused. Format: ISO 8601 datetime string.
contact_idsarrayoptionalThe Apollo IDs for the contacts to add to the sequence. Every ID must be a real 24-character hex string returned by a tool call in this session. Either contact_ids or label_names must be provided.
contact_verification_skippedbooleanoptionalSet to true if you want to skip contact verification during the addition process. Defaults to false.
contacts_without_ownership_permissionbooleanoptionalSet to true if you want to add contacts even if you don't have ownership permission for them. Defaults to false.
label_namesarrayoptionalAlternative to contact_ids. Array of label names to identify contacts to add to the sequence. Either contact_ids or label_names must be provided.
send_email_from_email_addressstringoptionalOptional specific email address to send from within the email account.
sequence_active_in_other_campaignsbooleanoptionalSet to true if you want to add contacts to the sequence even if they have been added to other sequences. Defaults to false.
sequence_finished_in_other_campaignsbooleanoptionalSet to true if you want to add contacts to the sequence if they have been marked as finished in another sequence. Defaults to false.
sequence_job_changebooleanoptionalSet to true if you want to add contacts to the sequence even if they have recently changed jobs. Defaults to false.
sequence_no_emailbooleanoptionalSet to true if you want to add contacts to the sequence even if they do not have an email address. Defaults to false.
sequence_same_company_in_same_campaignbooleanoptionalSet to true if you want to add contacts to the sequence even if other contacts from the same company are already in the sequence. Defaults to false.
sequence_unverified_emailbooleanoptionalSet to true if you want to add contacts to the sequence if they have an unverified email address. Defaults to false.
statusstringoptionalInitial status for added contacts. When set to paused along with auto_unpause_at, enables scheduled addition of contacts. Valid values: active, paused.
apollomcp_apollo_emailer_campaigns_approve#Activate (turn on) an existing sequence so that contacts enrolled in it begin receiving emails and tasks. This flips active=false to active=true. Once active, Apollo will start sending emails from the user's mailbox. Get explicit user confirmation before calling.3 params

Activate (turn on) an existing sequence so that contacts enrolled in it begin receiving emails and tasks. This flips active=false to active=true. Once active, Apollo will start sending emails from the user's mailbox. Get explicit user confirmation before calling.

NameTypeRequiredDescription
idstringrequiredThe Apollo ID of the sequence to activate. Must be the exact id value returned by apollo_emailer_campaigns_search or apollo_sequences_create in this session. Never use an ID from memory or prior sessions.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_emailer_campaigns_remove_or_stop_contact_ids#Remove or stop contacts from one or more existing sequences in your Apollo account. Use mode=remove to fully remove contacts, or mode=stop to stop them while retaining sequence history.6 params

Remove or stop contacts from one or more existing sequences in your Apollo account. Use mode=remove to fully remove contacts, or mode=stop to stop them while retaining sequence history.

NameTypeRequiredDescription
contact_idsarrayrequiredThe Apollo IDs for the contacts that you want to remove from the sequences. To find contact IDs, call the Search for Contacts endpoint.
emailer_campaign_idsarrayrequiredThe Apollo IDs for the sequences that you want to remove the contacts from. To find sequence IDs, call the Search for Sequences endpoint.
modestringrequiredThe mode for the removal or stopping of the contacts. Valid values: remove, stop. Defaults to remove.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
stop_reasonstringoptionalThe reason for stopping or removing the contacts. Only used if the mode is stop.
apollomcp_apollo_emailer_messages_create#Create a draft email message for a contact. The draft is saved but NOT sent until apollo_emailer_messages_send_now is called with the returned emailer_message id. Before calling, look up the user's mailboxes (apollo_email_accounts_index) to identify the default sender mailbox, and confirm the recipient, subject, and body preview with the user. The recipient defaults to the contact's own email; pass a recipients array (each entry with email and recipient_type_cd of to/cc/bcc) to override or add recipients, including non-contact addresses — this changes who receives the email but not the contact it is associated with.6 params

Create a draft email message for a contact. The draft is saved but NOT sent until apollo_emailer_messages_send_now is called with the returned emailer_message id. Before calling, look up the user's mailboxes (apollo_email_accounts_index) to identify the default sender mailbox, and confirm the recipient, subject, and body preview with the user. The recipient defaults to the contact's own email; pass a recipients array (each entry with email and recipient_type_cd of to/cc/bcc) to override or add recipients, including non-contact addresses — this changes who receives the email but not the contact it is associated with.

NameTypeRequiredDescription
body_htmlstringrequiredEmail body in HTML format. Best practice: 25-85 words, plain conversational tone, single clear CTA.
contact_idstringrequiredApollo ID of the contact to email. Must be the exact id value returned by a tool call (e.g. apollo_contacts_search) in this session. Never use placeholders, template strings, or IDs from memory or prior sessions.
subjectstringrequiredEmail subject line. Keep under 9 words for cold outreach.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
recipientsarrayoptionalOptional. Set or override the message recipients, including non-contact email addresses. Omit to send to the contact's own email as the sole 'to' recipient.
apollomcp_apollo_emailer_messages_email_send_status#Check the delivery status of an email after calling apollo_emailer_messages_send_now, using the emailer_message id from the send_now response. If status is "scheduled" or "drafted", the email is still being processed — wait 10-20 seconds and poll again (delivery typically completes within 5-30 seconds); give up after about 4 polling attempts and tell the user the email is queued. Terminal statuses are "completed" (delivered successfully) and "failed" (the response includes not_sent_reason and failure_reason, e.g. bounce, quota exceeded, spam block).3 params

Check the delivery status of an email after calling apollo_emailer_messages_send_now, using the emailer_message id from the send_now response. If status is "scheduled" or "drafted", the email is still being processed — wait 10-20 seconds and poll again (delivery typically completes within 5-30 seconds); give up after about 4 polling attempts and tell the user the email is queued. Terminal statuses are "completed" (delivered successfully) and "failed" (the response includes not_sent_reason and failure_reason, e.g. bounce, quota exceeded, spam block).

NameTypeRequiredDescription
idstringrequiredThe emailer_message id returned by apollo_emailer_messages_send_now. Must be the exact id from the send_now response in this session.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_emailer_messages_send_now#Send a drafted email (created by apollo_emailer_messages_create) immediately. send_from must identify the sending mailbox with the email_account_id and email from apollo_email_accounts_index — use the mailbox where default: true unless the user explicitly requests a different one. The send completes in-process, so the response status is normally final: "completed" means it was sent; "failed" means it was NOT delivered (the response includes not_sent_reason and a human-readable failure_reason) — never report success on a failed response. If mailbox rate limits or warmup pacing defer the send, status is "scheduled"/"delayed" instead — confirm the final outcome with apollo_emailer_messages_email_send_status. THIS ACTION SENDS A REAL EMAIL from a real person's mailbox; never call it without explicit user confirmation of the recipient, subject, and body.4 params

Send a drafted email (created by apollo_emailer_messages_create) immediately. send_from must identify the sending mailbox with the email_account_id and email from apollo_email_accounts_index — use the mailbox where default: true unless the user explicitly requests a different one. The send completes in-process, so the response status is normally final: "completed" means it was sent; "failed" means it was NOT delivered (the response includes not_sent_reason and a human-readable failure_reason) — never report success on a failed response. If mailbox rate limits or warmup pacing defer the send, status is "scheduled"/"delayed" instead — confirm the final outcome with apollo_emailer_messages_email_send_status. THIS ACTION SENDS A REAL EMAIL from a real person's mailbox; never call it without explicit user confirmation of the recipient, subject, and body.

NameTypeRequiredDescription
idstringrequiredThe emailer_message id returned by apollo_emailer_messages_create. Must be the exact id from the create response in this session.
send_fromobjectrequiredMailbox to send from. Use the email account returned by apollo_email_accounts_index.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_emailer_schedules_index#List all sending schedules available in the user's team. A schedule defines the time windows (days of week, hours of day, time zone) during which Apollo will send emails for a sequence. Use this when the user wants to pick a non-default schedule for a new sequence.2 params

List all sending schedules available in the user's team. A schedule defines the time windows (days of week, hours of day, time zone) during which Apollo will send emails for a sequence. Use this when the user wants to pick a non-default schedule for a new sequence.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_feedback_log#Report when a previous Apollo tool returned an unexpected, empty, or unhelpful result. Include the name of the tool that failed and a clear description of what went wrong. Do not call this for successful tool results or expected empty states.4 params

Report when a previous Apollo tool returned an unexpected, empty, or unhelpful result. Include the name of the tool that failed and a clear description of what went wrong. Do not call this for successful tool results or expected empty states.

NameTypeRequiredDescription
client_namestringrequiredYour name as the MCP client calling this tool (e.g. claude, chatgpt, cursor). This helps identify which AI assistant generated the feedback.
messagestringrequiredA clear description of what you attempted, what tool you called, and what went wrong or was unexpected. Include the result you received and what you expected instead.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_fields_index#List your team's custom or system fields so you can set them on accounts or contacts. Call this before the Create/Update/Bulk Create tools for accounts or contacts whenever you need to set a custom field. Each field is returned with its id, label, type, modality (account, contact, etc.), source, and — for picklist/multipicklist fields — its allowed options as picklist_values: [{"id": ..., "name": ...}]. The option name is what you send when setting a record's value; the option id is what you resend to the fields update tool when changing the field's option set. Pass a field's id exactly as returned as the key in the typed_custom_fields object on create/update tools, e.g. typed_custom_fields: {"<id>": "<value>"}. For picklist fields send an allowed option name; for multipicklist fields send an array of names.5 params

List your team's custom or system fields so you can set them on accounts or contacts. Call this before the Create/Update/Bulk Create tools for accounts or contacts whenever you need to set a custom field. Each field is returned with its id, label, type, modality (account, contact, etc.), source, and — for picklist/multipicklist fields — its allowed options as picklist_values: [{"id": ..., "name": ...}]. The option name is what you send when setting a record's value; the option id is what you resend to the fields update tool when changing the field's option set. Pass a field's id exactly as returned as the key in the typed_custom_fields object on create/update tools, e.g. typed_custom_fields: {"<id>": "<value>"}. For picklist fields send an allowed option name; for multipicklist fields send an array of names.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
limitintegeroptionalMaximum number of fields to return. Must be a positive integer. Example: 50
modalitystringoptionalRestrict results to a single record type. Use 'contact' when working with contacts, 'account' for accounts, etc.
sourcestringoptionalWhich kind of fields to return. 'custom' (default) = team-created custom fields; 'system' = Apollo's built-in standard fields.
apollomcp_apollo_labels_add_entity_ids_to_label_names#Add one or more contacts or accounts to one or more Apollo lists. Identify the records by their Apollo ids (entity_ids) and the lists by name (label_names). The modality must match the kind of records and lists — use "contacts" when adding contacts and "accounts" when adding accounts. If a supplied list name does not yet exist for that modality it is created automatically, so this tool can both create-and-populate a list in one call. Get contact ids from apollo_contacts_search and account ids from apollo_accounts_search. Adding a record that is already on a list is a no-op — no duplicates are created. The response echoes the affected lists, each with its id and app_url (a shareable deep link to the list in the Apollo web app) — surface app_url to the user.5 params

Add one or more contacts or accounts to one or more Apollo lists. Identify the records by their Apollo ids (entity_ids) and the lists by name (label_names). The modality must match the kind of records and lists — use "contacts" when adding contacts and "accounts" when adding accounts. If a supplied list name does not yet exist for that modality it is created automatically, so this tool can both create-and-populate a list in one call. Get contact ids from apollo_contacts_search and account ids from apollo_accounts_search. Adding a record that is already on a list is a no-op — no duplicates are created. The response echoes the affected lists, each with its id and app_url (a shareable deep link to the list in the Apollo web app) — surface app_url to the user.

NameTypeRequiredDescription
entity_idsarrayrequiredApollo IDs of the contacts or accounts to add. Must be the exact id value returned by apollo_contacts_search (for contacts) or apollo_accounts_search (for accounts). Never use an ID from memory, prior sessions, or assumptions.
label_namesarrayrequiredNames of the lists to add the records to. A name that does not yet exist for this modality is created automatically.
modalitystringrequiredThe kind of records and lists — one of contacts or accounts. Must match the type of the supplied entity_ids.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_labels_create#Create a new, empty Apollo list (label) for your team. In Apollo terminology, a list is a named, saved group of records; supply the modality to choose whether it is a list of contacts or accounts. List names must be unique per modality within your team — creating a list whose name already exists for that modality returns an error (use apollo_labels_update to rename an existing list instead). To add records to a list use apollo_labels_add_entity_ids_to_label_names, which will also create the list on the fly if the name does not yet exist. No deduplication is applied beyond the per-modality name-uniqueness check, so check apollo_labels_index first if you may be recreating an existing list. The response includes the new list's id and its app_url (a shareable deep link to the list in the Apollo web app) — surface app_url to the user.4 params

Create a new, empty Apollo list (label) for your team. In Apollo terminology, a list is a named, saved group of records; supply the modality to choose whether it is a list of contacts or accounts. List names must be unique per modality within your team — creating a list whose name already exists for that modality returns an error (use apollo_labels_update to rename an existing list instead). To add records to a list use apollo_labels_add_entity_ids_to_label_names, which will also create the list on the fly if the name does not yet exist. No deduplication is applied beyond the per-modality name-uniqueness check, so check apollo_labels_index first if you may be recreating an existing list. The response includes the new list's id and its app_url (a shareable deep link to the list in the Apollo web app) — surface app_url to the user.

NameTypeRequiredDescription
modalitystringrequiredWhat kind of records this list holds — one of contacts or accounts.
namestringrequiredThe name for the new list. Example: Q3 Enterprise Targets
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_labels_index#List the Apollo lists (also called labels) that belong to your team. A list is a named, saved group of contacts or accounts. Each returned list includes its id, name, modality (contacts or accounts), cached record count, and app_url — a shareable deep link to the list in the Apollo web app (format: https://app.apollo.io/#/lists/<list_id>); surface app_url to the user when they want to view or share a list. Call this first to discover existing lists and their ids before renaming a list (apollo_labels_update) or adding/removing records (apollo_labels_add_entity_ids_to_label_names, apollo_labels_remove_entity_ids_from_label_names).2 params

List the Apollo lists (also called labels) that belong to your team. A list is a named, saved group of contacts or accounts. Each returned list includes its id, name, modality (contacts or accounts), cached record count, and app_url — a shareable deep link to the list in the Apollo web app (format: https://app.apollo.io/#/lists/<list_id>); surface app_url to the user when they want to view or share a list. Call this first to discover existing lists and their ids before renaming a list (apollo_labels_update) or adding/removing records (apollo_labels_add_entity_ids_to_label_names, apollo_labels_remove_entity_ids_from_label_names).

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_labels_remove_entity_ids_from_label_names#Remove one or more contacts or accounts from one or more Apollo lists. Identify the records by their Apollo ids (entity_ids) and the lists by name (label_names). Get entity ids from apollo_contacts_search (contacts) or apollo_accounts_search (accounts), and list names from apollo_labels_index. The modality must match the kind of records and lists — use "contacts" for contacts and "accounts" for accounts. This is destructive: list membership is dropped immediately and the records stop appearing in any view, workflow, or automation scoped to that list. It only detaches the records from the named lists — it does NOT delete the records themselves and does NOT delete the list. Removing a record that is not on a list is a no-op.5 params

Remove one or more contacts or accounts from one or more Apollo lists. Identify the records by their Apollo ids (entity_ids) and the lists by name (label_names). Get entity ids from apollo_contacts_search (contacts) or apollo_accounts_search (accounts), and list names from apollo_labels_index. The modality must match the kind of records and lists — use "contacts" for contacts and "accounts" for accounts. This is destructive: list membership is dropped immediately and the records stop appearing in any view, workflow, or automation scoped to that list. It only detaches the records from the named lists — it does NOT delete the records themselves and does NOT delete the list. Removing a record that is not on a list is a no-op.

NameTypeRequiredDescription
entity_idsarrayrequiredApollo IDs of the contacts or accounts to remove from the lists. Must be the exact id value returned by apollo_contacts_search (for contacts) or apollo_accounts_search (for accounts). Never use an ID from memory, prior sessions, or assumptions.
label_namesarrayrequiredNames of the lists to remove the records from.
modalitystringrequiredThe kind of records and lists — one of contacts or accounts. Must match the type of the supplied entity_ids.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_labels_update#Rename an existing Apollo list (label). Pass the list id and the new name. Use List Lists (apollo_labels_index) to discover the id of the list you want to rename. The new name must be unique per modality within your team — reusing an existing name for that modality returns an error. This tool only renames a list; it does not add or remove records (use apollo_labels_add_entity_ids_to_label_names / apollo_labels_remove_entity_ids_from_label_names) and it cannot delete a list.4 params

Rename an existing Apollo list (label). Pass the list id and the new name. Use List Lists (apollo_labels_index) to discover the id of the list you want to rename. The new name must be unique per modality within your team — reusing an existing name for that modality returns an error. This tool only renames a list; it does not add or remove records (use apollo_labels_add_entity_ids_to_label_names / apollo_labels_remove_entity_ids_from_label_names) and it cannot delete a list.

NameTypeRequiredDescription
idstringrequiredThe Apollo ID of the list to rename. Must be the exact id value returned by apollo_labels_index. Never use an ID from memory, prior sessions, or assumptions. Example: 6095a710bd01d100a506d4ae
namestringrequiredThe new name for the list. Example: Q4 Enterprise Targets
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_organizations_bulk_enrich#Enrich data for up to 10 companies in a single API call using the Bulk Organization Enrichment endpoint. Enriched data includes industry information, revenue, employee counts, funding round details, and corporate phone numbers. Credit cost: 1 credit per matched company.3 params

Enrich data for up to 10 companies in a single API call using the Bulk Organization Enrichment endpoint. Enriched data includes industry information, revenue, employee counts, funding round details, and corporate phone numbers. Credit cost: 1 credit per matched company.

NameTypeRequiredDescription
domainsarrayrequiredAn array of company domains to enrich. Maximum 10 domains per request.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_organizations_enrich#Enrich data for 1 company using the Organization Enrichment endpoint. Enriched data includes industry information, revenue, employee counts, funding round details, and corporate phone numbers and locations. Credit cost: 1 credit if found, 0 credits if not found.3 params

Enrich data for 1 company using the Organization Enrichment endpoint. Enriched data includes industry information, revenue, employee counts, funding round details, and corporate phone numbers and locations. Credit cost: 1 credit if found, 0 credits if not found.

NameTypeRequiredDescription
domainstringrequiredThe domain of the organization you want to enrich.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_organizations_job_postings#Retrieve the current job postings for a company using the Organization Job Postings endpoint. Helps identify companies growing headcount in strategic areas. Credit cost: 1 credit per request. Must confirm with user before calling.5 params

Retrieve the current job postings for a company using the Organization Job Postings endpoint. Helps identify companies growing headcount in strategic areas. Credit cost: 1 credit per request. Must confirm with user before calling.

NameTypeRequiredDescription
idstringrequiredThe Apollo ID for the organization whose job postings you want to retrieve. To find organization IDs, call the Organization Search endpoint.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
pageintegeroptionalThe page number for pagination. Default is 1.
per_pageintegeroptionalThe number of results per page. Default and maximum is 10000.
apollomcp_apollo_people_bulk_match#Enrich data for up to 10 people in a single call. Pass an array of person objects under details. Each object accepts identifying fields such as first name, last name, email, organization name, domain, or LinkedIn URL. Costs 1 credit per matched person; 0 credits for unmatched entries.7 params

Enrich data for up to 10 people in a single call. Pass an array of person objects under details. Each object accepts identifying fields such as first name, last name, email, organization name, domain, or LinkedIn URL. Costs 1 credit per matched person; 0 credits for unmatched entries.

NameTypeRequiredDescription
detailsarrayrequiredAn array of objects, each representing a person to enrich. Maximum 10 people per request.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
reveal_personal_emailsbooleanoptionalSet to true to return personal email addresses. Default is false.
reveal_phone_numberbooleanoptionalSet to true to reveal phone numbers for the matched people. Requires the apollo_webhook_result_show tool to retrieve the async result. Default is false.
run_waterfall_emailbooleanoptionalSet to true to fill missing work emails using Apollo's waterfall cascade (Apollo's own data first, then partner providers). Default is false.
run_waterfall_phonebooleanoptionalSet to true to fill missing phone numbers using Apollo's waterfall cascade (Apollo's own data first, then partner providers). Default is false.
apollomcp_apollo_people_match#Enrich data for a single person in the Apollo database. Provide identifying details such as name, email, domain, or LinkedIn URL to find a match. Returns enriched profile data including job title, employer, and contact details. Costs 1 credit per matched person; 0 credits if not found.15 params

Enrich data for a single person in the Apollo database. Provide identifying details such as name, email, domain, or LinkedIn URL to find a match. Returns enriched profile data including job title, employer, and contact details. Costs 1 credit per matched person; 0 credits if not found.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
domainstringoptionalThe domain of the person's employer. Example: apollo.io
emailstringoptionalThe email address of the person. Example: tim@apollo.io
first_namestringoptionalThe first name of the person. Example: Tim
hashed_emailstringoptionalThe MD5 or SHA-256 hashed email address of the person. Use this if you do not want to send the plain-text email.
idstringoptionalThe Apollo ID for the person. Each person in the Apollo database is assigned a unique ID. To find IDs, call the People API Search endpoint and identify the values for person_id. Example: 587cf802f65125cad923a266
last_namestringoptionalThe last name of the person. Example: Zheng
linkedin_urlstringoptionalThe LinkedIn profile URL of the person. Example: https://www.linkedin.com/in/timzheng
namestringoptionalThe full name of the person. Use this as an alternative to providing first_name and last_name separately. Example: Tim Zheng
organization_namestringoptionalThe name of the person's employer (company). Example: Apollo
reveal_personal_emailsbooleanoptionalSet to true to return personal email addresses for the person. Default is false.
reveal_phone_numberbooleanoptionalSet to true to reveal the person's phone number(s). Requires the apollo_webhook_result_show tool to retrieve the async result. Default is false.
run_waterfall_emailbooleanoptionalSet to true to fill a missing work email using Apollo's waterfall cascade (Apollo's own data first, then partner providers). Default is false.
run_waterfall_phonebooleanoptionalSet to true to fill a missing phone number using Apollo's waterfall cascade (Apollo's own data first, then partner providers). Default is false.
apollomcp_apollo_sequences_create#Create a new multi-step outreach sequence in the user's Apollo workspace. A sequence has a name, an optional sending schedule, and an ordered list of steps. Each step can be an auto email, manual email, call, action item, or LinkedIn step. Sequences are created inactive by default and must be explicitly activated.9 params

Create a new multi-step outreach sequence in the user's Apollo workspace. A sequence has a name, an optional sending schedule, and an ordered list of steps. Each step can be an auto email, manual email, call, action item, or LinkedIn step. Sequences are created inactive by default and must be explicitly activated.

NameTypeRequiredDescription
emailer_stepsarrayrequiredOrdered list of steps. Position is assigned automatically in array order (first item is step 1).
namestringrequiredHuman-readable sequence name shown in Apollo. Should be specific to the audience and goal.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
activebooleanoptionalIf true, sequence becomes active on creation; contacts added to it will start receiving emails. Strongly recommended to leave false and activate later via apollo_emailer_campaigns_approve only after the user reviews sender, schedule, and message bodies.
emailer_schedule_idstringoptionalApollo ID of the EmailerSchedule that controls send-time windows. Must be the exact id value returned by apollo_emailer_schedules_index in this session. Omit to use the user's default schedule.
label_namesarrayoptionalOptional label names to apply to the sequence.
permissionsstringoptionalWho in the team can use/view this sequence. Defaults to team_can_use.
sequence_by_exact_daytimebooleanoptionalIf true, each step has a fixed exact_datetime. If false (default), each step uses wait_time + wait_mode relative to enrollment.
apollomcp_apollo_sequences_update#Update an existing sequence's metadata, steps, touches, and templates in a single call. Uses declarative diff semantics: the emailer_steps array you send is the full intended state after the update. Steps with an id are updated, steps without an id are created, and existing steps not included in the payload are deleted.10 params

Update an existing sequence's metadata, steps, touches, and templates in a single call. Uses declarative diff semantics: the emailer_steps array you send is the full intended state after the update. Steps with an id are updated, steps without an id are created, and existing steps not included in the payload are deleted.

NameTypeRequiredDescription
activebooleanrequiredREQUIRED. Always pass the sequence's current active state (true/false). If you are not intentionally changing it, mirror the value from the create or search response. Activating sends real emails — get explicit user confirmation before passing true.
emailer_stepsarrayrequiredFULL list of steps the sequence should have AFTER this update. Steps with id are updated, steps without id are created, existing steps not in this list are deleted. position is required on every step and must reflow as 1..N.
idstringrequiredApollo ID of the sequence to update. Must be the exact id value returned by apollo_emailer_campaigns_search or apollo_sequences_create in this session. Never use an ID from memory, prior sessions, or assumptions.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
emailer_schedule_idstringoptionalNew sending schedule. Must be the exact id value returned by apollo_emailer_schedules_index in this session. Omit to leave unchanged.
label_namesarrayoptionalReplace the label set on the sequence.
namestringoptionalNew name for the sequence. Omit to leave unchanged.
permissionsstringoptionalNew sharing permission. Omit to leave unchanged.
sequence_by_exact_daytimebooleanoptionalSwitch between interval-based and exact-datetime modes. Omit to leave unchanged.
apollomcp_apollo_tasks_bulk_create#Create many tasks in a single call. Pass an array of task attribute objects under tasks_attributes. Each object requires user_id, type, and at least one of contact_id, account_id, or opportunity_id. No deduplication is applied.3 params

Create many tasks in a single call. Pass an array of task attribute objects under tasks_attributes. Each object requires user_id, type, and at least one of contact_id, account_id, or opportunity_id. No deduplication is applied.

NameTypeRequiredDescription
tasks_attributesarrayrequiredArray of task objects to create. Each object accepts the same fields as the single Create Task endpoint.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_tasks_complete#Mark a single task as completed. For a task that belongs to a sequence, completing it advances the contact to the next step of that sequence. Complete a task only after the real-world action it describes (sending the LinkedIn message, placing the call, etc.) has actually been performed.4 params

Mark a single task as completed. For a task that belongs to a sequence, completing it advances the contact to the next step of that sequence. Complete a task only after the real-world action it describes (sending the LinkedIn message, placing the call, etc.) has actually been performed.

NameTypeRequiredDescription
idstringrequiredApollo ID of the task to complete. Use an ID returned by Search Tasks or Get Task.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
notestringoptionalOptional note to record on completion — e.g. the call outcome.
apollomcp_apollo_tasks_create#Create a single task in Apollo. A task is an action item (call, email, LinkedIn step, or generic action_item) assigned to a user and tied to a contact, account, or opportunity. Requires user_id and type, plus at least one of contact_id, account_id, or opportunity_id.14 params

Create a single task in Apollo. A task is an action item (call, email, LinkedIn step, or generic action_item) assigned to a user and tied to a contact, account, or opportunity. Requires user_id and type, plus at least one of contact_id, account_id, or opportunity_id.

NameTypeRequiredDescription
typestringrequiredThe kind of task — e.g. action_item, call, linkedin_step_message.
user_idstringrequiredApollo user ID of the person who will own/perform the task.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
account_idstringoptionalApollo ID of the account this task is associated with. Must be the exact id value returned by a tool call in this session. Never use placeholders, template strings, or IDs from memory or prior sessions.
contact_idstringoptionalApollo ID of the contact this task is associated with. Must be the exact id value returned by a tool call in this session. Never use placeholders, template strings, or IDs from memory or prior sessions.
creator_idstringoptionalApollo user ID of the person creating the task. Defaults to the authenticated user.
due_atstringoptionalISO 8601 timestamp for when the task is due. Example: 2026-04-30T17:00:00Z
notestringoptionalFree-form note/body for the task.
opportunity_idstringoptionalApollo ID of the deal this task is associated with. Must be the exact id value returned by a tool call in this session. Never use placeholders, template strings, or IDs from memory or prior sessions.
prioritystringoptionalPriority — one of low, medium, high.
standalone_outreach_task_messageobjectoptionalMessage content for email / LinkedIn-step tasks. Set subject and/or body_text to populate the message the task asks the user to send.
statusstringoptionalInitial status — e.g. scheduled, completed.
titlestringoptionalShort title shown in the task list.
apollomcp_apollo_tasks_show#Fetch the full detail of a single task by ID, including the action to perform (e.g. the LinkedIn message body or call script), the associated contact, and — for tasks that belong to a sequence — the sequence name and step position. Call this before completing or skipping a task to see what it asks you to do.4 params

Fetch the full detail of a single task by ID, including the action to perform (e.g. the LinkedIn message body or call script), the associated contact, and — for tasks that belong to a sequence — the sequence name and step position. Call this before completing or skipping a task to see what it asks you to do.

NameTypeRequiredDescription
idstringrequiredApollo ID of the task to fetch. Use an ID returned by Search Tasks.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
body_formatstringoptionalFor an email task, the format of the emailer_message.body in the response: plain (default) for readable plain text, or html for the raw HTML body.
apollomcp_apollo_tasks_skip#Skip a single task without performing it. For a task that belongs to a sequence, skipping it moves the contact past this step. Tasks controlled by a workflow approval cannot be skipped.4 params

Skip a single task without performing it. For a task that belongs to a sequence, skipping it moves the contact past this step. Tasks controlled by a workflow approval cannot be skipped.

NameTypeRequiredDescription
idstringrequiredApollo ID of the task to skip. Use an ID returned by Search Tasks or Get Task.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
notestringoptionalOptional reason for skipping.
apollomcp_apollo_tasks_update#Edit an existing task in place — change its title, note, priority, due date, assignee, or the message body (subject / body_text) for email and LinkedIn-step tasks. Use this instead of skipping and recreating a task. Only scheduled (open) tasks can be fully edited; for completed or skipped tasks only note, priority, and contact_id are applied.11 params

Edit an existing task in place — change its title, note, priority, due date, assignee, or the message body (subject / body_text) for email and LinkedIn-step tasks. Use this instead of skipping and recreating a task. Only scheduled (open) tasks can be fully edited; for completed or skipped tasks only note, priority, and contact_id are applied.

NameTypeRequiredDescription
idstringrequiredApollo ID of the task to update. Use an ID returned by Search Tasks or Get Task.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
contact_idstringoptionalReassociate the task to this contact. Must be the exact id value returned by a tool call in this session.
due_atstringoptionalNew ISO 8601 timestamp for when the task is due. Example: 2026-04-30T17:00:00Z
notestringoptionalNew free-form note/body for the task.
prioritystringoptionalNew priority — one of low, medium, high.
standalone_outreach_task_messageobjectoptionalMessage content for email / LinkedIn-step tasks. Set subject and/or body_text to update the message the task asks the user to send.
statusstringoptionalNew status — e.g. scheduled, completed.
titlestringoptionalNew short title shown in the task list.
user_idstringoptionalReassign the task to this Apollo user.
apollomcp_apollo_usage_stats_credit_usage_stats#Retrieve credit usage stats for the authenticated team — credits used, remaining, and reset windows for enrichment/people-search/email-reveal credits. Takes no input — scoped to the authenticated team automatically. For a single user's credit balance, use the Profile endpoint with include_credit_usage=true.2 params

Retrieve credit usage stats for the authenticated team — credits used, remaining, and reset windows for enrichment/people-search/email-reveal credits. Takes no input — scoped to the authenticated team automatically. For a single user's credit balance, use the Profile endpoint with include_credit_usage=true.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_users_api_profile#Use the Profile endpoint to get the user's profile information (name, email, title, id). Set include_credit_usage to true to include credit usage information in the response. Credit usage includes information like remaining credits and credits used. Use this endpoint when the user asks about their remaining credits or credit usage. Set include_waterfall_capability to true to learn whether the team has waterfall email and/or phone enrichment enabled; check this before offering or running waterfall enrichment elsewhere.4 params

Use the Profile endpoint to get the user's profile information (name, email, title, id). Set include_credit_usage to true to include credit usage information in the response. Credit usage includes information like remaining credits and credits used. Use this endpoint when the user asks about their remaining credits or credit usage. Set include_waterfall_capability to true to learn whether the team has waterfall email and/or phone enrichment enabled; check this before offering or running waterfall enrichment elsewhere.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
include_credit_usagebooleanoptionalSet to true to include credit usage information in the response. Default is false.
include_waterfall_capabilitybooleanoptionalSet to true to include whether the team has waterfall email/phone enrichment enabled in the response. Default is false.
apollomcp_apollo_webhook_result_show#Poll for the result of an asynchronous Apollo enrichment request: either a phone-number reveal started by apollo_people_match or apollo_people_bulk_match with reveal_phone_number=true, or a waterfall enrichment (email and/or phone) started with run_waterfall_email=true and/or run_waterfall_phone=true. Pass the top-level request_id returned by that call (not any nested id). Polling: a not-yet-ready result returns 404 with error_code "result_pending" and a retry_after_seconds value — wait that long and poll again. For a standard phone reveal (no waterfall), give up after ~5 attempts (~50s total). For waterfall enrichment, keep polling for up to ~3 minutes before giving up (waterfall can legitimately take much longer). Bulk requests take longer than single requests for either kind, so lean toward the longer end. Terminal responses — never retry these: 200 status=success (result ready; phone numbers are grouped by type — mobile_phone, direct_phone, corporate_phone, home_phone, other_phone; waterfall email results also carry an emails array per person with email, email_status_cd, position, and vendor_validation_statuses; results are available for 30 days); 200 status=failed (enrichment failed on Apollo's side, no credits charged); 404 error_code=request_id_unknown (the id was never issued or was mistyped — do not retry, do not tell the user to try again later); 410 error_code=request_id_expired (the result aged out past the 30-day retention window — start a fresh enrichment request instead); 400 error_code=invalid_request_id (malformed id). When status=success but every phone array (or the emails field) is empty, tell the user nothing was found on file; only say "no credits were charged" when the response's credits_consumed is 0. DO-NOT-CALL (MANDATORY): each returned phone number carries a dnc_status_cd (found / not_found / pending — only "found" means it is Do-Not-Call listed). When any number has dnc_status_cd="found", you MUST surface a prominent Do Not Call warning immediately next to that number (never a footnote), noting it may implicate the TCPA and other telemarketing regulations, and recommending against dialing it absent a separate legal basis. ANTI-FABRICATION: never fabricate, guess, or substitute a phone number or email address from training data, web knowledge, or any non-Apollo source — only report numbers and addresses present in this response.3 params

Poll for the result of an asynchronous Apollo enrichment request: either a phone-number reveal started by apollo_people_match or apollo_people_bulk_match with reveal_phone_number=true, or a waterfall enrichment (email and/or phone) started with run_waterfall_email=true and/or run_waterfall_phone=true. Pass the top-level request_id returned by that call (not any nested id). Polling: a not-yet-ready result returns 404 with error_code "result_pending" and a retry_after_seconds value — wait that long and poll again. For a standard phone reveal (no waterfall), give up after ~5 attempts (~50s total). For waterfall enrichment, keep polling for up to ~3 minutes before giving up (waterfall can legitimately take much longer). Bulk requests take longer than single requests for either kind, so lean toward the longer end. Terminal responses — never retry these: 200 status=success (result ready; phone numbers are grouped by type — mobile_phone, direct_phone, corporate_phone, home_phone, other_phone; waterfall email results also carry an emails array per person with email, email_status_cd, position, and vendor_validation_statuses; results are available for 30 days); 200 status=failed (enrichment failed on Apollo's side, no credits charged); 404 error_code=request_id_unknown (the id was never issued or was mistyped — do not retry, do not tell the user to try again later); 410 error_code=request_id_expired (the result aged out past the 30-day retention window — start a fresh enrichment request instead); 400 error_code=invalid_request_id (malformed id). When status=success but every phone array (or the emails field) is empty, tell the user nothing was found on file; only say "no credits were charged" when the response's credits_consumed is 0. DO-NOT-CALL (MANDATORY): each returned phone number carries a dnc_status_cd (found / not_found / pending — only "found" means it is Do-Not-Call listed). When any number has dnc_status_cd="found", you MUST surface a prominent Do Not Call warning immediately next to that number (never a footnote), noting it may implicate the TCPA and other telemarketing regulations, and recommending against dialing it absent a separate legal basis. ANTI-FABRICATION: never fabricate, guess, or substitute a phone number or email address from training data, web knowledge, or any non-Apollo source — only report numbers and addresses present in this response.

NameTypeRequiredDescription
request_idstringrequiredThe top-level request_id returned by a people match / bulk_match call made with reveal_phone_number=true, run_waterfall_email=true, and/or run_waterfall_phone=true. Must be the exact id value returned by apollo_people_match or apollo_people_bulk_match in this session. Never use an ID from memory, prior sessions, or assumptions. Example: -1783604882614419382
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_website_visitor_domain_tracker_index#Retrieve the website visitor domain tracker configuration for the team: the tracker id, team id, the list of active allowed referrer domains (with tracking status, contact-level tracking settings, and intent paths), the maximum domain limit for the team, and whether visitor credits are exhausted. The tracker is team-scoped — one tracker per team. If no tracker exists yet, this call creates an empty one automatically (find-or-create) and returns its id; this find-or-create is the only side effect, so once a tracker exists this becomes a pure read. Always call this first — before update or any domain changes — to obtain the tracker id and referrer _id values; never guess ids, only use values returned by this tool. Requires the team to have the can_access_website_visitors product feature and the calling user to have the can_manage_website_visitors permission.2 params

Retrieve the website visitor domain tracker configuration for the team: the tracker id, team id, the list of active allowed referrer domains (with tracking status, contact-level tracking settings, and intent paths), the maximum domain limit for the team, and whether visitor credits are exhausted. The tracker is team-scoped — one tracker per team. If no tracker exists yet, this call creates an empty one automatically (find-or-create) and returns its id; this find-or-create is the only side effect, so once a tracker exists this becomes a pure read. Always call this first — before update or any domain changes — to obtain the tracker id and referrer _id values; never guess ids, only use values returned by this tool. Requires the team to have the can_access_website_visitors product feature and the calling user to have the can_manage_website_visitors permission.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_website_visitor_domain_tracker_install_script#Return the ready-to-embed Apollo website visitor tracking snippet for the team, with the team's tracker id already substituted in as appId — never hand-assemble the template or guess the loader URL yourself. Also returns placement_rules describing what a correct install must satisfy (framework-agnostic requirements, not per-framework instructions). This tool reads the team's tracker directly and returns its id as app_id, so you do NOT need to call the index tool first; if the team has no tracker yet, it returns a not-found error (it does not create one). The snippet is team-scoped: one script works across ALL of the team's tracked domains. Adding a domain (via apollo_website_visitor_domain_tracker_update) is what enables visitor attribution for that domain — the script alone does not register a domain. A typical flow is: add the domain, get this script, embed it, and deploy. When answering the user, summarize in plain language; do not discuss internal configuration such as person-level visitor identification. Requires the team to have website visitors product access and the calling user to have permission to manage website visitors.2 params

Return the ready-to-embed Apollo website visitor tracking snippet for the team, with the team's tracker id already substituted in as appId — never hand-assemble the template or guess the loader URL yourself. Also returns placement_rules describing what a correct install must satisfy (framework-agnostic requirements, not per-framework instructions). This tool reads the team's tracker directly and returns its id as app_id, so you do NOT need to call the index tool first; if the team has no tracker yet, it returns a not-found error (it does not create one). The snippet is team-scoped: one script works across ALL of the team's tracked domains. Adding a domain (via apollo_website_visitor_domain_tracker_update) is what enables visitor attribution for that domain — the script alone does not register a domain. A typical flow is: add the domain, get this script, embed it, and deploy. When answering the user, summarize in plain language; do not discuss internal configuration such as person-level visitor identification. Requires the team to have website visitors product access and the calling user to have permission to manage website visitors.

NameTypeRequiredDescription
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_website_visitor_domain_tracker_send_install_email#Email the Apollo website visitor tracking JavaScript snippet to one or more recipients — typically a developer who will install it on the team's website. Returns success=true and sent_count when all emails are delivered; on partial failure, returns the successful sent_count alongside a failed_recipients list. Rate limited to 10 sends per hour per user — exceeding this returns a 429 error. Before calling: confirm the recipient email addresses and subject line with the user, and generate the script parameter by (1) calling apollo_website_visitor_domain_tracker_index, (2) taking its tracker id, and (3) substituting it into the standard tracking snippet template in place of <TRACKER_ID> — never invent a custom snippet or ask the user for script content; keep the loader URL, function names, and structure identical to the template (max 4000 characters). THIS SENDS A REAL EMAIL; never call it without explicit user confirmation of the recipients and subject.5 params

Email the Apollo website visitor tracking JavaScript snippet to one or more recipients — typically a developer who will install it on the team's website. Returns success=true and sent_count when all emails are delivered; on partial failure, returns the successful sent_count alongside a failed_recipients list. Rate limited to 10 sends per hour per user — exceeding this returns a 429 error. Before calling: confirm the recipient email addresses and subject line with the user, and generate the script parameter by (1) calling apollo_website_visitor_domain_tracker_index, (2) taking its tracker id, and (3) substituting it into the standard tracking snippet template in place of <TRACKER_ID> — never invent a custom snippet or ask the user for script content; keep the loader URL, function names, and structure identical to the template (max 4000 characters). THIS SENDS A REAL EMAIL; never call it without explicit user confirmation of the recipients and subject.

NameTypeRequiredDescription
recipientsarrayrequiredList of email addresses to send the install script to. Each entry must be a valid email address. Example: ["dev@example.com", "eng@example.com"]
scriptstringrequiredFull embed snippet for the email body. Generate it — do not copy from the user: (1) call apollo_website_visitor_domain_tracker_index, (2) take the id field, (3) paste it into the script template in place of <TRACKER_ID>. Keep the loader URL and code structure identical to the template. Max 4000 characters.
subjectstringrequiredSubject line for the install email. Example: 'Apollo Website Visitor Tracking Script'
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_website_visitor_domain_tracker_update#Add, edit, or delete a domain in the team's website visitor domain tracker. The action field inside domain_data controls which operation runs: 'add' registers a new domain for visitor tracking — domain and _id are required; generate a fresh UUID (e.g. via a UUID v4 generator) and pass it as _id, since the backend uses it as the referrer's identifier; if the team's domain limit is already reached the call returns an error with limit_exceeded=true, the current domain count, the maximum allowed, and whether the team has the Inbound add-on (which raises the limit). 'edit' updates an existing tracked domain's hostname, contact-level tracking flag, or intent paths — _id (the referrer's Apollo id) is required, and domain should always be included (use the current hostname from index even if you are not changing it). 'delete' soft-deletes a domain from the tracker — _id is required; the domain stops receiving visitor data but its history is preserved. Before calling: always call apollo_website_visitor_domain_tracker_index first to get the tracker id, domain_limit, and _id values for existing referrers — for 'add', generate a fresh UUID for _id and warn the user if they are at or near their domain_limit; for 'edit' and 'delete', use the exact _id from index, never guess or reuse ids from prior sessions. Requires the team to have the can_access_website_visitors product feature and the calling user to have the can_manage_website_visitors permission.3 params

Add, edit, or delete a domain in the team's website visitor domain tracker. The action field inside domain_data controls which operation runs: 'add' registers a new domain for visitor tracking — domain and _id are required; generate a fresh UUID (e.g. via a UUID v4 generator) and pass it as _id, since the backend uses it as the referrer's identifier; if the team's domain limit is already reached the call returns an error with limit_exceeded=true, the current domain count, the maximum allowed, and whether the team has the Inbound add-on (which raises the limit). 'edit' updates an existing tracked domain's hostname, contact-level tracking flag, or intent paths — _id (the referrer's Apollo id) is required, and domain should always be included (use the current hostname from index even if you are not changing it). 'delete' soft-deletes a domain from the tracker — _id is required; the domain stops receiving visitor data but its history is preserved. Before calling: always call apollo_website_visitor_domain_tracker_index first to get the tracker id, domain_limit, and _id values for existing referrers — for 'add', generate a fresh UUID for _id and warn the user if they are at or near their domain_limit; for 'edit' and 'delete', use the exact _id from index, never guess or reuse ids from prior sessions. Requires the team to have the can_access_website_visitors product feature and the calling user to have the can_manage_website_visitors permission.

NameTypeRequiredDescription
domain_dataobjectrequiredThe domain operation to perform. action controls which operation runs: 'add' requires domain and _id; 'edit' requires _id and should always include domain; 'delete' requires only _id.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
apollomcp_apollo_website_visitors_domain_aggregates#Return visit counts, unique-visitor counts, and top visited paths for a single visiting company on one of your team's tracked websites, over a date range. Two ids have different meanings: organization_id is the visiting company you want a report on (get it from apollo_organizations_enrich's organization.id — never fabricate it); domain is one of YOUR team's tracked websites (where Apollo's tracking pixel is installed), NOT the visiting company's domain — discover valid values via apollo_website_visitor_domain_tracker_index. Only returns data for companies that actually visited your tracked site; a company with no visits returns "stats not found". from/to are optional date filters in YYYYMMDD format (from defaults to ~30 days ago, to defaults to today).6 params

Return visit counts, unique-visitor counts, and top visited paths for a single visiting company on one of your team's tracked websites, over a date range. Two ids have different meanings: organization_id is the visiting company you want a report on (get it from apollo_organizations_enrich's organization.id — never fabricate it); domain is one of YOUR team's tracked websites (where Apollo's tracking pixel is installed), NOT the visiting company's domain — discover valid values via apollo_website_visitor_domain_tracker_index. Only returns data for companies that actually visited your tracked site; a company with no visits returns "stats not found". from/to are optional date filters in YYYYMMDD format (from defaults to ~30 days ago, to defaults to today).

NameTypeRequiredDescription
domainstringrequiredOne of YOUR team's tracked websites (where Apollo's tracking pixel is installed), e.g. mycompany.com. NOT the visiting company's domain. Discover valid values via apollo_website_visitor_domain_tracker_index.
organization_idstringrequiredApollo organization id of the visiting company. Get it from apollo_organizations_enrich (organization.id). Never fabricate it.
_conversation_refstringoptionalShort random token generated on your first call in a conversation; reuse the exact same value on every subsequent call to group related tool calls for analytics.
_rationalestringoptionalDescribe the user's intent and why this tool was selected in general terms only; do not include specific field values, names, emails, or other data.
fromstringoptionalStart date as an integer date, format YYYYMMDD, e.g. 20260601. Defaults to ~30 days ago if omitted.
tostringoptionalEnd date as an integer date, format YYYYMMDD, e.g. 20260701. Defaults to today if omitted.