ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment enrichir des leads avec une API de recherche en Python
Tutoriel

Comment enrichir des leads avec une API de recherche en Python

Enrichissez des listes de leads avec des données d'entreprise, stack technologique et infos de financement en utilisant une API de recherche. Script Python qui traite des leads CSV pour la prospection sortante.

Obtenez une clé API gratuiteDocumentation API

L'enrichissement de leads ajoute du contexte aux listes de contacts brutes en renseignant la taille de l'entreprise, le secteur, la stack technologique, les actualités récentes et les données de financement. Les services d'enrichissement traditionnels comme Apollo facturent 49 $/utilisateur/mois pour des bases de données préconstruites qui deviennent obsolètes. En utilisant une API de recherche, vous pouvez enrichir des leads avec les données publiques les plus récentes pour 0,005 $ par requête. Ce tutoriel construit un pipeline d'enrichissement Python qui prend un CSV de leads, recherche chaque entreprise et produit un tableur enrichi prêt pour la prospection sortante.

Prérequis

  • Python 3.9+ installé
  • bibliothèque requests installée
  • Une clé API Scavio depuis scavio.dev
  • Un fichier CSV avec des noms d'entreprise ou domaines à enrichir

Parcours

Étape 1: Chargez votre liste de leads depuis un CSV

Lisez un CSV contenant au minimum une colonne nom d'entreprise ou domaine. Le script recherchera chaque entreprise et ajoutera des colonnes d'enrichissement.

Python
import csv

def load_leads(csv_path: str) -> list:
    with open(csv_path) as f:
        reader = csv.DictReader(f)
        leads = list(reader)
    print(f'Loaded {len(leads)} leads from {csv_path}')
    return leads

# Expected CSV format:
# company,domain,contact_name,email
# Acme Corp,acme.com,John Doe,[email protected]
# BetaTech,betatech.io,Jane Smith,[email protected]

Étape 2: Construisez la fonction de recherche d'enrichissement

Pour chaque lead, effectuez deux recherches ciblées : une pour l'aperçu de l'entreprise et une pour les actualités récentes. Analysez les extraits SERP pour extraire les points de données clés.

Python
import requests, os

API_KEY = os.environ['SCAVIO_API_KEY']

def search(query: str) -> list:
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us'})
    return resp.json().get('organic_results', [])

def enrich_company(company: str, domain: str = '') -> dict:
    # Company overview search
    overview_query = f'{company} company overview' + (f' site:{domain}' if domain else '')
    overview = search(overview_query)
    overview_snippet = overview[0].get('snippet', '') if overview else ''
    # Recent news search
    news = search(f'{company} funding OR hiring OR launch 2026')
    recent_news = [r.get('title', '') for r in news[:3]]
    return {
        'description': overview_snippet[:200],
        'website': overview[0].get('link', '') if overview else '',
        'recent_news': ' | '.join(recent_news),
        'news_count': len(news)
    }

Étape 3: Extrayez les données structurées des extraits

Analysez les extraits de recherche pour identifier les indicateurs de taille d'entreprise, le secteur et les mentions de stack technologique. Une simple correspondance de mots-clés est efficace pour cela.

Python
import re

def extract_signals(snippets: list) -> dict:
    text = ' '.join(snippets).lower()
    # Company size signals
    size_match = re.search(r'(\d+[,.]?\d*)\+?\s*employees', text)
    size = size_match.group(0) if size_match else 'unknown'
    # Industry detection
    industries = ['saas', 'fintech', 'healthcare', 'ecommerce', 'edtech',
                  'cybersecurity', 'ai', 'logistics', 'real estate', 'marketing']
    detected_industry = next((ind for ind in industries if ind in text), 'unknown')
    # Funding signals
    funding_match = re.search(r'raised\s+\$([\d.]+[mb])', text)
    funding = funding_match.group(0) if funding_match else 'not found'
    # Tech stack mentions
    techs = ['react', 'python', 'aws', 'azure', 'kubernetes', 'shopify',
             'salesforce', 'hubspot', 'stripe', 'twilio']
    tech_stack = [t for t in techs if t in text]
    return {'size': size, 'industry': detected_industry,
            'funding': funding, 'tech_stack': tech_stack}

Étape 4: Traitez tous les leads avec limitation de débit

Enrichissez chaque lead avec un délai entre les requêtes. Deux recherches par lead signifient que 200 leads coûtent 2,00 $ au total.

Python
import time

def enrich_all(leads: list) -> list:
    enriched = []
    for i, lead in enumerate(leads):
        company = lead.get('company', '')
        domain = lead.get('domain', '')
        if not company:
            continue
        data = enrich_company(company, domain)
        # Extract signals from overview snippet
        snippets_query = search(f'{company} company')
        snippets = [r.get('snippet', '') for r in snippets_query[:5]]
        signals = extract_signals(snippets)
        enriched_lead = {**lead, **data, **signals}
        enriched.append(enriched_lead)
        if (i + 1) % 10 == 0:
            print(f'  Enriched {i + 1}/{len(leads)}')
        time.sleep(0.3)
    return enriched

