Apollo
Connect to Apollo to search contacts, manage sequences, enrich leads, and accelerate sales pipeline
Connect to Apollo to search contacts, manage sequences, enrich leads, and accelerate sales pipeline
Supports authentication: OAuth 2.0
Set up the agent connector
Section titled “Set up the agent connector”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.
-
Create a connection in Scalekit
-
In Scalekit dashboard, go to Agent Auth → 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
Keep this tab open — you’ll return to it in step 3.
-
-
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
- Application name — a name to identify your app (e.g.,
-
Under Scopes, select the permissions your agent needs. Use the table below to decide:
Scope Required 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.
-
-
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.
-
Add credentials in Scalekit
-
Return to Scalekit dashboard → Agent Auth → 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
-
Click Save.
-
Connect a user’s Apollo account and make API calls on their behalf — Scalekit handles OAuth and token management automatically.
import scalekit.client, osfrom dotenv import load_dotenvload_dotenv()
connection_name = "apollo" # connection name from Scalekit dashboardidentifier = "user_123" # your unique user identifier
# Get credentials from app.scalekit.com → Developers → API Credentialsscalekit_client = scalekit.client.ScalekitClient( client_id=os.getenv("SCALEKIT_CLIENT_ID"), client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"), env_url=os.getenv("SCALEKIT_ENV_URL"),)
# Get authorization link and send it to your userlink_response = scalekit_client.actions.get_authorization_link( connection_name=connection_name, identifier=identifier)print("Authorize Apollo:", link_response.link)
# After the user authorizes, make API calls via Scalekit proxyresult = scalekit_client.actions.request( connection_name=connection_name, identifier=identifier, path="/api/v1/contacts/search", method="POST")print(result)Tool list
Section titled “Tool list”apollo_create_account
Section titled “apollo_create_account”Create a new account (organization) in Apollo. Requires the account_write scope.
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the account to create |
domain | string | No | Website domain of the account (e.g., example.com) |
linkedin_url | string | No | LinkedIn profile URL of the account |
phone_number | string | No | Primary phone number of the account |
raw_address | string | No | Physical address of the account |
apollo_create_contact
Section titled “apollo_create_contact”Create a new contact in Apollo. Requires the contact_write scope.
| Name | Type | Required | Description |
|---|---|---|---|
first_name | string | Yes | First name of the contact |
last_name | string | Yes | Last name of the contact |
account_id | string | No | ID of the account to associate this contact with |
email | string | No | Email address of the contact |
linkedin_url | string | No | LinkedIn profile URL of the contact |
organization_name | string | No | Name of the contact’s organization |
phone | string | No | Phone number of the contact |
title | string | No | Job title of the contact |
apollo_enrich_account
Section titled “apollo_enrich_account”Enrich an account’s profile with additional data from Apollo’s database using domain or name. Requires the organizations_enrich scope.
| Name | Type | Required | Description |
|---|---|---|---|
domain | string | No | Domain of the organization to enrich (e.g., example.com) |
name | string | No | Name of the organization to enrich |
apollo_enrich_contact
Section titled “apollo_enrich_contact”Enrich a contact’s profile with additional data from Apollo’s database. Requires the person_read scope.
| Name | Type | Required | Description |
|---|---|---|---|
email | string | No | Email address of the person to enrich (recommended for best results) |
first_name | string | No | First name of the person |
last_name | string | No | Last name of the person |
linkedin_url | string | No | LinkedIn profile URL of the person |
organization_name | string | No | Organization name of the person |
reveal_personal_emails | boolean | No | Set to true to include personal email addresses in the response |
reveal_phone_number | boolean | No | Set to true to include phone numbers in the response |
apollo_get_account
Section titled “apollo_get_account”Retrieve details of a specific account by ID. Requires the account_read scope.
| Name | Type | Required | Description |
|---|---|---|---|
account_id | string | Yes | ID of the account to retrieve |
apollo_get_contact
Section titled “apollo_get_contact”Retrieve details of a specific contact by ID. Requires the contact_read scope.
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | string | Yes | ID of the contact to retrieve |
apollo_list_sequences
Section titled “apollo_list_sequences”List sequences (email outreach campaigns) in Apollo. Requires the emailer_campaigns_search scope.
| Name | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number for pagination |
per_page | integer | No | Number of results per page |
search | string | No | Search term to filter sequences by name |
apollo_search_accounts
Section titled “apollo_search_accounts”Search for accounts (organizations) using filters such as company name, industry, and location. Requires the accounts_search scope.
| Name | Type | Required | Description |
|---|---|---|---|
company_name | string | No | Filter by company name |
employee_ranges | string | No | Filter by employee count range (e.g., 1,10) |
industry | string | No | Filter by industry |
keywords | string | No | Full-text keyword search |
location | string | No | Filter by account location |
page | integer | No | Page number for pagination |
per_page | integer | No | Number of results per page |
apollo_search_contacts
Section titled “apollo_search_contacts”Search for contacts using filters such as title, company, industry, and location. Requires the contacts_search scope.
| Name | Type | Required | Description |
|---|---|---|---|
company_name | string | No | Filter by company name |
industry | string | No | Filter by industry |
keywords | string | No | Full-text keyword search |
location | string | No | Filter by contact location |
page | integer | No | Page number for pagination |
per_page | integer | No | Number of results per page |
seniority | string | No | Filter by seniority level |
title | string | No | Filter by job title |
apollo_update_contact
Section titled “apollo_update_contact”Update an existing contact by ID. Requires the contact_update scope.
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | string | Yes | ID of the contact to update |
contact_stage_id | string | No | Updated contact stage ID |
email | string | No | Updated email address |
first_name | string | No | Updated first name |
last_name | string | No | Updated last name |
linkedin_url | string | No | Updated LinkedIn profile URL |
organization_name | string | No | Updated organization name |
phone | string | No | Updated phone number |
title | string | No | Updated job title |