Apollo Install & Auth
Overview
Set up Apollo.io API client and configure authentication credentials. Apollo uses the x-api-key HTTP header for authentication against the base URL https://api.apollo.io/api/v1/. There is no official SDK — all integrations use the REST API directly.
Prerequisites
- Node.js 18+ or Python 3.10+
- Package manager (npm, pnpm, or pip)
- Apollo.io account with API access (Basic plan or above)
- API key from Apollo dashboard (Settings > Integrations > API Keys)
Instructions
Step 1: Install HTTP Client
set -euo pipefail
# Node.js
npm install axios dotenv
# Python
pip install requests python-dotenv
Step 2: Configure API Key
Apollo supports two API key types:
- Master API key — full access to all endpoints (required for contacts, sequences, deals)
- Standard API key — limited to search and enrichment only
# Create .env file (never commit this)
echo 'APOLLO_API_KEY=your-api-key-here' >> .env
echo '.env' >> .gitignore
Step 3: Create Apollo Client (TypeScript)
// src/apollo/client.ts
import axios, { AxiosInstance } from 'axios';
import dotenv from 'dotenv';
dotenv.config();
const BASE_URL = 'https://api.apollo.io/api/v1';
export function createApolloClient(apiKey?: string): AxiosInstance {
const key = apiKey ?? process.env.APOLLO_API_KEY;
if (!key) throw new Error('APOLLO_API_KEY is not set');
return axios.create({
baseURL: BASE_URL,
headers: {
'Content-Type': 'application/json',
'Cache-Control': 'no-cache',
'x-api-key': key,
},
timeout: 30_000,
});
}
export const apolloClient = createApolloClient();
Step 4: Verify Connection
// src/scripts/verify-auth.ts
import { apolloClient } from '../apollo/client';
async function verifyConnection() {
try {
// Use the health endpoint to test connectivity
const response = await apolloClient.get('/auth/health');
console.log('Apollo connection:', response.data.is_logged_in ? 'OK' : 'Invalid key');
} catch (error: any) {
if (error.response?.status === 401) {
console.error('Invalid API key. Generate a new one at:');
console.error(' Apollo Dashboard > Settings > Integrations > API Keys');
} else {
console.error('Connection failed:', error.message);
}
}
}
verifyConnection();
Step 5: Create Apollo Client (Python)
# apollo_client.py
import os
import requests
from dotenv import load_dotenv
load_dotenv()
class ApolloClient:
BASE_URL = 'https://api.apollo.io/api/v1'
def __init__(self, api_key: str | None = None):
self.api_key = api_key or os.environ.get('APOLLO_API_KEY')
if not self.api_key:
raise ValueError('APOLLO_API_KEY is not set')
self.session = requests.Session()
self.session.headers.update({
'Content-Type': 'application/json',
'Cache-Control': 'no-cache',
'x-api-key': self.api_key,
})
def get(self, endpoint: str, **kwargs) -> requests.Response:
return self.session.get(f'{self.BASE_URL}/{endpoint}', **kwargs)
def post(self, endpoint: str, json: dict = None, **kwargs) -> requests.Response:
return self.session.post(f'{self.BASE_URL}/{endpoint}', json=json, **kwargs)
def verify(self) -> bool:
resp = self.get('auth/health')
return resp.json().get('is_logged_in', False)
client = ApolloClient()
print('Connected:', client.verify())
Output
- HTTP client configured with
x-api-keyheader authentication - Environment variable file with
.gitignoreprotection - Successful
/auth/healthverification - Both TypeScript and Python implementations
Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| 401 Unauthorized | Invalid or missing API key | Verify key in Apollo Dashboard > Settings > Integrations > API Keys |
| 403 Forbidden | Endpoint requires master key | Generate a master API key (not standard) in the dashboard |
| 429 Rate Limited | Too many requests per minute | Implement backoff; see apollo-rate-limits |
| Network Error | Firewall blocking outbound HTTPS | Allow outbound to api.apollo.io on port 443 |
Examples
Quick cURL Verification
# Test your API key from the command line
curl -s -X GET \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-H "x-api-key: $APOLLO_API_KEY" \
"https://api.apollo.io/api/v1/auth/health" | python3 -m json.tool
Resources
Next Steps
After successful auth, proceed to apollo-hello-world for your first API call.