Skip to main content

Apollo Data Source

Apollo is a B2B sales intelligence and prospecting platform that provides contact and company data via REST API. Follow the instructions below to create a new data flow that ingests data from an Apollo source in Nexla.
apollo_api.png

Apollo

Create a New Data Flow

  1. To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Then, select the desired flow type from the list, and click the Create button.

  2. Select the Apollo connector tile from the list of available connectors. Then, select the credential that will be used to connect to the Apollo instance, and click Next; or, create a new Apollo credential for use in this flow.

  3. In Nexla, Apollo data sources can be created using pre-built endpoint templates, which expedite source setup for common Apollo endpoints. Each template is designed specifically for the corresponding Apollo endpoint, making source configuration easy and efficient.
    • To configure this source using a template, follow the instructions in Configure Using a Template.

    Apollo sources can also be configured manually, allowing you to ingest data from Apollo endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this source manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Apollo endpoints. Each template is designed specifically for the corresponding Apollo endpoint, making data source setup easy and efficient.

Endpoint Settings

  • Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

    Search People

    This endpoint calls Apollo's POST /api/v1/mixed_people/search endpoint to find net-new people in the Apollo database using demographic and firmographic filters. Use it to build prospect lists for outbound campaigns, sync ICP-matching contacts into a warehouse or CRM, or feed downstream enrichment flows.

    • Enter an array of job titles to match against in the Job Titles field — for example, ["CEO","CTO","VP Engineering"]. Leave the default [] to skip title filtering. Apollo matches titles loosely by default.
    • Enter an array of location names in the Locations field — for example, ["San Francisco","New York","United Kingdom"]. Locations may be cities, states, or countries.
    • Enter an array of seniority levels in the Seniority Levels field. Apollo's supported values include owner, founder, c_suite, partner, vp, head, director, manager, senior, entry, and intern.
    • Enter an array of Apollo organization IDs in the Organization IDs field to restrict results to people at specific companies. Organization IDs can be obtained from the Search Organizations endpoint.
    • Enter the number of records to return per request in the Results Per Page field. Apollo caps this at 100; the default is 100.
    • Enter the page number from which to begin pagination in the Page Number field. The default is 1. Nexla automatically increments the page on each iteration until all available results have been retrieved.

    Apollo's People Search endpoint does not consume Apollo credits and does not return email addresses or phone numbers. To resolve verified contact details, send the returned records through a downstream destination flow that calls the Enrich Person or Enrich People in Bulk endpoints. Apollo limits this endpoint to a maximum display of 50,000 records (100 per page × 500 pages). For full reference, see the Apollo People Search documentation.

    Search People with Verified Email

    This endpoint searches Apollo's people database and pre-filters the results to records where Apollo has marked the email status as verified. Use it when downstream outreach systems require deliverable email addresses and you want to avoid additional enrichment overhead.

    • Enter an array of job titles in the Job Titles field (for example, ["Sales Manager","Account Executive"]), or leave the default [] to skip title filtering.
    • Enter an array of location names in the Locations field to restrict results geographically.
    • Enter the number of records per page in the Results Per Page field (max 100).
    • Enter the starting page in the Page Number field. Nexla automatically increments through subsequent pages.

    This template automatically includes contact_email_status: ["verified"] in the request body. Although the search endpoint itself does not consume credits, surfacing the underlying email value still requires a downstream call to Enrich Person or Enrich People in Bulk.

    Search People with Unavailable Email

    This endpoint searches Apollo's people database and pre-filters the results to records where Apollo has marked the email status as unavailable — meaning Apollo could not source or guess an email for the person. Use it to identify prospects who match your ICP but require an alternative outreach channel (phone, LinkedIn, etc.).

    • Enter an array of job titles in the Job Titles field.
    • Enter an array of location names in the Locations field.
    • Enter the number of records per page in the Results Per Page field (max 100).
    • Enter the starting page in the Page Number field.

    This template automatically includes contact_email_status: ["unavailable"] in the request body. Combine this source with the Get Phone Number destination to unlock phone numbers for high-priority prospects.

    Search People with Unverified Email

    This endpoint searches Apollo's people database and pre-filters the results to records where Apollo has guessed an email (status guessed). Use it when expanding reach beyond strictly verified emails and accepting a higher bounce rate is acceptable.

    • Enter an array of job titles in the Job Titles field.
    • Enter an array of location names in the Locations field.
    • Enter the number of records per page in the Results Per Page field (max 100).
    • Enter the starting page in the Page Number field.

    This template automatically includes contact_email_status: ["guessed"] in the request body. Validate guessed emails with an email verification service before high-volume outreach to protect domain deliverability.

    Search People by Title and City

    This endpoint is a focused variant of People Search that filters by job title and city-level location only. Use it to build geographically scoped prospect lists — for example, "marketing directors in Chicago" — without specifying additional firmographic filters.

    • Enter an array of job titles in the Job Titles field — for example, ["Marketing Director","Head of Marketing"].
    • Enter an array of city names in the Locations field. Apollo accepts city names directly (for example, ["Chicago","Austin"]); state and country can also be included to disambiguate (for example, ["Chicago, Illinois, United States"]).
    • Enter the number of records per page in the Results Per Page field (max 100).
    • Enter the starting page in the Page Number field.

    Search People by Organization

    This endpoint searches Apollo's people database within one or more specific organizations. Use it to extract org charts, build account-based marketing lists for target companies, or refresh contact rosters at known accounts.

    • Enter an array of Apollo organization IDs in the Organization IDs field. Apollo organization IDs are 24-character hexadecimal strings (for example, ["5e66b6381e05b80001b703f3"]) and can be obtained from the Search Organizations endpoint or from the URL of an organization's profile in the Apollo UI.
    • Enter an array of job titles in the Job Titles field to scope the search to specific roles within the target organizations.
    • Enter the number of records per page in the Results Per Page field (max 100).
    • Enter the starting page in the Page Number field.

    To resolve company names to Apollo organization IDs, chain this template after a Search Organizations source by passing the returned organization IDs into a lookup-based macro.

    Get Phone Number

    This endpoint calls Apollo's POST /api/v1/people/match endpoint with phone reveal flags enabled to return the mobile or direct-dial phone number for a single person. Use it for high-priority enrichment of inbound leads or strategic account contacts when phone outreach is required.

    • Enter the person's email address in the Email Address field. Either an email or a LinkedIn URL is required to match a person in Apollo's database.
    • Enter the person's LinkedIn profile URL in the LinkedIn URL field (for example, https://www.linkedin.com/in/example/).
    • Set the Reveal Phone Number field to true to request the phone number. The default is true. Setting this to false returns the matched person record without phone details.
    • Set the Reveal Personal Emails field to true to also reveal personal email addresses on the matched record. The default is false.

    Revealing phone numbers consumes Apollo mobile credits, which are billed separately from standard email enrichment credits and are not available on every Apollo plan. For full credit and plan details, see the Apollo API Pricing documentation.

    Search Organizations

    This endpoint calls Apollo's POST /api/v1/mixed_companies/search endpoint to find companies in the Apollo database using firmographic filters. Use it to build target account lists for ABM, segment companies by geography or size for outbound campaigns, or feed CRM account enrichment flows.

    • Enter an array of location names in the Organization Locations field — for example, ["United States","Germany","London"]. Locations may be cities, states, or countries.
    • Enter an array of employee count ranges in the Employee Count Ranges field. Each range is a comma-separated string of the minimum and maximum employee counts — for example, ["1,10","11,50","51,200"]. Apollo's standard ranges are 1,10, 11,20, 21,50, 51,100, 101,200, 201,500, 501,1000, 1001,2000, 2001,5000, 5001,10000, and 10001+.
    • Enter a company name keyword in the Organization Name field to search for organizations by name. Apollo performs a fuzzy match against the company name field.
    • Enter the number of records per page in the Results Per Page field (max 100).
    • Enter the starting page in the Page Number field.

    Organization Search consumes Apollo credits according to your account's pricing plan. The endpoint is capped at 50,000 records (100 per page × 500 pages) — narrow the filters to stay within this window. For full reference, see the Apollo Organization Search documentation.

    Search People (Advanced)

    This endpoint exposes the full set of People Search filters available on paid Apollo plans, including similar-title expansion and explicit email-status filtering. Use it to construct precise ICP queries that combine title, seniority, location, and email-status criteria in a single call.

    • Enter an array of job titles in the Job Titles field (for example, ["HR","Software Engineer","Talent Acquisition"]).
    • Set the Include Similar Titles field to true to expand each title with Apollo's similar-title matching (for example, "Software Engineer" expanded to include "Backend Engineer", "Full Stack Developer", etc.). The default is false.
    • Enter an array of location names in the Locations field.
    • Enter an array of seniority levels in the Seniority Levels field. Apollo's supported values include owner, founder, c_suite, partner, vp, head, director, manager, senior, entry, and intern.
    • Enter an array of email statuses in the Email Status field. Supported values are verified, guessed, and unavailable. The default is ["verified"].
    • Enter the number of records per page in the Results Per Page field (max 100).
    • Enter the starting page in the Page Number field.

    Some of these advanced filters — particularly similar-title expansion — are only available on paid Apollo plans. If the call fails with a permissions error, confirm the API key's endpoint access and the underlying Apollo subscription tier.

