Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Apollo connector

OAuth 2.0CRM & Sales

Connect to Apollo.io to search and enrich B2B contacts and accounts, manage CRM contacts, and automate outreach sequences.

Apollo connector

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

    Full SDK reference: Node.js | Python

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

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Register your Apollo credentials with Scalekit so it handles the token lifecycle. You do this once per environment.

    Dashboard setup steps

    Register your Scalekit environment with the Apollo connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically.

    1. Create a connection in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Apollo and click Create.

      • Click Use your own credentials and copy the Redirect URI. It looks like: https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback

        ScopeRequired for
        contact_readReading contact details
        contact_writeCreating contacts
        contact_updateUpdating contacts
        account_readReading account details
        account_writeCreating accounts
        organizations_enrichEnriching accounts with Apollo data
        person_readEnriching contacts (paid plans only)
        emailer_campaigns_searchListing email sequences
        accounts_searchSearching accounts (paid plans only)
        contacts_searchSearching contacts (paid plans only)

      Keep this tab open — you’ll return to it in step 3.

    2. Register an OAuth application in Apollo

      • Go to Apollo’s OAuth registration page and sign in with your Apollo account.

      • Fill in the registration form:

        • Application name — a name to identify your app (e.g., My Sales Agent)
        • Description — brief description of what your app does
        • Redirect URIs — paste the redirect URI you copied from Scalekit
      • Under Scopes, select the permissions your agent needs. Use the table below to decide:

        ScopeRequired for
        contact_readReading contact details
        contact_writeCreating contacts
        contact_updateUpdating contacts
        account_readReading account details
        account_writeCreating accounts
        organizations_enrichEnriching accounts with Apollo data
        person_readEnriching contacts (paid plans only)
        emailer_campaigns_searchListing email sequences
        accounts_searchSearching accounts (paid plans only)
        contacts_searchSearching contacts (paid plans only)

      • Click Register application.

    3. Copy your client credentials

      After registering, Apollo shows the Client ID and Client Secret for your application.

      Copy both values now. The Client Secret is shown only once — you cannot retrieve it again after navigating away.

    4. Add credentials in Scalekit

      • Return to Scalekit dashboardAgentKit > Connections and open the connection you created in step 1.

      • Enter the following:

        • Client ID — from Apollo
        • Client Secret — from Apollo
        • Permissions — the same scopes you selected in Apollo

        Add credentials in Scalekit dashboard

      • Click Save.

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

Connect this agent connector to let your agent:

  • Create account, contact — Create a new account (company) record in your Apollo CRM
  • List sequences — List available email sequences (Apollo Sequences / Emailer Campaigns) in your Apollo account
  • Update contact — Update properties or CRM stage of an existing Apollo contact record by contact ID
  • Get account, contact — Retrieve the full profile of a company account from Apollo by its ID
  • Contact enrich — Enrich a contact using Apollo’s people matching engine
  • Search contacts, accounts — Search contacts in your Apollo CRM using filters such as job title, company, and sort order
Proxy API call
const result = await actions.request({
connectionName: 'apollo',
identifier: 'user_123',
path: '/api/v1/contacts/search',
method: 'POST',
});
console.log(result.data);
Execute a tool
const result = await actions.executeTool({
connector: 'apollo',
identifier: 'user_123',
toolName: 'apollo_create_account',
toolInput: {},
});
console.log(result);

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

apollo_create_account#Create a new account (company) record in your Apollo CRM. Accounts represent organizations and can be linked to contacts. Check for duplicates before creating to avoid double entries.5 params

Create a new account (company) record in your Apollo CRM. Accounts represent organizations and can be linked to contacts. Check for duplicates before creating to avoid double entries.

NameTypeRequiredDescription
namestringrequiredName of the company/account
domainstringoptionalWebsite domain of the company
linkedin_urlstringoptionalLinkedIn company page URL
phone_numberstringoptionalMain phone number of the company
raw_addressstringoptionalPhysical address of the company
apollo_create_contact#Create a new contact record in your Apollo CRM. The contact will appear in your Apollo contacts list and can be enrolled in sequences. Check for duplicates before creating to avoid double entries.8 params

Create a new contact record in your Apollo CRM. The contact will appear in your Apollo contacts list and can be enrolled in sequences. Check for duplicates before creating to avoid double entries.

NameTypeRequiredDescription
first_namestringrequiredFirst name of the contact
last_namestringrequiredLast name of the contact
account_idstringoptionalApollo account ID to associate this contact with
emailstringoptionalEmail address of the contact
linkedin_urlstringoptionalLinkedIn profile URL of the contact
organization_namestringoptionalCompany name the contact works at
phonestringoptionalPhone number of the contact
titlestringoptionalJob title of the contact
apollo_enrich_account#Enrich a company/account record with Apollo firmographic data using the company's website domain or name. Returns verified employee count, revenue estimates, industry, tech stack, funding rounds, and social profiles. Consumes Apollo credits per match.2 params

Enrich a company/account record with Apollo firmographic data using the company's website domain or name. Returns verified employee count, revenue estimates, industry, tech stack, funding rounds, and social profiles. Consumes Apollo credits per match.

NameTypeRequiredDescription
domainstringoptionalWebsite domain of the company to enrich (e.g., acmecorp.com)
namestringoptionalCompany name to enrich (used if domain is not available)
apollo_enrich_contact#Enrich a contact using Apollo's people matching engine. Provide an email address or name + company to retrieve a verified contact profile. Revealing personal emails or phone numbers consumes additional Apollo credits per successful match.7 params

Enrich a contact using Apollo's people matching engine. Provide an email address or name + company to retrieve a verified contact profile. Revealing personal emails or phone numbers consumes additional Apollo credits per successful match.

NameTypeRequiredDescription
emailstringoptionalWork email address of the contact to enrich
first_namestringoptionalFirst name of the contact to enrich
last_namestringoptionalLast name of the contact to enrich
linkedin_urlstringoptionalLinkedIn profile URL for precise matching
organization_namestringoptionalCompany name to assist in matching
reveal_personal_emailsbooleanoptionalAttempt to reveal personal email addresses (consumes extra Apollo credits)
reveal_phone_numberbooleanoptionalAttempt to reveal direct phone numbers (consumes extra Apollo credits)
apollo_get_account#Retrieve the full profile of a company account from Apollo by its ID. Returns detailed firmographic data including employee count, revenue estimates, industry, tech stack, funding information, and social profiles.1 param

Retrieve the full profile of a company account from Apollo by its ID. Returns detailed firmographic data including employee count, revenue estimates, industry, tech stack, funding information, and social profiles.

NameTypeRequiredDescription
account_idstringrequiredThe Apollo account (organization) ID to retrieve
apollo_get_contact#Retrieve the full profile of a contact from Apollo by their ID. Returns detailed professional information including email, phone, LinkedIn URL, employment history, education, and social profiles.1 param

Retrieve the full profile of a contact from Apollo by their ID. Returns detailed professional information including email, phone, LinkedIn URL, employment history, education, and social profiles.

NameTypeRequiredDescription
contact_idstringrequiredThe Apollo contact ID to retrieve
apollo_list_sequences#List available email sequences (Apollo Sequences / Emailer Campaigns) in your Apollo account. Supports filtering by name and pagination. Returns sequence ID, name, status, and step count.3 params

List available email sequences (Apollo Sequences / Emailer Campaigns) in your Apollo account. Supports filtering by name and pagination. Returns sequence ID, name, status, and step count.

NameTypeRequiredDescription
pageintegeroptionalPage number for pagination (starts at 1)
per_pageintegeroptionalNumber of sequences to return per page (max 100)
searchstringoptionalFilter sequences by name (partial match)
apollo_search_accounts#Search Apollo's company database using firmographic filters such as company name, industry, employee count range, revenue range, and location. Returns matching account records with company details.7 params

Search Apollo's company database using firmographic filters such as company name, industry, employee count range, revenue range, and location. Returns matching account records with company details.

NameTypeRequiredDescription
company_namestringoptionalFilter accounts by company name (partial match supported)
employee_rangesstringoptionalComma-separated employee count ranges (e.g., 1,10,11,50,51,200)
industrystringoptionalFilter accounts by industry vertical
keywordsstringoptionalKeyword search across company name, description, and domain
locationstringoptionalFilter accounts by headquarters city, state, or country
pageintegeroptionalPage number for pagination (starts at 1)
per_pageintegeroptionalNumber of accounts to return per page (max 100)
apollo_search_contacts#Search contacts in your Apollo CRM using filters such as job title, company, and sort order. Returns matching contact records with professional details. Results are paginated.8 params

Search contacts in your Apollo CRM using filters such as job title, company, and sort order. Returns matching contact records with professional details. Results are paginated.

NameTypeRequiredDescription
company_namestringoptionalFilter contacts by company name
industrystringoptionalFilter contacts by their company's industry (e.g., Software, Healthcare)
keywordsstringoptionalFull-text keyword search across contact name, title, company, and bio
locationstringoptionalFilter contacts by city, state, or country
pageintegeroptionalPage number for pagination (starts at 1)
per_pageintegeroptionalNumber of contacts to return per page (max 100)
senioritystringoptionalFilter by seniority level (e.g., c_suite, vp, director, manager, senior, entry)
titlestringoptionalFilter contacts by job title keywords (e.g., VP of Sales)
apollo_update_contact#Update properties or CRM stage of an existing Apollo contact record by contact ID. Only the provided fields will be updated; omitted fields remain unchanged.9 params

Update properties or CRM stage of an existing Apollo contact record by contact ID. Only the provided fields will be updated; omitted fields remain unchanged.

NameTypeRequiredDescription
contact_idstringrequiredThe Apollo contact ID to update
contact_stage_idstringoptionalApollo CRM stage ID to move the contact to
emailstringoptionalUpdated email address for the contact
first_namestringoptionalUpdated first name
last_namestringoptionalUpdated last name
linkedin_urlstringoptionalUpdated LinkedIn profile URL
organization_namestringoptionalUpdated company name
phonestringoptionalUpdated phone number
titlestringoptionalUpdated job title