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
Pour démarrer une intégration Apollo.io ou vérifier rapidement qu'une clé API et un environnement fonctionnent.
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ûrThis 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 faiteExemples
Write a minimal TypeScript example that searches Apollo.io for senior engineers at apollo.io using the x-api-key header.Show me how to call Apollo's people/match endpoint to enrich a contact by email and print their title, company, and LinkedIn URL.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-authsetup - Valid API key configured in
APOLLO_API_KEYenvironment 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 annexesCe 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.mdDepuis 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-authsetup - Valid API key configured in
APOLLO_API_KEYenvironment 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’OpenSkillsopenskills 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 syncMode 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.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.