Endpoint Testing

Once the selected endpoint template has been configured, Nexla can retrieve a sample of the data that will be fetched according to the current settings. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Configure Manually

Apollo data sources can be manually configured to ingest data from any valid Apollo API endpoint. Manual configuration provides maximum flexibility for accessing endpoints not covered by pre-built templates — including the Contacts, Accounts, Sequences, and Email Activity endpoints — or when a custom request body, header, or pagination strategy is needed.

With manual configuration, you can also create more complex Apollo sources, such as sources that use chained API calls to fetch related records or sources that combine custom request bodies with lookup-based macros.

API Method

  1. To manually configure this source, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Apollo API from the Method pulldown menu. Most Apollo search and enrichment endpoints use:

    • POST: Used by all of Apollo's search endpoints (/mixed_people/search, /mixed_companies/search) and enrichment endpoints (/people/match, /organizations/enrich) — the filter criteria are sent in the JSON request body
    • GET: Used by retrieval endpoints such as /users/{id} and /auth/health

API Endpoint URL

  1. Enter the URL of the Apollo API endpoint from which this source will fetch data in the Set API URL field. The Apollo API base URL is https://api.apollo.io/api/v1/ and all endpoint paths are appended after it. For example, the endpoint URL for People Search is https://api.apollo.io/api/v1/mixed_people/search.

Apollo also exposes a legacy https://api.apollo.io/v1/ base path for a small number of endpoints (such as the auth/health test endpoint). Confirm the correct base path for each endpoint by checking the Apollo API reference.

Date/Time Macros (API URL)

Optional

Optionally, the API URL can be customized using macros—all macros added to the API URL will be converted into values when Nexla executes the API call. Macros are dynamic placeholders that allow you to create flexible API endpoints that can adapt to different time periods or data requirements. For Apollo, date/time macros are useful when filtering endpoints that accept created_at or updated_at ranges, such as the Contacts and Accounts endpoints.

Macros are particularly useful for incremental ingestion patterns — for example, fetching only Apollo records created or updated since the last successful run.

  1. To add a macro, type { at the appropriate position in the API URL (within the Set API URL field), and select the desired macro from the dropdown list.

    • {now} – The current datetime
    • {now-1} – The datetime one time unit before the current datetime
    • {now+1} – The datetime one time unit after the current datetime
    • custom – Datetime macros can reference any number of time units before or after the current datetime—for example, enter (now-4) to indicate the datetime four time units before the current datetime
  2. Select the format that will be applied to datetime macros from the Date Format for Date/Time Macro pulldown menu. Apollo typically accepts ISO 8601 (yyyy-MM-dd'T'HH:mm:ss'Z') or simple date (yyyy-MM-dd) formats.

  3. Select the datetime unit that will be used to perform mathematical operations in the included macro(s) from the Time Unit for Operations pulldown menu—for example, for the macro {now-1}, when Day is selected, {now-1} will be converted to the datetime one day before the current datetime.

Lookup-Based Macros (API URL)

Optional

Column values from existing lookups can also be included as macros in the API URL. For Apollo, lookup-based macros are useful when iterating a single endpoint over a list of values — for example, calling /people/match once per email address from an upstream Nexset of leads, or calling /organizations/{id} once per organization ID.

Lookup-based macros are useful when you need to create API endpoints that reference specific IDs, values, or parameters from other data sources in your Nexla environment.

  1. To include a lookup column value macro, select the relevant lookup from the Add Lookups to Supported Macros pulldown menu.

  2. Type { at the appropriate position in the API URL, and select the lookup column-based macro from the dropdown list. Lookup-based macros are automatically populated into the macro list when a lookup is selected in the Add Lookups to Supported Macros pulldown menu.

Path to Data

Optional

If only a subset of the data returned by the Apollo API endpoint is needed, you can designate the part(s) of the response that should be included in the Nexset(s) produced from this source by specifying the path to the relevant data within the response. Apollo responses typically wrap the relevant records in a top-level key (for example, people, organizations, contacts) alongside pagination metadata such as pagination, breadcrumbs, and partial_results_only.

Path to Data is essential when API responses have nested structures. Without specifying the correct path, Nexla might not be able to properly parse and organize your data into usable records.

  • To specify which data should be treated as relevant in responses from this source, enter the path to the relevant data in the Set Path to Data in Response field.

    • For People Search responses, enter $.people[*] to treat each entry in the people array as a record.

    • For Organization Search responses, enter $.organizations[*] to treat each entry in the organizations array as a record.

    • For Person Enrichment / Match responses, enter $.person to treat the single returned person object as one record.

    Path to Data Example:

    If the API response is in JSON format and includes a top-level array named people that contains the relevant data, the path to the response would be entered as $.people[*].

Autogenerate Path Suggestions

Nexla can also autogenerate data path suggestions based on the response from the API endpoint. These suggested paths can be used as-is or modified to exactly suit your needs.

  • To use this feature, click the Test button next to the Set API URL field to fetch a sample response from the API endpoint. Suggested data paths generated based on the content & format of the response will be displayed in the Suggestions box below the Set Path to Data in Response field.

  • Click on a suggestion to automatically populate the Set Path to Data in Response field with the corresponding path. The populated path can be modified directly within the field if further customization is needed.

    PathSuggestions.png

Metadata

If metadata is included in the response but is located outside of the defined path to relevant data, you can configure Nexla to include this data as common metadata in each record. For Apollo, this is useful when preserving the response-level pagination block (which contains the current page, per-page count, and total record/page counts) alongside each ingested person or organization record.

Apollo includes useful response-level fields outside the main data array — including pagination (page, per_page, total_entries, total_pages) and breadcrumbs — that can be preserved as record-level metadata for downstream auditing.

  • To specify the location of metadata that should be included with each record, enter the path to the relevant metadata in the Path to Metadata in Response field.

    • For example, enter $.pagination to attach Apollo's pagination block as common metadata to every record in the response.

Pagination

Optional

Apollo's search endpoints use incrementing page-based pagination. Configure the following fields when calling Apollo search endpoints manually:

  • Set the pagination parameter to page and set the per-page parameter to per_page. Start the first request at page 1, and use a page size of 100 (Apollo's maximum). Nexla will automatically increment the page on each iteration until the response returns fewer than the expected number of rows.

Apollo limits search results to 50,000 records (100 per page × 500 pages) regardless of how many records match the filter. Narrow the filter criteria when expecting more results than this cap allows.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this source, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2). For Apollo, the most common manual headers are Content-Type:application/json and Cache-Control:no-cache.

    You do not need to include the X-Api-Key header — Nexla attaches the API key from the credential automatically.

Endpoint Testing

After configuring all settings for the selected endpoint, Nexla can retrieve a sample of the data that will be fetched according to the current configuration. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Save & Activate the Source

  1. Once all of the relevant steps in the above sections have been completed, click the Create button in the upper right corner of the screen to save and create the new Apollo data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.