Claude-code-plugins-plus-skills apollo-install-auth
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/apollo-pack/skills/apollo-install-auth" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-apollo-install-auth && rm -rf "$T"
manifest:
plugins/saas-packs/apollo-pack/skills/apollo-install-auth/SKILL.mdsource content
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
header authenticationx-api-key - Environment variable file with
protection.gitignore - Successful
verification/auth/health - 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 |
| Network Error | Firewall blocking outbound HTTPS | Allow outbound to 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.