Dropcontact

Webhooks

Recevez les résultats d'enrichissement Dropcontact de façon asynchrone grâce aux webhooks de l'API.

Qu'est-ce qu'un webhook ?

Un webhook est une URL de votre côté que Dropcontact appelle quand vos résultats sont prêts. Au lieu de demander plusieurs fois à l'API si vos données sont prêtes, vous nous donnez une URL et nous y envoyons les résultats dès que l'enrichissement est terminé.

Il y a deux façons de recevoir des webhooks :

  1. La façon recommandée : avec une custom callback URL.
  2. Avec une URL de webhook par défaut.

Vous ne pouvez avoir qu'une seule URL de webhook par défaut par compte. Si une custom_callback_url est indiquée dans la requête POST, elle est prioritaire sur l'URL par défaut.

Votre URL peut commencer par http:// ou https://.

Custom callback URL

Ajoutez le champ custom_callback_url dans le corps de votre requête Enrichir un lot de contacts. Une fois l'enrichissement terminé, les résultats sont envoyés à cette URL. C'est la façon la plus simple d'utiliser les webhooks, sans aucune configuration préalable.

import requests

r = requests.post(
    "https://api.dropcontact.com/v1/enrich/all",
    json={
        "data": [
            {
                "first_name": "Denis",
                "last_name": "Cohen",
                "website": "dropcontact.com",
                "email": "dc@dropcontact.io",
            }
        ],
        "siren": True,
        "custom_callback_url": "https://votre-domaine.com/callback",
    },
    headers={
        "Content-Type": "application/json",
        "X-Access-Token": apiKey,
    },
)

URL de webhook par défaut

Vous pouvez, si vous le souhaitez, définir une URL de webhook par défaut, utilisée pour toutes vos requêtes d'enrichissement qui n'indiquent pas de custom_callback_url.

Gérez-la avec les endpoints dédiés :

Après suppression, seules les requêtes avec une custom_callback_url déclenchent des webhooks.

Recevoir un webhook

Dropcontact envoie une requête POST à votre URL une fois tous les contacts de la requête traités, même si vous avez déjà récupéré une partie des résultats avec forceResults. Son corps est une liste de webhooks au format JSON. Chaque webhook contient les champs suivants :

ChampTypeDescription
idstringIdentifiant unique du webhook.
versionintegerVersion du format du webhook. Actuellement 1.
event_typestringType d'événement. Toujours enrich_api_result pour les résultats d'enrichissement.
occurred_atintegerDate de l'événement, en secondes depuis le 1er janvier 1970 (timestamp Unix).
dataobjectLes résultats : request_id (l'ID de requête retourné par votre requête POST) et data (les contacts enrichis, au même format que Récupérer les résultats d'enrichissement).
[
    {
        "id": "<unique-webhook-id>",
        "version": 1,
        "event_type": "enrich_api_result",
        "occurred_at": 1623153600,
        "data": {
            "request_id": "<your-POST-request-id>",
            "data": [{
                "first_name": "Peter",
                "last_name": "Jackson"
            }]
        }
    }
]

Le champ data ne contient pas le champ credits_left. Utilisez l'endpoint Consulter les crédits pour l'obtenir.

Une requête est toujours envoyée depuis l'une de ces adresses IP : 18.202.84.106, 52.48.65.147 ou 54.74.141.102.

Nous ne garantissons pas l'ordre des webhooks. Utilisez le request_id pour associer chaque webhook à la requête correspondante. De plus, dans de rares cas, vous pouvez recevoir le même request_id dans plusieurs webhooks.

Répondre à un webhook

Votre serveur doit répondre avec un code HTTP inférieur à 400 (par exemple 200) en moins de 5 secondes. Un code de 400 ou plus, une absence de réponse en 5 secondes ou une erreur de connexion compte comme un échec.

En cas d'échec, nous réessayons :

  1. D'abord, jusqu'à 4 essais en quelques secondes.
  2. Ensuite, jusqu'à 10 nouveaux essais plus tard, en attendant un peu plus à chaque fois : 16 secondes, puis 32 secondes, et ainsi de suite, jusqu'à environ 2 heures 15 entre deux essais.

Après ces 14 essais, le webhook est abandonné. Vous pouvez toujours récupérer les résultats avec Récupérer les résultats d'enrichissement.

À cause de ces nouveaux essais, vous pouvez recevoir le même webhook plusieurs fois. Utilisez le request_id pour ignorer ceux que vous avez déjà traités.

Sur cette page