Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| APOLLO_API_KEY | Yes | Your Apollo.io API key for authentication |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| people_search | Search for people/contacts in Apollo's database.
This is Apollo's core prospecting tool - use it to find leads matching specific criteria.
Args:
q_keywords: Keywords to search for (e.g., "sales director")
person_titles: Job titles to filter by (e.g., ["CEO", "CTO", "VP Sales"])
person_seniorities: Seniority levels (e.g., ["c_suite", "vp", "director", "manager"])
organization_domains: Company domains to search (e.g., ["google.com", "meta.com"])
organization_locations: Company HQ locations (e.g., ["California, US", "New York, US"])
organization_num_employees_ranges: Employee count ranges (e.g., ["1,10", "11,50", "51,200"])
person_locations: Where person is located (e.g., ["San Francisco, CA"])
contact_email_status: Email verification status (e.g., ["verified", "likely_to_engage"])
page: Page number (default 1)
per_page: Results per page (default 25, max 100)
Returns:
List of matching people with contact information
Example:
Search for VPs of Sales at tech companies in California:
people_search(
person_titles=["VP Sales", "Vice President of Sales"],
organization_locations=["California, US"],
organization_num_employees_ranges=["51,200", "201,500"]
)
|
| people_enrich | Enrich a person's profile with additional data from Apollo.
Provide at least one identifier (email, LinkedIn URL, or name + company).
Apollo will return comprehensive profile data including contact info,
work history, and social profiles.
Args:
email: Person's email address (best identifier)
first_name: Person's first name
last_name: Person's last name
organization_name: Current company name
domain: Company domain (e.g., "google.com")
linkedin_url: LinkedIn profile URL
Returns:
Enriched person profile with all available data
Example:
Enrich by email:
people_enrich(email="john.smith@company.com")
Enrich by name + company:
people_enrich(first_name="John", last_name="Smith", organization_name="Acme Corp")
|
| contacts_search | Search contacts in your Apollo CRM/database.
Unlike people_search which searches Apollo's global database, this searches
contacts you've already added to your Apollo account.
Args:
q_keywords: Search keywords
contact_stage_ids: Filter by contact stage IDs
owner_id: Filter by owner user ID
emailer_campaign_ids: Filter by sequence IDs
page: Page number
per_page: Results per page
Returns:
List of contacts from your Apollo database
|
| organization_search | Search for organizations/companies in Apollo's database.
Args:
q_keywords: Keywords to search (company name, description)
organization_domains: Specific domains to find
organization_locations: HQ locations (e.g., ["California, US"])
organization_num_employees_ranges: Size ranges (e.g., ["1,10", "51,200"])
organization_industry_tag_ids: Industry filter IDs
revenue_range: Revenue filter (e.g., {"min": 1000000, "max": 10000000})
page: Page number
per_page: Results per page (max 100)
Returns:
List of matching organizations with company details
Example:
Find SaaS companies in California with 50-200 employees:
organization_search(
q_keywords="SaaS software",
organization_locations=["California, US"],
organization_num_employees_ranges=["51,200"]
)
|
| organization_enrich | Enrich an organization's profile by domain.
Get comprehensive company data including firmographics, technographics,
funding info, and more.
Args:
domain: Company domain (e.g., "stripe.com")
Returns:
Enriched organization profile
Example:
organization_enrich(domain="openai.com")
|
| organization_job_postings | Get current job postings for an organization.
Useful for identifying growth signals and finding the right contacts.
Args:
organization_id: Apollo organization ID
Returns:
List of current job postings
|
| sequences_list | List all email sequences in your Apollo account.
Args:
page: Page number
per_page: Results per page
sort_by: Sort field (lastUsedAt, name, created_at)
Returns:
List of sequences with stats
|
| sequence_get | Get detailed information about a specific sequence.
Args:
sequence_id: The sequence ID
Returns:
Sequence details including steps and stats
|
| sequence_create | Create a new email sequence with steps.
This is a powerful tool for creating automated outreach campaigns.
Args:
name: Sequence name
steps: List of step configurations. Each step should have:
- type: "auto_email", "manual_email", "phone_call", "action_item",
"linkedin_connection", "linkedin_message", "linkedin_view", "linkedin_interact"
- wait_time: Time to wait before this step (integer)
- wait_mode: "minute", "hour", or "day"
- For email steps, include emailer_touches with:
- type: "new_thread" or "reply"
- subject: Email subject (supports {{variables}})
- body_html: Email body HTML (supports {{variables}})
schedule_id: Optional sending schedule ID
active: Whether to activate immediately
Returns:
Created sequence details
Example:
sequence_create(
name="New Outreach Campaign",
steps=[
{
"type": "auto_email",
"wait_time": 0,
"wait_mode": "minute",
"emailer_touches": [{
"type": "new_thread",
"subject": "Quick question about {{company}}",
"body_html": "<p>Hi {{first_name}},</p><p>I noticed {{company}} is growing...</p>"
}]
},
{
"type": "auto_email",
"wait_time": 3,
"wait_mode": "day",
"emailer_touches": [{
"type": "reply",
"subject": "Re: Quick question about {{company}}",
"body_html": "<p>Following up on my last email...</p>"
}]
}
]
)
Available variables: {{first_name}}, {{last_name}}, {{company}}, {{title}},
{{email}}, {{phone}}, {{city}}, {{state}}, {{country}}
|
| sequence_add_contacts | Add contacts to an email sequence.
Args:
sequence_id: The sequence ID to add contacts to
contact_ids: List of contact IDs to add
email_account_id: Optional email account to send from
Returns:
Confirmation of contacts added
|
| sequence_activate | Activate or deactivate a sequence.
Args:
sequence_id: The sequence ID
active: True to activate, False to deactivate
Returns:
Updated sequence status
|
| lists_get | Get all saved lists in Apollo.
Args:
page: Page number
per_page: Results per page
Returns:
List of saved lists
|
| list_create | Create a new list.
Args:
name: List name
modality: List type - "contacts" (default), "people", or "static"
Returns:
Created list details
|
| list_add_contacts | Add contacts to a list.
Args:
list_id: List ID
contact_ids: Contact IDs to add
Returns:
Confirmation
|
| workflows_list | List all workflows in your Apollo account.
Workflows automate actions based on triggers (events or schedules).
Args:
page: Page number
per_page: Results per page
active_only: Only show active workflows
Returns:
List of workflows with their status and configuration
|
| workflow_get | Get detailed information about a specific workflow.
Args:
workflow_id: The workflow ID
Returns:
Workflow details including triggers, actions, and enrollment criteria
|
| workflow_create | Create a new workflow automation.
Workflows trigger actions based on events or schedules.
Args:
name: Workflow name
trigger_type: "event" or "schedule" (default: "event")
model_type: "Contact", "Account", or "Opportunity" (default: "Contact")
trigger_events: List of trigger events (for event-based workflows):
- "contact_saved_or_created" - When a contact is saved/created
- "contact_updated" - When contact fields change
- "contact_added_to_list" - When added to a list
- "contact_added_to_sequence" - When added to a sequence
- "contact_finished_sequence" - When sequence completes
- "contact_changed_jobs" - When job change detected
- "call_logged" - When a call is logged
actions: List of actions to perform. Each action has:
- type: "add_to_sequence", "add_to_list", "update_field",
"create_task", "send_webhook", "remove_from_sequence"
- config: Action-specific configuration
enrollment_filters: Filters to determine which contacts qualify
active: Whether to activate immediately
first_run_on: Date for first run (ISO format, e.g., "2026-01-08").
Required for schedule-based workflows.
Returns:
Created workflow details
Example:
workflow_create(
name="New Lead Nurture",
trigger_type="event",
trigger_events=["contact_saved_or_created"],
actions=[
{"type": "add_to_sequence", "config": {"sequence_id": "abc123"}}
]
)
|
| workflow_update | Update an existing workflow.
Args:
workflow_id: The workflow ID to update
name: New workflow name
trigger_events: Updated trigger events
actions: Updated actions
enrollment_filters: Updated enrollment filters
active: Set active/inactive status
Returns:
Updated workflow details
|
| workflow_activate | Activate or deactivate a workflow.
Note: Activation may require the workflow to have actions configured.
If activation fails, configure actions via Apollo UI first.
Args:
workflow_id: The workflow ID
active: True to activate, False to deactivate
Returns:
Updated workflow status
|
| workflow_delete | Delete a workflow.
Args:
workflow_id: The workflow ID to delete
Returns:
Confirmation of deletion
|
| workflow_templates_list | List available workflow templates.
Templates provide pre-built workflows for common automation scenarios.
Args:
page: Page number
per_page: Results per page
Returns:
List of workflow templates
|
| workflow_create_from_template | Create a new workflow from a template.
Args:
template_id: The template ID to use
name: Optional custom name for the workflow
Returns:
Created workflow details
|
| email_preview | Preview an email with variable substitution.
Test how your email will look with real contact data.
Args:
subject: Email subject (can include {{variables}})
body_html: Email body HTML (can include {{variables}})
contact_id: Optional contact ID to preview with real data
Returns:
Rendered email preview
|
| email_send | Send a one-off email to a contact.
Args:
to_email: Recipient email address
subject: Email subject
body_html: Email body HTML
contact_id: Optional contact ID to link email to
Returns:
Confirmation of email sent
|
| tasks_list | List tasks in your Apollo account.
Args:
page: Page number
per_page: Results per page
status: Filter by status (pending, completed)
Returns:
List of tasks
|
| task_create | Create a new task.
Args:
contact_id: Contact ID to associate task with
task_type: Type of task (action_item, call, email, linkedin)
note: Task notes/description
due_at: Due date (ISO format)
priority: Priority level (low, medium, high)
Returns:
Created task details
|
| deals_list | List deals/opportunities in your Apollo pipeline.
Args:
page: Page number
per_page: Results per page
stage_id: Filter by pipeline stage ID
Returns:
List of deals
|
| deal_create | Create a new deal/opportunity.
Args:
name: Deal name
account_id: Account/company ID
amount: Deal value
stage_id: Pipeline stage ID
owner_id: Owner user ID
Returns:
Created deal details
|
| analytics_sequences | Get analytics for email sequences.
Args:
sequence_ids: Optional list of sequence IDs to get stats for
Returns:
Sequence performance analytics
|
| analytics_email_accounts | Get email account health and deliverability stats.
Returns:
Email account analytics including deliverability scores
|
| get_available_fields | Get all available fields/variables for email personalization.
Returns:
List of available variables that can be used in emails
|
| get_email_schedules | Get available email sending schedules.
Returns:
List of sending schedules with their configurations
|
| get_contact_stages | Get available contact stages for pipeline management.
Returns:
List of contact stages
|
| get_account_stages | Get available account/company stages.
Returns:
List of account stages
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |