Apollo Hello World

VérifiéSûr

Créez un exemple minimal fonctionnel d'Apollo.io. Utilisez-le pour démarrer une intégration Apollo ou tester l'API.

Spar Skills Guide Bot
DeveloppementDébutant
25/07/2026
Claude CodeCodex
#apollo-io#api-integration#quickstart#data-enrichment#typescript

Recommandé pour

Synthèse automatique

Génère un exemple minimal et fonctionnel d'intégration à l'API Apollo.io couvrant la recherche de personnes, l'enrichissement d'une personne et celui d'une organisation, en TypeScript et en Python.

Points forts

  • Fournit du code directement exécutable avec le bon en-tête `x-api-key` et l'URL de base `api.apollo.io/api/v1`
  • Distingue clairement l'endpoint de recherche, gratuit et sans email/téléphone, des endpoints d'enrichissement qui consomment des crédits
  • Propose des équivalents TypeScript et Python pour les mêmes opérations
  • Couvre les trois opérations de base (recherche de personnes, people/match, organizations/enrich) avec les champs de réponse affichés

Limites

  • Suppose que la clé API est déjà configurée via `APOLLO_API_KEY` et que l'étape `apollo-install-auth` est faite
  • Ne traite ni la gestion des erreurs HTTP, ni le rate limiting, ni la pagination au-delà de la première page
  • Le fichier fourni est tronqué à l'étape Python, l'exemple Python n'est donc pas complet
Quand l'utiliser

Pour démarrer une intégration Apollo.io ou vérifier rapidement qu'une clé API et un environnement fonctionnent.

Quand l'éviter

Pour un cas d'usage en production nécessitant gestion des erreurs, pagination, quotas de crédits ou webhooks, qu'il faudra compléter soi-même.

Analyse de sécurité

Sûr
Score qualité86/100

This is a documentation-style skill containing example code that calls the Apollo.io API using an API key read from the APOLLO_API_KEY environment variable. No destructive commands, shell execution (curl|sh), obfuscated payloads, credential exfiltration, or safety-disabling instructions are present. The declared tools (Read, Write, Edit) are appropriate for authoring example files, and the network calls are legitimate, intended API usage against api.apollo.io using the user's own credentials.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

TypeScript quick start
Write a minimal TypeScript example that searches Apollo.io for senior engineers at apollo.io using the x-api-key header.
Enrich a person by email
Show me how to call Apollo's people/match endpoint to enrich a contact by email and print their title, company, and LinkedIn URL.
Organization lookup
Generate a Python script that enriches an organization by domain with Apollo's organizations/enrich endpoint and prints industry, headcount, and revenue.

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". allowed-tools: Read, Write, Edit version: 1.0.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io compatible-with: claude-code, codex, openclaw tags: [saas, apollo, api, testing]


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.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/apollo-hello-world-mrzxuq3i/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/apollo-hello-world-mrzxuq3i' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/apollo-hello-world-mrzxuq3i/download' --output '.skill-downloads/apollo-hello-world-mrzxuq3i/SKILL.md.part' && mv '.skill-downloads/apollo-hello-world-mrzxuq3i/SKILL.md.part' '.skill-downloads/apollo-hello-world-mrzxuq3i/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Outils déclarés par l’auteur (à vérifier dans votre agent) : Read, Write, Edit

Extrait original : Prerequisites
  • Completed apollo-install-auth setup
  • Valid API key configured in APOLLO_API_KEY environment variable

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/apollo-hello-world-mrzxuq3i/SKILL.md' && test -s '.skill-downloads/apollo-hello-world-mrzxuq3i/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/apollo-hello-world' && cp -R '.skill-downloads/apollo-hello-world-mrzxuq3i' '.claude/skills/apollo-hello-world'

Codex
test -f '.skill-downloads/apollo-hello-world-mrzxuq3i/SKILL.md' && test -s '.skill-downloads/apollo-hello-world-mrzxuq3i/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/apollo-hello-world' && cp -R '.skill-downloads/apollo-hello-world-mrzxuq3i' '.agents/skills/apollo-hello-world'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/apollo-hello-world-mrzxuq3i'

openskills read 'apollo-hello-world-mrzxuq3i'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/apollo-hello-world-mrzxuq3i/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires