Vous cherchez une présentation générale ? Consultez la page sur l’API de vérification d’email ou sur l’API de validation d’email pour les formulaires d’inscription (en anglais).

Documentation de l’API de vérification d’adresse mail

Vérifiez une adresse mail, lancez des vérifications en masse et contrôlez en détail les adresses catch-all et protégées par une SEG. Tous les endpoints utilisent JSON et une authentification par clé API. Seules les vérifications réussies sont facturées.

Introduction

L’API Giggal.ai vous permet de vérifier une adresse mail, de lancer des vérifications en masse jusqu’à 50 000 emails par tâche et de contrôler en détail les adresses catch-all et protégées par une SEG. Elle utilise une API REST simple au format JSON. Chaque vérification réussie consomme des crédits de votre compte.

URL de base
https://api.giggal.ai/v1
Obtenir une clé API

Créez une clé API depuis votre tableau de bord Giggal.ai : ouvrez l’onglet Developer API dans la barre latérale et cliquez sur Create API Key. Chaque clé est liée à votre compte, suit sa propre utilisation et peut être révoquée à tout moment.

Ouvrir l’onglet Developer API
Format de la réponse

Chaque réponse suit la même structure JSON :

// Success
{ "success": true, "data": { ... }, "meta": { ... } }

// Error
{ "success": false, "error": "Human-readable error message" }
Démarrage rapide : vérifier une adresse avec cURL
curl -X POST https://api.giggal.ai/v1/verify \
  -H "Authorization: Bearer tp_live_xxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"email":"info@giggal.ai"}'

Authentification

Envoyez votre clé API avec chaque requête, dans l’un des deux en-têtes suivants. Les deux fonctionnent.

Option 1 : jeton Bearer
Authorization: Bearer tp_live_xxxxxxxxxxxxxxxxxxxxxxxxx
Option 2 : en-tête X-API-Key
X-API-Key: tp_live_xxxxxxxxxxxxxxxxxxxxxxxxx

Une clé absente, invalide ou révoquée renvoie une erreur HTTP 401. N’exposez jamais vos clés API dans du code côté client. Faites passer les appels par votre backend.

Idempotence (en masse et catch-all)

Pour POST /v1/verify-batch et POST /v1/catchall, envoyez un en-tête Idempotency-Key. Une nouvelle tentative avec la même clé renvoie la réponse d’origine. Aucune tâche en double n’est créée et les crédits ne sont pas débités deux fois.

Idempotency-Key: 2026-07-24-list-batch-42

Vérification unitaire

1 endpoint dans ce groupe.

POST/v1/verify

Vérifier une adresse mail

Vérifie une adresse mail de façon synchrone. Coûte 1 crédit. Si le domaine est catch-all, la vérification approfondie se fait dans la même requête et la réponse inclut catch_all_score et catch_all_verdict.

Autorisations
api_key_auth
Corps de la requête
email
Obligatoire
string
L’adresse mail à vérifier.

Vérification en masse

3 endpoints dans ce groupe.

POST/v1/verify-batch

Envoyer une tâche de vérification en masse

Envoyez jusqu’à 50 000 emails par tâche. Le traitement est asynchrone : interrogez GET /v1/jobs/:jobId pour suivre l’avancement. Envoyez un en-tête Idempotency-Key pour relancer la création d’une tâche sans double facturation.

Autorisations
api_key_auth
Corps de la requête
emails
Obligatoire
string[]
Liste des adresses mail à vérifier. 50 000 au maximum par tâche. Les doublons et les adresses mal formées sont retirés côté serveur.
name
string
Nom facultatif de la tâche, lisible par un humain. Affiché dans votre tableau de bord.
GET/v1/jobs/:jobId

Obtenir le statut d’une tâche en masse

Interrogez cet endpoint pour suivre l’avancement. Évolution du statut : processing → completed (ou failed). Intervalle d’interrogation conseillé : 10 à 15 secondes. Les petites listes (moins de 50 emails) se terminent en général en moins de 30 secondes.

Autorisations
api_key_auth
Paramètres de chemin et de requête
jobId
Obligatoire
string
L’identifiant de tâche renvoyé par POST /v1/verify-batch.
GET/v1/jobs/:jobId/results

Obtenir les résultats d’une tâche en masse

Quand le statut est "completed", récupérez les résultats de chaque email. Les résultats sont paginés : envoyez les paramètres de requête page et limit. Les résultats sont conservés 48 heures (voir resultsExpiresAt sur la tâche).

Autorisations
api_key_auth
Paramètres de chemin et de requête
jobId
Obligatoire
string
L’identifiant de la tâche.
page
integer
Numéro de page, 1 par défaut.
limit
integer
Résultats par page, 25 par défaut, 500 au maximum.

Vérification catch-all

4 endpoints dans ce groupe.

POST/v1/catchall

Lancer une tâche de vérification catch-all

Lance la vérification catch-all approfondie pour une tâche en masse terminée. Seules les adresses marquées catch-all dans la tâche d’origine sont vérifiées à nouveau. Facturé 1 crédit par adresse (voir creditsRequired dans la réponse).

Autorisations
api_key_auth
Corps de la requête
jobId
Obligatoire
string
L’identifiant d’une tâche de vérification en masse terminée. Seules les adresses catch-all de cette tâche sont vérifiées en détail.
name
string
Nom facultatif de la tâche, lisible par un humain.
GET/v1/catchall/:taskId

Obtenir le statut d’une tâche catch-all

Interrogez cet endpoint pour suivre l’avancement et les compteurs verdictCounts mis à jour. Une tâche catch-all prend en général de quelques secondes à quelques minutes, selon le volume.

Autorisations
api_key_auth
Paramètres de chemin et de requête
taskId
Obligatoire
string
L’identifiant de tâche renvoyé par POST /v1/catchall.
GET/v1/catchall/:taskId/results

Obtenir les résultats d’une tâche catch-all

Récupère les résultats paginés de chaque email, avec le détail du score (signaux de tri du domaine et âge du domaine).

Autorisations
api_key_auth
Paramètres de chemin et de requête
taskId
Obligatoire
string
L’identifiant de la tâche.
page
integer
Numéro de page, 1 par défaut.
limit
integer
Résultats par page, 25 par défaut, 500 au maximum.
verdict
string
Filtrer par résultat : valid | invalid.
GET/v1/catchall/:taskId/download

Télécharger les résultats catch-all en CSV

Télécharge tous les résultats d’une tâche catch-all terminée dans un fichier CSV avec les colonnes Email, Score et Verdict. Le Content-Type est text/csv.

Autorisations
api_key_auth
Paramètres de chemin et de requête
taskId
Obligatoire
string
L’identifiant de la tâche.
verdict
string
Filtrer par résultat : valid | invalid.

Compte

1 endpoint dans ce groupe.

GET/v1/credits

Obtenir le solde de crédits

Renvoie le solde de votre compte : crédits disponibles, réservés (bloqués pour les tâches en cours) et totaux depuis l’ouverture du compte. Les vérifications au résultat "unknown" sont remboursées automatiquement et apparaissent ici.

Autorisations
api_key_auth

Erreurs et limites de requêtes

StatutSignification
200 OKLa requête a réussi (vérification synchrone, ou lecture d’un statut ou de résultats).
202 AcceptedLa tâche asynchrone a été créée et mise en file d’attente.
400 Bad RequestParamètres absents ou invalides (format d’email incorrect, liste emails vide, jobId absent).
401 UnauthorizedClé API absente, invalide ou révoquée.
402 Payment RequiredCrédits insuffisants pour l’opération demandée.
404 Not FoundL’identifiant de tâche n’existe pas dans votre compte.
409 ConflictLa tâche n’est pas dans l’état requis (par exemple, résultats demandés avant la fin).
410 GoneLes résultats de la tâche ont dépassé la durée de conservation de 48 heures.
429 Too Many RequestsLimite de requêtes dépassée. Attendez, puis réessayez.
500 / 502 / 503Le serveur ou le service de vérification en amont est temporairement indisponible.

Limites de requêtes

Chaque réponse inclut les en-têtes RateLimit-Limit, RateLimit-Remaining et RateLimit-Reset (casse RFC), pour vous aider à espacer vos requêtes. RateLimit-Reset indique le nombre de secondes avant la réinitialisation de la fenêtre en cours.

CatégorieLimite
Tous les endpoints (par défaut)300 requêtes / 15 minutes
Création de tâches (POST /v1/verify-batch, POST /v1/catchall)30 requêtes / 15 minutes
Suivi des tâches (GET /v1/jobs/:id, GET /v1/jobs/:id/results)600 requêtes / 15 minutes
Nombre maximal d’emails par tâche en masse50 000
Conservation des résultats48 heures

Il y a trois niveaux de limite, car le suivi d’une tâche se fait plus souvent que sa création. Vous pouvez interroger l’API toutes les quelques secondes pendant qu’une tâche tourne. La limite de 600 / 15 min (environ 40 par minute) vous laisse donc de la marge sans surcharger le serveur.

Besoin de limites plus élevées ?

Nous relevons régulièrement les limites pour les partenaires d’intégration vérifiés.

Nous contacter

Format de la réponse 429

Quand vous atteignez une limite, l’API renvoie une erreur HTTP 429 avec ce corps :

{
  "success": false,
  "message": "Developer API rate limit exceeded"
}

Avant de réessayer, attendez le nombre de secondes indiqué dans l’en-tête RateLimit-Reset (temps restant avant la réinitialisation de la fenêtre).

Prêt à intégrer l’API ?

Créez votre clé API en quelques secondes. Des crédits d’essai gratuits sont inclus, pour tout tester de bout en bout avant de payer.