home / skills / jeremylongshore / claude-code-plugins-plus-skills / apollo-install-auth

This skill helps you install and authenticate Apollo.io API access by configuring keys and client setup for seamless integration.

npx playbooks add skill jeremylongshore/claude-code-plugins-plus-skills --skill apollo-install-auth

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.7 KB
---
name: apollo-install-auth
description: |
  Install and configure Apollo.io API authentication.
  Use when setting up a new Apollo integration, configuring API keys,
  or initializing Apollo client in your project.
  Trigger with phrases like "install apollo", "setup apollo api",
  "apollo authentication", "configure apollo api key".
allowed-tools: Read, Write, Edit, Bash(npm:*), Bash(pip:*), Grep
version: 1.0.0
license: MIT
author: Jeremy Longshore <[email protected]>
---

# Apollo Install & Auth

## Overview
Set up Apollo.io API client and configure authentication credentials for B2B sales intelligence access.

## Prerequisites
- Node.js 18+ or Python 3.10+
- Package manager (npm, pnpm, or pip)
- Apollo.io account with API access
- API key from Apollo dashboard (Settings > Integrations > API)

## Instructions

### Step 1: Install SDK/HTTP Client
```bash
# Node.js (using axios for REST API)
npm install axios dotenv

# Python
pip install requests python-dotenv
```

### Step 2: Configure Authentication
```bash
# Set environment variable
export APOLLO_API_KEY="your-api-key"

# Or create .env file
echo 'APOLLO_API_KEY=your-api-key' >> .env
```

### Step 3: Create Apollo Client
```typescript
// apollo-client.ts
import axios from 'axios';
import dotenv from 'dotenv';

dotenv.config();

export const apolloClient = axios.create({
  baseURL: 'https://api.apollo.io/v1',
  headers: {
    'Content-Type': 'application/json',
    'Cache-Control': 'no-cache',
  },
  params: {
    api_key: process.env.APOLLO_API_KEY,
  },
});
```

### Step 4: Verify Connection
```typescript
async function verifyConnection() {
  try {
    const response = await apolloClient.get('/auth/health');
    console.log('Apollo connection:', response.status === 200 ? 'OK' : 'Failed');
  } catch (error) {
    console.error('Connection failed:', error.message);
  }
}
```

## Output
- HTTP client configured with Apollo base URL
- Environment variable or .env file with API key
- Successful connection verification output

## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| 401 Unauthorized | Invalid API key | Verify key in Apollo dashboard |
| 403 Forbidden | Insufficient permissions | Check API plan and permissions |
| 429 Rate Limited | Exceeded quota | Implement backoff, check usage |
| Network Error | Firewall blocking | Ensure outbound HTTPS to api.apollo.io |

## Examples

### TypeScript Setup
```typescript
import axios, { AxiosInstance } from 'axios';

interface ApolloClientConfig {
  apiKey: string;
  baseURL?: string;
}

export function createApolloClient(config: ApolloClientConfig): AxiosInstance {
  return axios.create({
    baseURL: config.baseURL || 'https://api.apollo.io/v1',
    headers: {
      'Content-Type': 'application/json',
    },
    params: {
      api_key: config.apiKey,
    },
  });
}

const client = createApolloClient({
  apiKey: process.env.APOLLO_API_KEY!,
});
```

### Python Setup
```python
import os
import requests
from dotenv import load_dotenv

load_dotenv()

class ApolloClient:
    def __init__(self, api_key: str = None):
        self.api_key = api_key or os.environ.get('APOLLO_API_KEY')
        self.base_url = 'https://api.apollo.io/v1'

    def _request(self, method: str, endpoint: str, **kwargs):
        url = f"{self.base_url}/{endpoint}"
        params = kwargs.pop('params', {})
        params['api_key'] = self.api_key
        return requests.request(method, url, params=params, **kwargs)

client = ApolloClient()
```

## Resources
- [Apollo API Documentation](https://apolloio.github.io/apollo-api-docs/)
- [Apollo Dashboard](https://app.apollo.io)
- [Apollo API Rate Limits](https://apolloio.github.io/apollo-api-docs/#rate-limits)

## Next Steps
After successful auth, proceed to `apollo-hello-world` for your first API call.

Overview

This skill installs and configures Apollo.io API authentication to initialize a reusable client for B2B sales intelligence access. It walks you through installing a lightweight HTTP SDK, setting the APOLLO_API_KEY environment variable or .env file, and creating a simple client for Node.js or Python. Use it to verify connectivity and surface basic auth and rate-limit errors quickly.

How this skill works

The skill installs minimal dependencies (axios + dotenv for Node; requests + python-dotenv for Python), then configures an HTTP client that attaches your API key as a query parameter. It provides ready-to-use client factories and a verification call to /auth/health so you can confirm credentials and connectivity. Error cases like 401, 403, 429, and network failures are documented with remedies.

When to use it

  • Setting up a new Apollo integration in a project
  • Configuring or rotating an Apollo API key
  • Initializing an Apollo client for development or CI
  • Verifying connectivity after provisioning API access
  • Troubleshooting authentication or rate-limit errors

Best practices

  • Store APOLLO_API_KEY in environment variables or a .env file; avoid committing keys to source control
  • Use the provided client factory to centralize baseURL and auth handling
  • Implement exponential backoff on 429 responses and respect documented rate limits
  • Limit scopes and permissions in the Apollo dashboard to the minimum needed
  • Add automated health checks (e.g., calling /auth/health) in CI or startup scripts

Example use cases

  • Node.js service: install axios + dotenv, create apollo-client.ts, and call the API from server endpoints
  • Python backend: use the ApolloClient wrapper to centralize requests and include api_key automatically
  • CI/CD pipeline: load APOLLO_API_KEY from secrets and run a health check step before deployments
  • Local development: add APOLLO_API_KEY to .env for quick testing with the same client code

FAQ

How do I set the API key locally?

Set APOLLO_API_KEY in your shell environment or add APOLLO_API_KEY=your-api-key to a .env file loaded by dotenv/python-dotenv.

What if I get 401 Unauthorized?

Verify the key in the Apollo dashboard, ensure it has API access, and that you are passing it correctly as APOLLO_API_KEY or via the client factory.