leads = load_leads('leads.csv')
enriched = enrich_all(leads)
print(f'Enriched {len(enriched)} leads')

Étape 5: Enregistrez les leads enrichis dans un CSV

Écrivez les données enrichies dans un CSV. La sortie inclut toutes les colonnes d'origine plus les nouvelles colonnes d'enrichissement.

Python
def save_enriched(leads: list, output_path: str) -> None:
    if not leads:
        print('No leads to save')
        return
    fieldnames = list(leads[0].keys())
    with open(output_path, 'w', newline='') as f:
        writer = csv.DictWriter(f, fieldnames=fieldnames)
        writer.writeheader()
        for lead in leads:
            # Convert lists to strings for CSV
            row = {k: ', '.join(v) if isinstance(v, list) else v
                   for k, v in lead.items()}
            writer.writerow(row)
    credits_used = len(leads) * 3  # 3 searches per lead
    cost = credits_used * 0.005
    print(f'Saved {len(leads)} enriched leads to {output_path}')
    print(f'Credits used: {credits_used} (${cost:.2f})')

save_enriched(enriched, 'enriched_leads.csv')

Exemple Python

Python
import os, csv, re, time, requests

API_KEY = os.environ['SCAVIO_API_KEY']

def search(query):
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us'})
    return resp.json().get('organic_results', [])

def enrich(company, domain=''):
    overview = search(f'{company} company overview')
    news = search(f'{company} funding OR launch 2026')
    return {
        'description': overview[0].get('snippet', '')[:150] if overview else '',
        'recent_news': news[0].get('title', '') if news else '',
    }

def main():
    companies = ['Stripe', 'Notion', 'Linear']
    for c in companies:
        data = enrich(c)
        print(f'{c}: {data["description"][:60]}...')
        print(f'  News: {data["recent_news"][:60]}')
        time.sleep(0.3)
    print(f'Cost: ${len(companies) * 2 * 0.005:.3f}')

if __name__ == '__main__':
    main()

Exemple JavaScript

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;

async function search(query) {
  const resp = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query, country_code: 'us' })
  });
  return (await resp.json()).organic_results || [];
}

async function enrich(company) {
  const [overview, news] = await Promise.all([
    search(`${company} company overview`),
    search(`${company} funding OR launch 2026`)
  ]);
  return {
    description: overview[0]?.snippet?.slice(0, 150) || '',
    news: news[0]?.title || ''
  };
}

async function main() {
  for (const company of ['Stripe', 'Notion', 'Linear']) {
    const data = await enrich(company);
    console.log(`${company}: ${data.description.slice(0, 60)}...`);
  }
}

main().catch(console.error);

Sortie attendue

JSON
Loaded 50 leads from leads.csv
  Enriched 10/50
  Enriched 20/50
  Enriched 30/50
  Enriched 40/50
  Enriched 50/50
Enriched 50 leads
Saved 50 enriched leads to enriched_leads.csv
Credits used: 150 ($0.75)

Stripe: Stripe is a financial infrastructure platform for businesses...
  News: Stripe Raises Series I at $70B Valuation (2026)
Notion: Notion is a connected workspace for docs, wikis, and projects...
  News: Notion Launches AI-Powered Project Management

Tutoriels associés

  • Comment construire un pipeline de prospection commerciale avec une API de recherche
  • Comment construire un pipeline d'extraction d'e-mails Google Maps avec n8n
  • Comment construire un scoring de leads n8n avec les données de l'API de recherche

Questions fréquentes

La plupart des développeurs terminent ce tutoriel en 15 à 30 minutes. Vous aurez besoin d'une clé API Scavio (l'offre gratuite suffit) et d'un environnement Python ou JavaScript fonctionnel.

Python 3.9+ installé. bibliothèque requests installée. Une clé API Scavio depuis scavio.dev. Un fichier CSV avec des noms d'entreprise ou domaines à enrichir. Une clé API Scavio vous donne 50 crédits gratuits à l'inscription.

Oui. L'offre gratuite comprend 50 crédits à l'inscription, ce qui est largement suffisant pour terminer ce tutoriel et prototyper une solution fonctionnelle.

Scavio dispose d'un package natif LangChain (langchain-scavio), d'un serveur MCP et d'une API REST simple qui fonctionne avec tout client HTTP. Ce tutoriel utilise the raw REST API, mais vous pouvez l'adapter à votre framework de prédilection.

Ressources connexes

Glossary

Enrichissement des leads via l'API de recherche

Read more
Best Of

Meilleures API d'enrichissement B2B en mai 2026

Read more
Solution

Enrichissez les leads commerciaux avec des données de recherche au lieu d'Apollo.

Read more
Use Case

Enrichissement de leads B2B API-First

Read more
Use Case

Enrichissement de leads multi-sources

Read more
Best Of

Meilleure API d'enrichissement de leads en 2026

Read more

Commencer

Enrichissez des listes de leads avec des données d'entreprise, stack technologique et infos de financement en utilisant une API de recherche. Script Python qui traite des leads CSV pour la prospection sortante.

Obtenez une clé API gratuiteLire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité