Skip to content
Skillv1.0.0

apollo-hello-world

Create a minimal working Apollo.io example. Use when starting a new Apollo integration, testing your setup, or learning basic Apollo API patterns. Trigger with phrases like "apollo hello world", "apol

by ComeOnOliver(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from ComeOnOliver/skillshub (skills/jeremylongshore/claude-code-plugins-plus-skills/apollo-hello-world/SKILL.md). Install upstream with npx skills add ComeOnOliver/skillshub --skill apollo-hello-world. Copyright stays with the author (MIT).

Apollo Hello World

Overview

Minimal working example demonstrating the three core Apollo.io API operations: people search, person enrichment, and organization enrichment. Uses the correct x-api-key header and api.apollo.io/api/v1/ base URL.

Prerequisites

  • Completed apollo-install-auth setup
  • Valid API key configured in APOLLO_API_KEY environment variable

Instructions

Step 1: Search for People (No Credits Consumed)

The People API Search endpoint finds contacts in Apollo's 275M+ database. This endpoint is free — it does not consume enrichment credits, but it also does not return emails or phone numbers.

// hello-apollo.ts
import axios from 'axios';

const client = axios.create({
  baseURL: 'https://api.apollo.io/api/v1',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': process.env.APOLLO_API_KEY!,
  },
});

// People Search — POST /mixed_people/api_search
async function searchPeople() {
  const { data } = await client.post('/mixed_people/api_search', {
    q_organization_domains_list: ['apollo.io'],
    person_titles: ['engineer'],
    person_seniorities: ['senior', 'manager'],
    page: 1,
    per_page: 10,
  });

  console.log(`Found ${data.pagination.total_entries} contacts`);
  data.people.forEach((person: any) => {
    console.log(`  ${person.name} — ${person.title} at ${person.organization?.name}`);
  });
  return data;
}

searchPeople().catch(console.error);

Step 2: Enrich a Single Person (Consumes 1 Credit)

The People Enrichment endpoint returns full contact details including email and phone.

// Enrich by email, LinkedIn URL, or name+domain combo
async function enrichPerson() {
  const { data } = await client.post('/people/match', {
    email: 'tim@apollo.io',
    // Alternative identifiers:
    // linkedin_url: 'https://www.linkedin.com/in/...',
    // first_name: 'Tim', last_name: 'Zheng', organization_domain: 'apollo.io',
    reveal_personal_emails: false,
    reveal_phone_number: false,
  });

  if (!data.person) {
    console.log('No match found');
    return;
  }

  const p = data.person;
  console.log(`Name:     ${p.name}`);
  console.log(`Title:    ${p.title}`);
  console.log(`Email:    ${p.email}`);
  console.log(`Company:  ${p.organization?.name}`);
  console.log(`LinkedIn: ${p.linkedin_url}`);
}

Step 3: Enrich an Organization (Consumes 1 Credit)

// Organization Enrichment — GET /organizations/enrich
async function enrichOrg() {
  const { data } = await client.get('/organizations/enrich', {
    params: { domain: 'apollo.io' },
  });

  const org = data.organization;
  if (!org) { console.log('No org found'); return; }

  console.log(`Company:    ${org.name}`);
  console.log(`Industry:   ${org.industry}`);
  console.log(`Employees:  ${org.estimated_num_employees}`);
  console.log(`Revenue:    ${org.annual_revenue_printed}`);
  console.log(`HQ:         ${org.city}, ${org.state}, ${org.country}`);
  console.log(`Tech Stack: ${org.current_technologies?.slice(0, 5).map((t: any) => t.name).join(', ')}`);
}

Step 4: Python Equivalent

import os, requests

API_KEY = os.environ['APOLLO_API_KEY']
BASE = 'https://api.apollo.io/api/v1'
HEADERS = {'Content-Type': 'application/json', 'x-api-key': API_KEY}

# People search (free)
resp = requests.post(f'{BASE}/mixed_people/api_search', headers=HEADERS, json={
    'q_organization_domains_list': ['apollo.io'],
    'person_titles': ['engineer'],
    'page': 1, 'per_page': 5,
})
for p in resp.json().get('people', []):
    print(f"  {p['name']}{p.get('title', 'N/A')}")

# Org enrichment (1 credit)
resp = requests.get(f'{BASE}/organizations/enrich',
    headers=HEADERS, params={'domain': 'apollo.io'})
org = resp.json().get('organization', {})
print(f"Company: {org.get('name')} ({org.get('estimated_num_employees')} employees)")

Output

  • People search results (name, title, company — no emails)
  • Enriched person with email, phone, LinkedIn URL
  • Enriched organization with industry, headcount, revenue, tech stack

Error Handling

Error Cause Solution
401 Unauthorized Missing or invalid x-api-key header Check APOLLO_API_KEY env var
422 Unprocessable Malformed request body Verify JSON payload structure
429 Rate Limited Exceeded requests/minute Wait and retry with exponential backoff
Empty people array No matches for filters Broaden titles/seniority or use different domain

Resources

Next Steps

Proceed to apollo-local-dev-loop for development workflow setup.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/comeonoliver-skillshub-apollo-hello-world/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

comeonoliver-skillshub-apollo-hello-world.ocm.jsonjson
{
  "ocm": "1",
  "id": "comeonoliver-skillshub-apollo-hello-world",
  "kind": "skill",
  "name": "apollo-hello-world",
  "description": "Create a minimal working Apollo.io example. Use when starting a new Apollo integration, testing your setup, or learning basic Apollo API patterns. Trigger with phrases like \"apollo hello world\", \"apollo example\", \"apollo quick start\", \"simple apollo code\", \"test apollo api\".",
  "publisher": "ComeOnOliver",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding",
      "general_chat"
    ],
    "tags": [
      "skill-md",
      "saas",
      "apollo",
      "api",
      "testing",
      "github"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Create a minimal working Apollo.io example. Use when starting a new Apollo integration, testing your setup, or learning basic Apollo API patterns. Trigger with phrases like \"apollo hello world\", \"apollo example\", \"apollo quick start\", \"simple apollo code\", \"test apollo api\"."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "github",
      "repository": "https://github.com/ComeOnOliver/skillshub",
      "path": "skills/jeremylongshore/claude-code-plugins-plus-skills/apollo-hello-world/SKILL.md",
      "ref": "def8531e65114c0fca8fb8551c1871ee0eed705c",
      "url": "https://github.com/ComeOnOliver/skillshub/blob/def8531e65114c0fca8fb8551c1871ee0eed705c/skills/jeremylongshore/claude-code-plugins-plus-skills/apollo-hello-world/SKILL.md",
      "key": "ComeOnOliver/skillshub/skills/jeremylongshore/claude-code-plugins-plus-skills/apollo-hello-world/SKILL.md"
    },
    "allowed_tools": [
      "Read,",
      "Write,",
      "Edit"
    ],
    "license": "MIT"
  },
  "instructions": "# Apollo Hello World\n\n## Overview\nMinimal working example demonstrating the three core Apollo.io API operations: people search, person enrichment, and organization enrichment. Uses the correct `x-api-key` header and `api.apollo.io/api/v1/` base URL.\n\n## Prerequisites\n- Completed `apollo-install-auth` setup\n- Valid API key configured in `APOLLO_API_KEY` environment variable\n\n## Instructions\n\n### Step 1: Search for People (No Credits Consumed)\nThe People API Search endpoint finds contacts in Apollo's 275M+ database. This endpoint is **free** — it does not consume enrichment credits, but it also ",
  "cost": {
    "context_tokens": 1231
  }
}

Fetch it by URL: GET /api/v1/registry/comeonoliver-skillshub-apollo-hello-world/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.