Connectors › Apollo

Apollo search

Source people from Apollo's API search: masked rows (first name, title, company, has-email) at no credit cost; reveal the ones worth paying for with apollo/enrich.

Connectorapollo/search
Rolesource
Recordsperson
Tierverified since 2026-09-27
CredentialAPOLLO_API_KEY stored once with gtme secret set APOLLO_API_KEY
Cost$0
CallsPOST https://api.apollo.io/api/v1/mixed_people/api_search
Sourcegithub.com/gtme-run/gtme-bindings/apollo-search

Use it

Install it from the registry. Nothing installs unverified: the fixtures run offline first.

gtme adapters add github.com/gtme-run/gtme-bindings/apollo-search@main

The command prints the hosts the binding will call and the credentials it will ask for, then pins the commit it fetched. Then, in a pipeline file:

source:
  use: apollo/search
  with:
    query: QUERY

Replace the placeholder:

gtme plan pipeline.yaml checks the credential is set and that every field this step needs is provided by a step before it, without calling anyone.

Needs

Nothing. A source starts the pipeline.

Provides

first_name, last_name, title, company_name, apollo.id, apollo.has_email

Config

KeyTypeWhat it does
querystringFree-text search, such as "vp marketing, saas, 50-200 employees"
limitintegerStop after this many people
titlesarray of stringperson_titles
senioritiesarray of stringperson_seniorities
locationsarray of stringorganization_locations
employee_rangesarray of stringorganization_num_employees_ranges, such as "50,200"
domainsarray of stringq_organization_domains
per_pageintegerDefault 25.
base_urlstringOverride the API host (testing) Default https://api.apollo.io.

What a response looks like

Recorded from a real response to POST /api/v1/mixed_people/api_search, status 200. The conformance kit proves this payload in produces canonical records out, and gtme run --simulate serves it in place of the network.

{
  "total_entries": 2,
  "people": [
    {
      "id": "5f3b0c1a2d",
      "first_name": "Jane",
      "last_name_obfuscated": "D.",
      "title": "VP Marketing",
      "has_email": true,
      "has_direct_phone": false,
      "has_city": true,
      "has_state": true,
      "has_country": true,
      "last_refreshed_at": "2026-08-01T00:00:00Z",
      "organization": {
        "name": "Acme Inc",
        "has_industry": true,
        "has_phone": false,
        "has_city": true,
        "has_state": true,
        "has_country": true,
        "has_zip_code": true,
        "has_revenue": true,
        "has_employee_count": true
      }
    },
    {
      "id": "6a4c1d2b3e",
      "first_name": "Bob",
      "last_name_obfuscated": "S.",
      "title": "Head of Growth",
      "has_email": false,
      "has_direct_phone": false,
      "has_city": false,
      "has_state": false,
      "has_country": true,
      "last_refreshed_at": "2026-07-15T00:00:00Z",
      "organization": {
        "name": "Grove Labs",
        "has_industry": true,
… 11 more lines in the fixture file

On this page, connector means what gtme calls an adapter. This one is a binding from the registry. Two adapter tiers explains the difference.