# Apollo

Apollo provides CRM and lead generation capabilities, helping businesses discover contacts, manage outreach, and track sales pipelines for consistent customer relationship development

- **Category:** crm
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 48
- **Triggers:** 0
- **Slug:** `APOLLO`
- **Version:** 20260316_00

## Tools

### Add Contacts to Sequence

**Slug:** `APOLLO_ADD_CONTACTS_TO_SEQUENCE`

Adds contacts to a specified Apollo email sequence and returns the contact details. `sequence_id`, `emailer_campaign_id`, and `send_email_from_email_account_id` must be retrieved from Apollo listing/search endpoints before calling this tool — these IDs cannot be inferred from names.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | Optional unique ID of the user performing the action (in request body if specified). |
| `contact_ids` | array | Yes | List of unique Apollo contact IDs to add to the sequence (in request body). |
| `sequence_id` | string | Yes | Unique ID of the Apollo sequence to add contacts to (path parameter). |
| `sequence_no_email` | boolean | No | If true, add contacts without an email address (query parameter). |
| `emailer_campaign_id` | string | Yes | Unique ID of the Apollo emailer campaign (should match `sequence_id`; in request body). |
| `sequence_job_change` | boolean | No | If true, add contacts who recently changed jobs (query parameter). |
| `sequence_unverified_email` | boolean | No | If true, add contacts with unverified emails (query parameter). |
| `send_email_from_email_account_id` | string | Yes | Unique ID of the Apollo email account for sending emails (in request body). |
| `sequence_active_in_other_campaigns` | boolean | No | If true, add contacts active in other sequences (query parameter). |
| `sequence_finished_in_other_campaigns` | boolean | No | If true, add contacts finished in other sequences (query parameter). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk organization enrichment

**Slug:** `APOLLO_BULK_ORGANIZATION_ENRICHMENT`

Enriches data for up to 10 organizations simultaneously by providing a list of their base company domains (e.g., 'apollo.io', not 'www.apollo.io'). Each call consumes Apollo credits per domain enriched; monitor quota to avoid exhaustion errors.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `domains` | array | Yes | List of 1-10 company domains to enrich. Domains should be base domains (e.g., 'apollo.io') and not include 'www.', '@', or protocols like 'http://'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk people enrichment

**Slug:** `APOLLO_BULK_PEOPLE_ENRICHMENT`

Use to enrich multiple person profiles simultaneously with comprehensive data from Apollo's database. Each call consumes Apollo credits; avoid re-enriching the same contacts. Responses may include null or missing fields (e.g., email, phone, organization); treat unmatched records as valid 'no match' outcomes, not errors. Heavy use may trigger HTTP 429; respect Retry-After headers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `details` | array | Yes | List of 1-10 person objects to enrich. At least one person is required. For effective matching, include key identifiers like email, LinkedIn URL, or name plus company information. Exceeding 10 objects causes 400/422 errors; chunk larger lists into batches of ≤10. |
| `webhook_url` | string | No | Webhook URL for phone number delivery if `reveal_phone_number` is true; mandatory in that case. URL must be publicly reachable; inaccessible URLs silently prevent phone data delivery. |
| `reveal_phone_number` | boolean | No | If true, enriches with all available phone numbers; may consume credits and requires 'webhook_url'. |
| `reveal_personal_emails` | boolean | No | If true, enriches with personal emails; may consume additional credits. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk update account stage

**Slug:** `APOLLO_BULK_UPDATE_ACCOUNT_STAGE`

Bulk updates the stage for specified existing Apollo.io accounts, moving them to a valid new account stage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_ids` | array | Yes | A list of unique identifiers for accounts whose stage needs to be updated. |
| `account_stage_id` | string | Yes | The unique identifier of the account stage to which the specified accounts will be moved. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create an Apollo account

**Slug:** `APOLLO_CREATE_ACCOUNT`

Creates a new account in Apollo.io; a new record is created even if a similar account exists, and provided `owner_id` or `account_stage_id` must be valid existing IDs. The response includes the new account's ID, which can be used directly in subsequent calls.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Human-readable name for the account. |
| `phone` | string | No | Primary phone number for the account (e.g., main corporate line, branch, or direct dial). |
| `domain` | string | No | Company's primary domain name (e.g., 'apollo.io', not 'www.apollo.io') to help Apollo enrich account data. |
| `owner_id` | string | No | Unique ID of the user within your Apollo team to be assigned as owner; retrieve via the 'Get a List of Users' endpoint. |
| `raw_address` | string | No | Physical address or general location of the account (e.g., full street address or 'City, State, Country'). |
| `account_stage_id` | string | No | Unique ID for the account's sales stage (e.g., 'Prospecting' or 'Closed Won'); retrieve via the 'List Account Stages' endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk create Apollo accounts

**Slug:** `APOLLO_CREATE_BULK_ACCOUNTS`

Creates multiple accounts in Apollo.io with a single API call (maximum 100 accounts per request). Use when creating multiple company records at once.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `accounts` | array | Yes | Array of account objects to create (maximum 100 accounts per request). Each account should have at least a name or domain. |
| `run_dedupe` | boolean | No | Enable aggressive deduplication by domain, organization_id, and name. When false (default), only matches by CRM IDs. When true, also matches by domain, organization_id, and name. Existing accounts are returned without modification in both modes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk create Apollo contacts

**Slug:** `APOLLO_CREATE_BULK_CONTACTS`

Tool to bulk create multiple contacts in Apollo with a single API call. Use when you need to create multiple contacts efficiently. Supports up to 100 contacts per request with optional deduplication.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contacts` | array | Yes | Array of contact objects to create. Maximum 100 contacts per request. Each contact should have at least first_name, last_name, or email. |
| `run_dedupe` | boolean | No | Enable full deduplication across all sources. When false (default), creates duplicates for non-email_import sources and merges with email_import placeholders only. When true, returns existing contacts without modifying them (except email_import placeholders which are still merged). Matches by email, CRM IDs, or name + organization. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create call record in Apollo

**Slug:** `APOLLO_CREATE_CALL_RECORD`

Tool to log call records in Apollo from external systems. Use when recording calls made through outside systems like Orum or Nooks; requires a master API key and cannot dial prospects directly.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `note` | string | No | Add a note to the call record. |
| `logged` | boolean | No | Set to true if you want to create an individual record for the phone call in Apollo. |
| `status` | string ("queued" | "ringing" | "in-progress" | "completed" | "no_answer" | "failed" | "busy") | No | Possible status values for a phone call. |
| `user_id` | array | No | Designate the caller in your team's Apollo account. Use the Get a List of Users endpoint to retrieve IDs for all of the users within your Apollo account. |
| `duration` | integer | No | The duration of the call in seconds. Do not enter minutes. |
| `end_time` | string | No | The time when the call ended. Should adhere to the ISO 8601 date-time format. Apollo uses GMT by default. You can adjust the time manually by specifying in hours and minutes how much you want to offset GMT. |
| `to_number` | string | No | The phone number that you dialed. |
| `account_id` | string | No | Associate the call with an account. Use the Search for Accounts endpoint to retrieve IDs for all of the accounts within your Apollo account. |
| `contact_id` | string | No | Designate the contact that was called. Use the Search for Contacts endpoint to retrieve IDs for all of the contacts within your Apollo account. |
| `start_time` | string | No | The time when the call started. Should adhere to the ISO 8601 date-time format. Apollo uses GMT by default. You can adjust the time manually by specifying in hours and minutes how much you want to offset GMT. |
| `from_number` | string | No | The phone number that dialed you. |
| `phone_call_outcome_id` | string | No | Assign a call outcome to the record. Call outcomes are unique to your team's Apollo account. When you use the Disposition search filter for calls in the Apollo product, you can find the corresponding call outcome ID in the URL. |
| `phone_call_purpose_id` | string | No | Assign a call purpose to the record. Call purposes are unique to your team's Apollo account. When you use the Purpose search filter for calls in the Apollo product, you can find the corresponding call purpose ID in the URL. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Apollo contact

**Slug:** `APOLLO_CREATE_CONTACT`

Creates a new contact in Apollo.io; use `account_id` to link to an organization and `contact_stage_id` for sales stage. Apollo does not auto-deduplicate — duplicate records sharing the same email are silently created; always search via APOLLO_SEARCH_CONTACTS before calling this tool. Requires explicit user confirmation before execution.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | No | The primary email address for the contact. |
| `title` | string | No | The contact's current job title. |
| `last_name` | string | Yes | Last name of the contact. |
| `account_id` | string | No | Apollo ID of the organization to assign this contact; obtain via 'Organization Search' (usually the `id` field). |
| `first_name` | string | Yes | First name of the contact. |
| `home_phone` | string | No | Home phone number. Apollo attempts to parse/sanitize format. |
| `label_names` | array | No | Descriptive labels to categorize the contact; new labels create new lists in Apollo. Validate values against existing Apollo labels via APOLLO_GET_LABELS before use; unrecognized or mismatched values can cause request failures. |
| `other_phone` | string | No | Alternative or unspecified-type phone number. Apollo attempts to parse/sanitize format. |
| `website_url` | string | No | Full corporate website URL for the contact's employer (e.g., 'https://www.apollo.io/'); must be an official company site, not social media. |
| `direct_phone` | string | No | Primary direct dial phone number. Apollo attempts to parse/sanitize format. |
| `mobile_phone` | string | No | Mobile phone number. Apollo attempts to parse/sanitize format. |
| `corporate_phone` | string | No | Work or office direct line. Apollo attempts to parse/sanitize format. |
| `contact_stage_id` | string | No | Apollo ID for the contact's sales/engagement stage (e.g., representing 'Approaching'); obtain via an action listing contact stages. |
| `organization_name` | string | No | Name of the contact's current organization. Use 'Organization Search' for the exact Apollo-recognized name for best results. |
| `present_raw_address` | string | No | Contact's current location as a single string (e.g., 'Atlanta, United States', 'Tokyo, Japan'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create custom field

**Slug:** `APOLLO_CREATE_CUSTOM_FIELD`

Creates a new custom field in Apollo.io for contacts, accounts, or opportunities. Use when you need to define additional data fields beyond Apollo's standard attributes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `meta` | object | No | Optional metadata for the custom field. |
| `type` | string ("string" | "textarea" | "number" | "date" | "datetime" | "boolean") | Yes | Type of the custom field that determines what kind of data it can store. |
| `label` | string | Yes | Name/label for the custom field you want to create in Apollo. |
| `modality` | string ("contact" | "account" | "opportunity") | No | Enum for custom field modality (which object type the field applies to). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Apollo deal

**Slug:** `APOLLO_CREATE_DEAL`

Creates a new sales opportunity (deal) in Apollo.io; all provided IDs (`owner_id`, `account_id`, `opportunity_stage_id`) must be valid existing Apollo identifiers. This action has persistent side effects — obtain explicit user confirmation before invoking.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Human-readable name for the new deal. |
| `amount` | string | No | Monetary value (string of numbers only, e.g., '50000', no symbols/commas). Currency is based on Apollo account settings. |
| `owner_id` | string | No | Unique identifier of the Apollo user owning this deal. Retrieve via 'Get a List of Users' endpoint. |
| `account_id` | string | No | Unique identifier of the Apollo account (company) for this deal. Find via 'Organization Search' endpoint. |
| `closed_date` | string | No | Anticipated deal closing date (YYYY-MM-DD). |
| `opportunity_stage_id` | string | No | Unique identifier for the deal's sales pipeline stage (e.g., 'Prospecting'). Retrieve via 'List Deal Stages' endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Apollo Task

**Slug:** `APOLLO_CREATE_TASK`

Tool to create a single task in Apollo.io. Use when you need to add a new task to your team's Apollo account for a specific contact. The task will be assigned to a user and includes details like type, status, priority, due date, and optional notes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `note` | string | No | Add a description for the task. This should be a human-readable message. This parameter is not required, but it is recommended as it provides the task owner with more context on the action they need to take. |
| `type` | string ("call" | "outreach_manual_email" | "linkedin_step_connect" | "linkedin_step_message" | "linkedin_step_view_profile" | "linkedin_step_interact_post" | "action_item") | Yes | Set the task to be one of the following task types. This enables the task owner to know the type of action they need to take: 'call' (Call the contact), 'outreach_manual_email' (Email the contact), 'linkedin_step_connect' (Send a LinkedIn invitation), 'linkedin_step_message' (Send a LinkedIn message), 'linkedin_step_view_profile' (View LinkedIn profile), 'linkedin_step_interact_post' (Interact with LinkedIn posts), 'action_item' (Generic action - recommended to use with note parameter). |
| `title` | string | No | A title for the task. If omitted, Apollo will display an auto-generated title based on the task type and contact name. |
| `due_at` | string | Yes | The full date and time when the task will be due. Your entry should adhere to the ISO 8601 date-time format. Apollo uses Greenwich Mean Time (GMT) by default. If you do not account for time zone differences, you could add a task due date that falls on a different day than you intended. The value you enter can either adhere to GMT, or you can adjust the time manually by specifying in hours and minutes how much you want to offset GMT. |
| `status` | string ("scheduled" | "completed" | "skipped") | Yes | The status of the task being created. For future-facing tasks, use 'scheduled'. For tasks that are already completed, use 'completed' or 'skipped'. |
| `user_id` | string | Yes | The ID for the task owner within your team's Apollo account. This is the user that will take action on the contact. Use the 'Get a List of Users' endpoint to retrieve IDs for all users within your Apollo account. |
| `priority` | string ("high" | "medium" | "low") | No | Valid priority levels for tasks |
| `contact_id` | string | Yes | The Apollo ID for the contact that you want to be on the receiving end of the action. To find contact IDs, call the 'Search for Contacts' endpoint and identify the 'id' value for the contact. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Account by ID

**Slug:** `APOLLO_GET_ACCOUNT`

Tool to retrieve detailed information about a specific account by its Apollo ID. Use when you need to fetch complete account data including company details, contact information, and CRM integration fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The Apollo ID for the account that you want to retrieve. To find account IDs, call the Search for Accounts endpoint and identify the id value for the account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check Apollo API key status

**Slug:** `APOLLO_GET_AUTH_STATUS`

Tool to check whether the provided Apollo API key is valid and accepted by Apollo (health/auth check). Use when any Apollo endpoint returns 401/403/422 to quickly diagnose invalid/expired keys versus permission scope issues. If this succeeds but other endpoints return 403, it strongly suggests permissioning or master-key scope issues rather than a totally invalid credential.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Apollo Contact

**Slug:** `APOLLO_GET_CONTACT`

Retrieves detailed information about a specific contact by its ID. Use this to view contact details including name, email, phone numbers, organization, and custom fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | The Apollo ID for the contact that you want to view. To find contact IDs, call the Search for Contacts action and identify the 'id' value for the contact. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Apollo deal

**Slug:** `APOLLO_GET_DEAL`

Retrieves information about a specific deal by its ID. Use this when you need to view details of a single deal.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `opportunity_id` | string | Yes | The ID for the deal you want to view. Each deal in the Apollo database is assigned a unique ID. To find deal IDs, call the List All Deals endpoint and identify the value for 'id' for the desired deal. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Labels

**Slug:** `APOLLO_GET_LABELS`

Retrieves all labels from Apollo.io, used for organizing contacts and accounts. Call this before APOLLO_CREATE_CONTACT or APOLLO_UPDATE_ACCOUNT to validate label values against the returned list; mismatched labels cause 400/422 errors.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get opportunity stages

**Slug:** `APOLLO_GET_OPPORTUNITY_STAGES`

Retrieves all configured opportunity (deal) stages from the Apollo.io account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Organization by ID

**Slug:** `APOLLO_GET_ORGANIZATION`

Retrieves complete information about a specific organization by its Apollo ID. Use when you need detailed company data including funding, technologies, employee counts, and more.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The Apollo ID for the organization that you want to research. To find organization IDs, call the Organization Search endpoint and identify the organization_id value for the organization. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Organization Job Postings

**Slug:** `APOLLO_GET_ORGANIZATION_JOB_POSTINGS`

Retrieves paginated job postings for a specified organization by its ID, optionally filtering by domain; ensure `organization_id` is a valid identifier.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `per_page` | integer | No | Number of job postings per page (max 100) for pagination. |
| `organization_id` | string | Yes | The unique identifier for the organization whose job postings are being requested. |
| `q_organization_domains` | string | No | Filter job postings by the organization's domain (e.g., 'apollo.io'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get typed custom fields

**Slug:** `APOLLO_GET_TYPED_CUSTOM_FIELDS`

Retrieves all typed custom field definitions available in the Apollo.io instance, detailing their types and configurations. Call before constructing payloads for APOLLO_UPDATE_CONTACT or APOLLO_UPDATE_ACCOUNT — mismatched types or invalid enum options cause 400 errors.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Apollo account stages

**Slug:** `APOLLO_LIST_ACCOUNT_STAGES`

Retrieves the IDs for all available account stages in your team's Apollo account.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List apollo contact stages

**Slug:** `APOLLO_LIST_CONTACT_STAGES`

Retrieves all available contact stages from an Apollo account, including their unique IDs and names.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Apollo deals

**Slug:** `APOLLO_LIST_DEALS`

Retrieves a list of deals from Apollo, using Apollo's default sort order if 'sort_by_field' is omitted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for paginated results. |
| `per_page` | integer | No | Number of deals to retrieve per page. |
| `sort_by_field` | string | No | Field to sort deals by. If not provided, a default sort order is applied by the Apollo API. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List email accounts

**Slug:** `APOLLO_LIST_EMAIL_ACCOUNTS`

Retrieves all email accounts and their details for the authenticated user; takes no parameters.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Fields

**Slug:** `APOLLO_LIST_FIELDS`

Retrieves all field definitions from Apollo.io, including system fields and custom fields. Use the optional 'source' parameter to filter by field type (system, custom, or crm_synced).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string ("system" | "custom" | "crm_synced") | No | Source type of the field. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Apollo Users

**Slug:** `APOLLO_LIST_USERS`

Retrieves a list of all users (teammates) associated with the Apollo account, supporting pagination via `page` and `per_page` parameters. Use this to obtain numeric user IDs required by operations like APOLLO_UPDATE_CONTACT_OWNERSHIP — names or email addresses are not accepted in place of these IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (e.g., 1, 2, 3...). Defaults to the first page if omitted. |
| `per_page` | integer | No | Number of users to retrieve per page (e.g., 10, 25, 50...). Defaults to a predefined page size if omitted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Enrich organization data

**Slug:** `APOLLO_ORGANIZATION_ENRICHMENT`

Fetches comprehensive organization enrichment data from Apollo.io for a given company domain; results are most meaningful if the company exists in Apollo's database. Each call consumes Apollo credits and may be unavailable on free plans. Returns HTTP 429 under burst usage; use exponential backoff on retries.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `domain` | string | Yes | The domain of the company to enrich, (e.g., 'apollo.io', 'microsoft.com'). Do not include 'www.' or '@' symbols. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search organizations in Apollo

**Slug:** `APOLLO_ORGANIZATION_SEARCH`

Searches Apollo's database for organizations using various filters; consumes credits on every call (unavailable on free plans) — avoid re-running identical queries and surface quota errors rather than retrying. Retrieves a maximum of 50,000 records; uses `page` (1-500) and `per_page` (1-100) for pagination — check `total_pages` in the response to iterate. Overly strict filter combinations can return zero results; start broad and narrow iteratively. Empty results and `org_not_found` are valid outcomes, not errors.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for paginated results, used with `per_page`. Use `total_pages` from the response to iterate; a single call returns at most 100 records. |
| `per_page` | integer | No | Number of organization records per page, used with `page`. |
| `organization_ids` | array | No | Apollo's unique organization IDs to fetch specific companies. |
| `q_organization_name` | string | No | Organization name; supports partial matching (e.g., 'Apollo' matches 'Apollo Inc.'). |
| `organization_locations` | array | No | Company HQs (city, state, country) to include; filters on primary HQ only. |
| `organization_not_locations` | array | No | Company HQs (city, state, country) to exclude; useful for territory management. |
| `q_organization_domains_list` | array | No | Company domains to filter by (e.g., 'apollo.io', 'google.com'); exclude 'www.' or '@' prefixes. Normalize domain casing to improve match quality. |
| `q_organization_keyword_tags` | array | No | Keywords for company industries/specializations (e.g., 'software', 'healthcare'). |
| `organization_num_employees_ranges` | array | No | Employee count ranges. Each string must be in 'min,max' format (e.g., '1,10'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Enrich person with Apollo

**Slug:** `APOLLO_PEOPLE_ENRICHMENT`

Enriches and retrieves information for a person from Apollo.io. Requires one of: `id`, `email`, `hashed_email`, `linkedin_url`, or (`first_name` and `last_name` with `organization_name` or `domain`) for matching. `webhook_url` must be provided if `reveal_phone_number` is true. Name-only inputs without `organization_name` or `domain` frequently return no matches.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | The 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. |
| `name` | string | No | Full name of the person; used for matching instead of or with `first_name` and `last_name`. |
| `email` | string | No | The email address of the person. |
| `domain` | string | No | Domain name of the person's organization (e.g., 'apollo.io'). Must be a bare hostname without protocol (http/https) or markup. Exclude 'www.' prefix. |
| `last_name` | string | No | The last name of the person. |
| `first_name` | string | No | The first name of the person. |
| `webhook_url` | string | No | Publicly accessible URL for Apollo to POST phone number data if `reveal_phone_number` is true. Phone data is delivered asynchronously via POST to this URL and is NOT returned inline in the API response. |
| `hashed_email` | string | No | MD5 or SHA-256 hashed email; used for matching if plain email is unavailable. |
| `linkedin_url` | string | No | Full URL of the person's LinkedIn profile. |
| `organization_name` | string | No | Name of the person's organization; used with name fields for matching. |
| `reveal_phone_number` | boolean | No | If true, attempts to enrich with phone numbers; may incur additional API credits and requires `webhook_url`. |
| `reveal_personal_emails` | boolean | No | If true, attempts to enrich with personal emails; may incur additional API credits. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Apollo people search

**Slug:** `APOLLO_PEOPLE_SEARCH`

Searches Apollo's contact database for people using various filters; results capped at 50,000 records and does not enrich contact data. Combining multiple strict filters (organization_ids, person_titles, person_seniorities) can return zero results — start broad and narrow iteratively. Result records may have null email, phone, or organization fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number (1-based) for pagination. Max 500 if `per_page` is 100. Iterate until `pagination.total_pages` is reached to avoid missing contacts. |
| `per_page` | integer | No | Records per page. Max 100. |
| `q_keywords` | string | No | Search keywords for profile fields (names, skills, job descriptions, technologies). Use organizational filters (q_organization_domains, person_titles) as primary search criteria, then optionally add a first name here for refinement. Avoid full names (last names are often obfuscated in results). Do not combine names with skill keywords as this creates an AND search that may return no results. |
| `person_titles` | array | No | Job titles (e.g., 'software engineer'); matches if any title found, may include similar. Can be a list of titles or a comma-separated string. Each list entry must be a plain string — do not embed boolean operators (e.g., 'title1 OR title2') in a single string, as this returns zero results. |
| `organization_ids` | array | No | Apollo-specific company IDs to find people within these organizations; obtain from Organization Search. Can be a list or comma-separated string. |
| `person_locations` | array | No | Current geographic locations of people (e.g., 'London', 'California', 'Germany'). Can be a list or comma-separated string. |
| `person_seniorities` | array | No | Job seniority levels for current positions (e.g., 'Director', 'VP', 'Senior'). Can be a list or comma-separated string. |
| `contact_email_status` | array | No | Email statuses to filter contacts. Allowed: 'verified', 'unverified', 'likely to engage', 'unavailable'. Can be a list or comma-separated string. |
| `organization_locations` | array | No | Company HQs (e.g., 'Texas', 'Tokyo', 'Spain'); uses primary HQ location. Can be a list or comma-separated string. |
| `q_organization_domains` | array | No | Company domains (e.g., 'apollo.io', 'microsoft.com'); exclude 'www.' or '@' prefixes. Can be a list or comma-separated string. |
| `organization_num_employees_ranges` | array | No | Org employee count ranges for organizations (e.g., '1,10', '10000,20000'); format as 'min,max' string. Can be a list or semicolon-separated string (e.g., '1,10;250,500'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Apollo Accounts

**Slug:** `APOLLO_SEARCH_ACCOUNTS`

Searches for accounts within your existing Apollo.io database using various criteria; requires a paid plan and is limited to 50,000 records.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | The page number for pagination, starting from 1. This is used with the 'per_page' parameter to navigate through results. |
| `per_page` | integer | No | The number of results to return per page. This is used for pagination in conjunction with the 'page' parameter. Maximum value is 100. |
| `sort_by_field` | string | No | The field by which to sort the accounts. Valid options are: 'account_last_activity_date', 'account_created_at', 'account_updated_at'. |
| `sort_ascending` | boolean | No | Determines the sort order. Set to true for ascending order. This parameter must be used in conjunction with 'sort_by_field'. |
| `account_stage_ids` | array | No | A list of Apollo IDs for account stages to filter the results by. These IDs can be retrieved using the 'List Account Stages' endpoint. |
| `q_organization_name` | string | No | Keywords to search for in account names. This field supports partial name matching. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search for Calls

**Slug:** `APOLLO_SEARCH_CALLS`

Searches for call records in Apollo.io using filters like date range, duration, direction (inbound/outgoing), users, contacts, purposes, outcomes, and keywords. Supports pagination for efficient data retrieval.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Use with per_page to make search results navigable and improve performance. |
| `inbound` | string | No | Filter calls by direction: 'incoming' (prospect called your team) or 'outgoing' (your team called the prospect). |
| `per_page` | integer | No | Number of search results per page. Limiting results per page improves performance. Use page parameter to navigate pages. |
| `user_ids` | array | No | Find calls that included specific users in your team's Apollo account. Use the Get a List of Users endpoint to retrieve user IDs. |
| `q_keywords` | string | No | Keywords to narrow the search of calls in your team's Apollo account. |
| `duration_max` | integer | No | Upper bound for call duration in seconds. Use with duration_min. This number should be larger than duration_min. |
| `duration_min` | integer | No | Lower bound for call duration in seconds. Use with duration_max. This number should be smaller than duration_max. |
| `date_range_max` | string | No | Upper bound of date range to search (format: YYYY-MM-DD). Use with date_range_min. This date should fall after date_range_min. |
| `date_range_min` | string | No | Lower bound of date range to search (format: YYYY-MM-DD). Use with date_range_max. This date should fall before date_range_max. |
| `contact_label_ids` | array | No | Find calls that included specific contacts. Contacts are people explicitly added to your database. |
| `phone_call_outcome_ids` | array | No | Filter calls based on their outcome. Call outcomes are unique to your team's Apollo account. Find the outcome ID in the URL when using the Disposition filter in Apollo product. |
| `phone_call_purpose_ids` | array | No | Filter calls based on their purpose. Call purposes are unique to your team's Apollo account. Find the purpose ID in the URL when using the Purpose filter in Apollo product. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Apollo contacts

**Slug:** `APOLLO_SEARCH_CONTACTS`

Searches Apollo contacts using keywords, stage IDs (from 'List Contact Stages' action), or sorting (max 50,000 records; `sort_ascending` requires `sort_by_field`). Search before creating contacts to avoid duplicates.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number of results (1-indexed, max 500); use with 'per_page' for pagination. Check `pagination.total_pages` in the response to determine when to stop iterating. |
| `per_page` | integer | No | Contact records to return per page (max 100); for pagination. |
| `q_keywords` | string | No | Keywords for matching contact names, titles, employers, or emails. |
| `sort_by_field` | string | No | Field to sort results. Valid options: 'contact_last_activity_date', 'contact_email_last_opened_at', 'contact_email_last_clicked_at', 'contact_created_at', 'contact_updated_at'. |
| `sort_ascending` | boolean | No | Sorts results in ascending order; requires 'sort_by_field'. |
| `contact_stage_ids` | array | No | Apollo contact stage IDs to filter contacts; obtain IDs using the 'List Contact Stages' action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search news articles

**Slug:** `APOLLO_SEARCH_NEWS_ARTICLES`

Tool to search for news articles about companies in Apollo's database. Use when you need to find recent news, announcements, or updates about specific organizations using their Apollo IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | The page number of the Apollo data that you want to retrieve. Use this parameter in combination with the per_page parameter to make search results for navigable and improve the performance of the endpoint. Example: 4 |
| `per_page` | integer | No | The number of search results that should be returned for each page. Limiting the number of results per page improves the endpoint's performance. Use the page parameter to search the different pages of data. Example: 10 |
| `categories` | array | No | Filter your search to include only certain categories or sub-categories of news. Use the News search filter for companies within Apollo to uncover all possible categories and sub-categories. Examples: hires, investment, contract |
| `organization_ids` | array | Yes | The Apollo IDs for the companies you want to include in your search results. Each company in the Apollo database is assigned a unique ID. To find IDs, call the Organization Search endpoint and identify the values for organization_id. Example: 5e66b6381e05b4008c8331b8 |
| `published_at_max` | string | No | Set the upper bound of the date range you want to search. Use this parameter in combination with the published_at_min parameter. This date should fall after the published_at_min date. The date should be formatted as YYYY-MM-DD. Example: 2025-05-15 |
| `published_at_min` | string | No | Set the lower bound of the date range you want to search. Use this parameter in combination with the published_at_max parameter. This date should fall before the published_at_max date. The date should be formatted as YYYY-MM-DD. Example: 2025-02-15 |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search outreach emails

**Slug:** `APOLLO_SEARCH_OUTREACH_EMAILS`

Tool to search for outreach emails sent through Apollo sequences. Use when you need to find emails created and sent by your team as part of Apollo email campaigns. This endpoint requires a master API key and has a display limit of 50,000 records (100 records per page, up to 500 pages).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-based). Maximum page number is 500. |
| `per_page` | integer | No | Number of email records per page. Maximum value is 100. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search sequences

**Slug:** `APOLLO_SEARCH_SEQUENCES`

Searches for sequences (e.g., automated email campaigns) in Apollo.io.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for paginated results. |
| `q_name` | string | No | Name or part of the name of the sequence to search for. If omitted, results are not filtered by name. |
| `per_page` | integer | No | Number of sequences per page. Maximum value is 100. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search tasks

**Slug:** `APOLLO_SEARCH_TASKS`

Searches for tasks in Apollo.io using filters like keywords, date ranges (due, created, updated), priorities, types, assigned users, associated contacts/accounts, supporting sorting and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (starts from 1). |
| `per_page` | integer | No | Number of tasks per page (1-100). |
| `q_keywords` | string | No | Keywords for searching task notes or subjects (matches partial words). |
| `task_types` | array | No | List of task types to filter by (e.g., 'call', 'email'). |
| `account_ids` | array | No | List of account IDs to filter tasks by association. |
| `contact_ids` | array | No | List of contact IDs to filter tasks by association. |
| `sort_by_field` | string | No | Field for sorting tasks. Note: This parameter may not be supported by the API and could result in 'Invalid sort criteria' error. |
| `task_user_ids` | array | No | List of user IDs to filter tasks by assignment. |
| `due_date_range` | object | No | Filter tasks by due date range. |
| `sort_ascending` | boolean | No | Sort order: `true` for ascending, `false` for descending. |
| `task_priorities` | array | No | List of lowercase task priorities to filter by. Valid values are 'high', 'medium', 'low'. |
| `task_created_at_range` | object | No | Filter tasks by creation date range. |
| `task_updated_at_range` | object | No | Filter tasks by last update date range. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update an Apollo account

**Slug:** `APOLLO_UPDATE_ACCOUNT`

Updates specified attributes of an existing account in Apollo.io.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The new name for the account. This should be a human-readable name representing the organization. |
| `phone` | string | No | The new primary phone number for the account. Apollo will attempt to sanitize and standardize the provided phone number format. |
| `domain` | string | No | The new primary domain for the account. Ensure the 'www.' prefix is excluded (e.g., 'apollo.io' instead of 'www.apollo.io'). |
| `owner_id` | string | No | The unique identifier (ID) of the Apollo user to be assigned as the new owner of this account. This ID can be retrieved using the 'Get a List of Users' endpoint. |
| `account_id` | string | Yes | The unique Apollo identifier (ID) for the account to be updated. This ID can be retrieved using the 'Search for Accounts' endpoint. |
| `raw_address` | string | No | The new corporate street address for the account. This can be a free-form string including details like street, city, state, and country. |
| `account_stage_id` | string | No | The unique Apollo identifier (ID) for the new account stage (e.g., 'Prospecting', 'Negotiation'). This ID can be retrieved using the 'List Account Stages' endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update account ownership

**Slug:** `APOLLO_UPDATE_ACCOUNT_OWNERS`

Updates the ownership of multiple Apollo accounts to a specified user. Use when bulk assigning account ownership to a team member.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `owner_id` | string | Yes | The Apollo user ID to assign as the new owner for all specified accounts. This user must be part of your team's Apollo account. Use the Get a List of Users endpoint to retrieve user IDs. |
| `account_ids` | array | Yes | List of Apollo account IDs to update. Each ID uniquely identifies an account in your team's Apollo instance. To find account IDs, use the Search for Accounts endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Apollo call record

**Slug:** `APOLLO_UPDATE_CALL_RECORD`

Tool to update an existing call record in Apollo.io. Use when you need to modify details of a previously logged phone call such as duration, status, notes, or associated contact/account information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The Apollo ID for the call record to be updated. To find call record IDs, use the 'Search for Calls' action and identify the 'id' value for the call record. |
| `note` | string | No | Add a note to the call record. |
| `logged` | boolean | No | Set to true if you want to create an individual record for the phone call in Apollo. |
| `status` | string ("queued" | "ringing" | "in-progress" | "completed" | "no_answer" | "failed" | "busy") | No | Enumeration of possible call status values. |
| `user_id` | array | No | Designate the caller(s) in your team's Apollo account. Use the 'Get a List of Users' action to retrieve IDs for all users within your Apollo account. |
| `duration` | integer | No | The duration of the call in seconds (not minutes). |
| `end_time` | string | No | The time when the call ended. Should adhere to ISO 8601 date-time format. Apollo uses GMT by default. You can adjust for timezone by specifying offset in hours and minutes. |
| `to_number` | string | No | The phone number that you dialed. |
| `account_id` | string | No | Associate the call with an account. Use the 'Search for Accounts' action to retrieve IDs for accounts within your Apollo account. |
| `contact_id` | string | No | Designate the contact that was called. Use the 'Search for Contacts' action to retrieve IDs for contacts within your Apollo account. |
| `start_time` | string | No | The time when the call started. Should adhere to ISO 8601 date-time format. Apollo uses GMT by default. You can adjust for timezone by specifying offset in hours and minutes. |
| `from_number` | string | No | The phone number that dialed you. |
| `phone_call_outcome_id` | string | No | Assign a call outcome to the record. Call outcomes are unique to your team's Apollo account. When you use the Disposition search filter for calls in Apollo, you can find the corresponding call outcome ID in the URL. |
| `phone_call_purpose_id` | string | No | Assign a call purpose to the record. Call purposes are unique to your team's Apollo account. When you use the Purpose search filter for calls in Apollo, you can find the corresponding call purpose ID in the URL. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Apollo contact details

**Slug:** `APOLLO_UPDATE_CONTACT`

Tool to update an existing contact's information in Apollo. Use when you need to modify contact details such as name, email, phone, title, organization, or custom fields. At least one field beyond contact_id must be provided.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | No | Update the contact email address. |
| `title` | string | No | Update the job title. |
| `last_name` | string | No | Update the contact's last name. |
| `account_id` | string | No | Update the account ID. This associates the contact with a different account. |
| `contact_id` | string | Yes | The Apollo ID for the contact that you want to update. To find contact IDs, call the 'Search for Contacts' action and identify the `id` value for the contact. |
| `first_name` | string | No | Update the contact's first name. |
| `home_phone` | string | No | Home phone number for the contact. |
| `label_names` | array | No | Replace lists this contact belongs to. Passing new values will overwrite existing lists. |
| `other_phone` | string | No | Alternate phone number for the contact. |
| `website_url` | string | No | Update the employer website URL. |
| `direct_phone` | string | No | Primary direct phone number for the contact. |
| `mobile_phone` | string | No | Mobile phone number for the contact. |
| `corporate_phone` | string | No | Work/office phone number for the contact. |
| `contact_stage_id` | string | No | Update the contact stage ID. Use the 'List Contact Stages' action to get valid stage IDs. |
| `organization_name` | string | No | Update the employer (company) name. |
| `present_raw_address` | string | No | Update location (city/state/country) as a single string. |
| `typed_custom_fields` | object | No | Add information to custom fields in Apollo. Your custom fields are unique to your team's Apollo account. To utilize this parameter successfully, call the 'Get a List of All Custom Fields' action and identify the `id` value for the custom field, as well as the appropriate data type. For string fields, pass a string value. For picklist fields (single-select), pass a string with the picklist option ID. For multi-select picklist fields, pass a list of picklist option IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update contact ownership

**Slug:** `APOLLO_UPDATE_CONTACT_OWNERSHIP`

Updates the ownership of specified Apollo contacts to a given Apollo user, who must be part of the same team.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `owner_id` | string | Yes | Unique Apollo identifier for the user, part of your team's Apollo account, to become the new owner. Must be retrieved from APOLLO_LIST_USERS; names and emails are not accepted. An invalid or mismatched ID may cause a silent no-op with no explicit error returned. |
| `contact_ids` | array | Yes | Unique Apollo identifiers for existing contacts to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk update Apollo contacts

**Slug:** `APOLLO_UPDATE_CONTACTS_BULK`

Tool to bulk update multiple Apollo contacts with a single API call. Use when updating multiple contacts simultaneously - either apply the same updates to all contacts using contact_ids, or apply different updates to each contact using contact_attributes. Automatically processes asynchronously for more than 100 contacts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `async` | boolean | No | Force asynchronous processing. Automatically enabled for more than 100 contacts. When true, returns a job object instead of contact data. |
| `email` | string | No | When using contact_ids, apply this email to all contacts in the list. |
| `title` | string | No | When using contact_ids, apply this title to all contacts in the list. |
| `owner_id` | string | No | When using contact_ids, apply this owner ID to all contacts in the list. |
| `last_name` | string | No | When using contact_ids, apply this last name to all contacts in the list. |
| `account_id` | string | No | When using contact_ids, apply this account ID to all contacts in the list. |
| `first_name` | string | No | When using contact_ids, apply this first name to all contacts in the list. |
| `contact_ids` | array | No | Array of contact IDs to update with the same values. Use this approach when applying identical updates to multiple contacts. Must provide either contact_ids or contact_attributes. |
| `linkedin_url` | string | No | When using contact_ids, apply this LinkedIn URL to all contacts in the list. |
| `organization_name` | string | No | When using contact_ids, apply this organization name to all contacts in the list. |
| `contact_attributes` | array | No | Array of contact objects with individual updates. Use this approach when applying different updates to each contact. Must provide either contact_ids or contact_attributes. |
| `visible_entity_ids` | array | No | Specific contact IDs to return in the response for performance optimization. Only these contacts will be included in the response. |
| `present_raw_address` | string | No | When using contact_ids, apply this address to all contacts in the list. |
| `typed_custom_fields` | object | No | When using contact_ids, apply these custom fields to all contacts in the list as key-value pairs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update contact stage

**Slug:** `APOLLO_UPDATE_CONTACT_STAGE`

Updates the stage for one or more existing contacts in Apollo.io to a new valid contact stage, useful for managing sales funnel progression.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_ids` | array | Yes | Unique identifiers for the contacts whose stage needs to be updated. |
| `contact_stage_id` | string | Yes | Unique identifier of the contact stage to assign to the contacts. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update contact status in sequence

**Slug:** `APOLLO_UPDATE_CONTACT_STATUS_IN_SEQUENCE`

Updates a contact's status within a designated Apollo sequence, but cannot set the status to 'active'.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string ("active" | "paused" | "finished_replied" | "finished_not_replied" | "bounced" | "unsubscribed") | Yes | New status for the contact in the sequence. Note: 'active' status is not supported by this action. |
| `contact_id` | string | Yes | Unique identifier of the contact. |
| `sequence_id` | string | Yes | Unique identifier of the sequence. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Apollo deal

**Slug:** `APOLLO_UPDATE_DEALS`

Updates specified fields of an existing Apollo.io deal (opportunity), requiring a valid `opportunity_id`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The new human-readable name for the deal. Preserves current name if omitted. |
| `amount` | string | No | The new monetary value of the deal (e.g., '50000'). Preserves current amount if omitted. |
| `is_won` | boolean | No | Indicates if the deal is won. `true` for won, `false` for lost/open. Preserves current status if omitted. |
| `source` | string | No | The new source from which this deal originated (e.g., 'Website', 'Referral'). Preserves current source if omitted. |
| `owner_id` | string | No | The unique identifier of the Apollo user to be assigned as the new owner. Obtain this ID via 'List All Users'. Preserves current owner if omitted. |
| `is_closed` | boolean | No | Indicates if the deal is closed. `true` for closed, `false` for open. Preserves current status if omitted. |
| `account_id` | string | No | The unique Apollo identifier of the account to be associated. Obtain this ID from account-related actions. Preserves current account if omitted. |
| `closed_date` | string | No | The new estimated or actual close date (YYYY-MM-DD). Preserves current close date if omitted. |
| `opportunity_id` | string | Yes | The unique identifier of the Apollo opportunity (deal) to be updated. |
| `opportunity_stage_id` | string | No | The unique identifier for the new stage. Obtain this ID via 'List Deal Stages'. Preserves current stage if omitted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### View API Usage Stats

**Slug:** `APOLLO_VIEW_API_USAGE_STATS`

Fetches Apollo API usage statistics and rate limits for the connected team. Use before large enrichment/search runs to understand current API usage and plan/budget constraints. If experiencing 403s on credit/usage sensitive endpoints, use this tool to confirm whether the key has master privileges (this endpoint will 403 without a master key).

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
