Apollo Install AuthBLOCK
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
Overview
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
4f83675ca38aOBSERVED · 2026-10-08Install
Commands as the repository documents them. They are shown, not run.
npm install axios dotenv
pip install requests python-dotenv
Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- 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.13.0 license: MIT author: Jeremy Longshore <[email protected]> tags: - saas - apollo - api - authentication compatibility: Designed for Claude Code --- # 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 ```bash 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 ```bash # Create .env file (never commit this) echo 'APOLLO_API_KEY=your-api-key-here' >> .env echo '.env' >> .gitignore ``` ### Step 3: Create Apollo Client (TypeScript) ```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 ```typescript // 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) ```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-key` header authentication - Environment variable file with `.gitignore` protection - Successful `/auth/health` verification - 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 ```bash # 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 - [Apollo API Documentation](https://docs.apollo.io/) - [Create API Keys](https://docs.apollo.io/docs/create-api-key) - [Authentication Reference](https://docs.apollo.io/reference/authentication) - [Test API Key](https://docs.apollo.io/docs/test-api-key) ## Next Steps After successful auth, proceed to `apollo-hello-world` for your first API call.
Trust audit
BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (2)
return self.session.post(f'{self.BASE_URL}/{endpoint}', json=json, **kwargs)- **Master API key** — full access to all endpoints (required for contacts, sequences, deals)
Gates applied: critical_finding, no_behavioural_pass, undeclared_transfer.
4f83675ca38afull audit observations/trust-audit/skill/jeremylongshore__apollo-install-auth.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | 4f83675ca38a | BLOCK | D | 69 | first audit |
Questions
What does the Apollo Install Auth skill do?
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
Is Apollo Install Auth safe to install?
No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.
What can Apollo Install Auth access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Apollo Install Auth work with?
Its documentation mentions claude-code. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (4f83675ca38a), read on 2026-10-08. The repository is watched, and a new audit runs when it changes — this is the first audit.