Aller au contenu principal
Guides techniques

API Rodz : endpoints, limites et gestion des erreurs

Peter Cools · · 17 min de lecture

En résumé : Cette page de référence regroupe l’ensemble des endpoints de l’API Rodz, les limites de débit, les codes d’erreur, le format des réponses et la pagination. Gardez-la en favori. C’est le document à consulter chaque fois que vous intégrez un endpoint ou que vous déboguez un appel.

Qu’est-ce que la référence API Rodz ?

La référence API Rodz est le document technique central qui décrit tous les points d’accès disponibles pour interagir avec la plateforme Rodz par programmation. Elle couvre trois grandes familles de fonctionnalités : les signaux d’affaires, l’enrichissement de données et les webhooks.

Contrairement aux guides pas-à-pas qui vous accompagnent dans un cas d’usage précis, cette page de référence adopte une approche exhaustive. Chaque endpoint est documenté avec sa méthode HTTP, son chemin, ses paramètres et son comportement attendu. Vous y trouverez aussi les règles de gestion des erreurs, les limites de débit et le fonctionnement de la pagination.

Ce document s’adresse aux développeurs qui intègrent Rodz dans leur stack technique, aux équipes ops qui automatisent leurs workflows commerciaux et aux architectes qui conçoivent des pipelines de données. Si vous cherchez plutôt une introduction progressive, commencez par le guide de démarrage avec l’authentification et votre première requête.

Prérequis

Avant de plonger dans les endpoints, assurez-vous d’avoir les éléments suivants :

  1. Un compte Rodz actif avec un plan incluant l’accès API. Créez votre compte sur app.rodz.io si ce n’est pas encore fait.
  2. Une clé API valide générée depuis votre tableau de bord. Le guide de démarrage explique la procédure complète.
  3. Un outil pour effectuer des requêtes HTTP : cURL, Postman, Insomnia ou le client HTTP de votre langage de programmation.
  4. Une compréhension de base du format JSON pour lire les réponses et construire les corps de requête.
  5. Les notions de signaux d’affaires et d’enrichissement de données. Consultez le guide des signaux d’affaires et le guide de l’enrichissement pour vous mettre à niveau.

Base URL et authentification

Base URL

Toutes les requêtes vers l’API Rodz utilisent la même URL de base :

https://api.rodz.io/v1

Chaque endpoint documenté dans cette page est relatif à cette base. Par exemple, l’endpoint /signals/feed correspond à l’URL complète https://api.rodz.io/v1/signals/feed.

L’API utilise exclusivement le protocole HTTPS. Les requêtes en HTTP simple sont rejetées.

Authentification

L’API Rodz utilise l’authentification par Bearer token. Incluez votre clé API dans l’en-tête Authorization de chaque requête :

curl -X GET https://api.rodz.io/v1/signals/feed \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Content-Type: application/json"

Quelques règles importantes :

  • Ne partagez jamais votre clé API dans du code côté client ou dans des dépôts publics.
  • Stockez votre clé dans une variable d’environnement ou un gestionnaire de secrets.
  • Si vous pensez que votre clé a été compromise, régénérez-la immédiatement depuis votre tableau de bord.

Pour un guide détaillé sur l’authentification, la rotation des clés et les bonnes pratiques de sécurité, consultez l’article dédié à l’authentification.

Endpoints Signaux d’affaires

Les signaux d’affaires constituent le coeur de la plateforme Rodz. Ces endpoints vous permettent de consulter les types de signaux disponibles, de créer et gérer vos configurations, puis de récupérer les signaux détectés.

Pour comprendre en profondeur ce que sont les signaux d’affaires et comment les utiliser en prospection, lisez le guide complet des signaux d’affaires.

MéthodeEndpointDescription
GET/signals/typesListe des 14 types de signaux
POST/signals/configurationsCréer une configuration
GET/signals/configurationsLister vos configurations
GET/signals/configurations/:idDétail d’une configuration
PUT/signals/configurations/:idModifier une configuration
DELETE/signals/configurations/:idSupprimer une configuration
GET/signals/feedRécupérer vos signaux

GET /signals/types

Retourne la liste complète des 14 types de signaux disponibles sur la plateforme. Chaque type inclut son identifiant unique, son nom, sa description et les filtres applicables. Utilisez cette liste pour choisir les signaux pertinents avant de créer une configuration.

Cet endpoint ne nécessite aucun paramètre. La réponse est identique pour tous les utilisateurs.

POST /signals/configurations

Crée une nouvelle configuration de signaux. Le corps de la requête doit contenir le type de signal, les critères de ciblage (secteur, zone géographique, taille d’entreprise) et la fréquence souhaitée.

Pour un tutoriel étape par étape, consultez le guide Configurer votre premier signal d’affaires via l’API.

{
  "signal_type": "fundraising",
  "filters": {
    "country": "FR",
    "industry": ["saas", "fintech"],
    "employee_range": { "min": 10, "max": 500 }
  },
  "frequency": "daily"
}

GET /signals/configurations

Retourne toutes vos configurations actives. Supporte la pagination (voir la section Pagination plus bas). Vous pouvez filtrer par type de signal avec le paramètre signal_type.

GET /signals/configurations/:id

Retourne le détail d’une configuration spécifique, y compris ses statistiques d’utilisation : nombre de signaux générés, dernier signal détecté, date de création et de dernière modification.

PUT /signals/configurations/:id

Modifie une configuration existante. Vous pouvez mettre à jour les filtres, la fréquence ou le statut (actif/inactif). Le corps de la requête suit le même format que la création, mais seuls les champs fournis sont modifiés.

DELETE /signals/configurations/:id

Supprime définitivement une configuration. Les signaux déjà générés restent accessibles dans votre feed, mais aucun nouveau signal ne sera détecté pour cette configuration.

GET /signals/feed

Récupère les signaux détectés selon vos configurations actives. C’est l’endpoint que vous interrogerez le plus souvent. Il supporte la pagination par curseur et plusieurs paramètres de filtrage :

  • configuration_id : filtrer par configuration spécifique
  • signal_type : filtrer par type de signal
  • since : date de début (format ISO 8601)
  • until : date de fin (format ISO 8601)
  • cursor : curseur de pagination
  • limit : nombre de résultats par page (défaut 50, max 200)

Endpoints Enrichissement

L’enrichissement de données vous permet de compléter les informations sur un contact ou une entreprise à partir d’un identifiant minimal (nom, domaine, email, numéro SIREN). Chaque endpoint est spécialisé dans un type de données.

Pour une vue d’ensemble de l’enrichissement et de ses cas d’usage, consultez le guide de l’enrichissement de données.

MéthodeEndpointDescription
POST/enrich/contactEnrichir un contact
POST/enrich/find-emailTrouver l’email professionnel
POST/enrich/reverse-emailIdentifier un contact par email
POST/enrich/firmographicDonnées firmographiques
POST/enrich/financialDonnées financières
POST/enrich/french-sireneDonnées SIRENE
POST/enrich/tech-stackStack technique
POST/enrich/website-trafficTrafic web
POST/enrich/homepage-contentContenu page d’accueil
POST/enrich/company-jobsOffres d’emploi actives
POST/enrich/profile-postsPublications LinkedIn profil
POST/enrich/company-postsPublications LinkedIn entreprise

POST /enrich/contact

Enrichit un contact à partir de son nom et du domaine de son entreprise. Retourne les informations professionnelles disponibles : poste, département, ancienneté, profil LinkedIn et coordonnées vérifiées.

{
  "first_name": "Marie",
  "last_name": "Dupont",
  "company_domain": "exemple.fr"
}

POST /enrich/find-email

Trouve l’adresse email professionnelle d’un contact à partir de son nom et de son entreprise. L’API vérifie la validité de l’email avant de le retourner. Le champ confidence dans la réponse indique le niveau de certitude (élevé, moyen ou faible).

POST /enrich/reverse-email

Opération inverse : à partir d’une adresse email, identifie le contact et retourne ses informations professionnelles. Utile pour qualifier des leads entrants dont vous ne connaissez que l’email.

POST /enrich/firmographic

Retourne les données firmographiques d’une entreprise : secteur d’activité, taille, chiffre d’affaires estimé, localisation, date de création, forme juridique et structure capitalistique. Accepte un domaine, un nom d’entreprise ou un identifiant SIREN.

POST /enrich/financial

Fournit les données financières publiques d’une entreprise : dernier chiffre d’affaires déclaré, résultat net, effectif, bilans disponibles. Particulièrement complet pour les entreprises françaises grâce aux données légales.

POST /enrich/french-sirene

Requête spécifique aux entreprises immatriculées en France. Retourne les données du répertoire SIRENE : numéro SIREN, SIRET, code NAF, adresse du siège, date de création et statut administratif.

POST /enrich/tech-stack

Analyse la stack technique d’une entreprise à partir de son domaine. Détecte les technologies utilisées : CMS, outils d’analytics, CRM, plateformes publicitaires, frameworks et hébergement. Idéal pour les éditeurs de logiciels qui ciblent des prospects selon leur écosystème technologique.

POST /enrich/website-traffic

Estime le trafic web d’un domaine : visiteurs mensuels, pages vues, durée moyenne de session, sources de trafic et répartition géographique. Ces données permettent d’évaluer la maturité digitale d’un prospect.

POST /enrich/homepage-content

Récupère et analyse le contenu de la page d’accueil d’un site web. Retourne les textes clés, les mots-clés identifiés et un résumé de l’activité. Utile pour personnaliser vos approches commerciales.

POST /enrich/company-jobs

Liste les offres d’emploi actuellement publiées par une entreprise. Le nombre et le type de postes ouverts sont des signaux puissants : une entreprise qui recrute des commerciaux est en phase de croissance, une entreprise qui recrute un CTO envisage peut-être un changement technologique.

POST /enrich/profile-posts

Récupère les publications récentes d’un profil LinkedIn. Permet de comprendre les sujets d’intérêt de votre prospect et de personnaliser votre prise de contact avec des références précises à ses publications.

POST /enrich/company-posts

Récupère les publications récentes d’une page entreprise LinkedIn. Offre une vue sur la communication officielle, les lancements de produits, les événements et la culture d’entreprise.

Endpoints Webhooks

Les webhooks vous permettent de recevoir les signaux en temps réel, sans interroger l’API en permanence. Quand un signal correspond à l’une de vos configurations, Rodz envoie automatiquement une requête POST vers l’URL que vous avez enregistrée.

Pour un guide complet sur la mise en place des webhooks, consultez l’article Recevoir les signaux en temps réel avec les webhooks.

MéthodeEndpointDescription
POST/webhooksEnregistrer un webhook
GET/webhooksLister vos webhooks
DELETE/webhooks/:idSupprimer un webhook
POST/webhooks/:id/testTester un webhook

POST /webhooks

Enregistre un nouveau webhook. Le corps de la requête doit contenir l’URL de destination et, optionnellement, un secret de vérification et les types d’événements à écouter.

{
  "url": "https://votre-serveur.com/rodz-webhook",
  "secret": "votre_secret_de_verification",
  "events": ["signal.new", "signal.updated"]
}

Rodz signe chaque requête avec votre secret via un en-tête X-Rodz-Signature. Vérifiez systématiquement cette signature côté serveur pour garantir l’authenticité des appels.

GET /webhooks

Retourne la liste de vos webhooks enregistrés avec leur statut (actif, inactif, en erreur), la date du dernier appel réussi et le nombre d’appels échoués consécutifs.

DELETE /webhooks/:id

Supprime un webhook. Les appels vers cette URL cessent immédiatement. Si vous souhaitez temporairement désactiver un webhook sans le supprimer, utilisez plutôt une mise à jour de statut.

POST /webhooks/:id/test

Envoie une requête de test vers l’URL de votre webhook avec un payload d’exemple. Utilisez cet endpoint pour valider votre intégration avant de passer en production. La réponse inclut le code HTTP retourné par votre serveur et le temps de réponse.

Limites de débit (Rate Limiting)

L’API Rodz applique des limites de débit pour garantir la stabilité du service pour tous les utilisateurs.

Limites par défaut

  • 100 requêtes par minute par clé API
  • Les limites s’appliquent par clé API, pas par adresse IP
  • Les endpoints d’enrichissement consomment 1 crédit par appel en plus du quota de requêtes

En-têtes de suivi

Chaque réponse de l’API inclut trois en-têtes pour suivre votre consommation :

En-têteDescription
X-RateLimit-LimitNombre maximum de requêtes autorisées par minute
X-RateLimit-RemainingNombre de requêtes restantes dans la fenêtre actuelle
X-RateLimit-ResetTimestamp Unix indiquant quand le compteur sera réinitialisé

Réponse 429 : Too Many Requests

Quand vous dépassez la limite, l’API retourne un code 429 avec un corps JSON indiquant le délai d’attente :

{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Trop de requêtes. Réessayez dans 32 secondes.",
    "retry_after": 32
  }
}

Bonnes pratiques

Pour éviter d’atteindre les limites de débit, adoptez ces stratégies :

  1. Implémentez un backoff exponentiel. En cas de réponse 429, attendez 1 seconde avant le premier retry, puis 2 secondes, puis 4, et ainsi de suite. Ne dépassez pas 5 tentatives.
  2. Utilisez les webhooks plutôt que le polling. Au lieu d’interroger /signals/feed toutes les minutes, enregistrez un webhook qui recevra les signaux en temps réel. Cela réduit considérablement le nombre de requêtes.
  3. Mettez en cache les données statiques. Les réponses de /signals/types changent rarement. Mettez-les en cache côté client pendant 24 heures.
  4. Regroupez vos requêtes d’enrichissement. Plutôt que d’enrichir les contacts un par un au fil de la journée, traitez-les par lots à intervalles réguliers.
  5. Surveillez les en-têtes de débit. Intégrez la lecture de X-RateLimit-Remaining dans votre code pour ralentir proactivement avant d’atteindre la limite.

Codes d’erreur

L’API utilise les codes HTTP standards. Voici la liste complète des codes que vous pouvez rencontrer et l’action recommandée pour chacun :

CodeSignificationAction recommandée
200SuccèsTraiter la réponse normalement
201Créé avec succèsLa ressource a été créée, traiter la réponse
400Requête invalideVérifier le corps de la requête et les paramètres
401Non authentifiéVérifier votre clé API dans l’en-tête Authorization
403Accès refuséVérifier vos permissions et votre plan
404Ressource non trouvéeVérifier l’URL et l’identifiant de la ressource
429Trop de requêtesAttendre le délai indiqué dans retry_after et réessayer
500Erreur serveurRéessayer après quelques secondes, contacter le support si persistant

Structure des erreurs

Toutes les réponses d’erreur suivent le même format JSON :

{
  "success": false,
  "error": {
    "code": "INVALID_PARAMETER",
    "message": "Le champ 'signal_type' est requis.",
    "details": {
      "field": "signal_type",
      "constraint": "required"
    }
  }
}

Le champ code contient un identifiant machine lisible que vous pouvez utiliser dans votre logique de gestion d’erreurs. Le champ message fournit une explication en langage naturel. Le champ details, optionnel, apporte des précisions supplémentaires selon le type d’erreur.

Codes d’erreur applicatifs

En plus des codes HTTP, l’API retourne des codes d’erreur spécifiques dans le champ error.code :

Code applicatifDescription
INVALID_PARAMETERUn paramètre de la requête est invalide
MISSING_PARAMETERUn paramètre requis est absent
RATE_LIMIT_EXCEEDEDLa limite de débit est dépassée
INSUFFICIENT_CREDITSCrédits d’enrichissement insuffisants
CONFIGURATION_LIMITNombre maximum de configurations atteint
WEBHOOK_UNREACHABLEL’URL du webhook ne répond pas
RESOURCE_NOT_FOUNDLa ressource demandée n’existe pas

Format des réponses

Toutes les réponses de l’API sont au format JSON et suivent une structure cohérente.

Réponse simple (succès)

{
  "success": true,
  "data": {
    "id": "sig_abc123",
    "type": "fundraising",
    "company": {
      "name": "TechStartup SAS",
      "domain": "techstartup.fr",
      "siren": "123456789"
    },
    "details": {
      "amount": 5000000,
      "currency": "EUR",
      "round": "Series A",
      "investors": ["Venture Capital Fund"]
    },
    "detected_at": "2026-03-05T09:30:00Z"
  }
}

Réponse avec pagination

Les endpoints qui retournent des listes utilisent la pagination par curseur (voir section suivante). La structure inclut un objet pagination :

{
  "success": true,
  "data": [
    {
      "id": "sig_abc123",
      "type": "fundraising",
      "company": { "name": "TechStartup SAS" },
      "detected_at": "2026-03-05T09:30:00Z"
    },
    {
      "id": "sig_def456",
      "type": "new_hiring",
      "company": { "name": "ScaleUp Inc" },
      "detected_at": "2026-03-05T08:15:00Z"
    }
  ],
  "pagination": {
    "cursor": "eyJpZCI6InNpZ19kZWY0NTYifQ==",
    "has_more": true,
    "total": 847,
    "limit": 50
  }
}

Champs communs

Voici les champs présents dans la plupart des réponses :

ChampTypeDescription
successbooleanIndique si la requête a réussi
dataobject ou arrayLes données demandées
errorobjectPrésent uniquement en cas d’erreur
paginationobjectPrésent pour les endpoints paginés

Pagination

L’API Rodz utilise la pagination par curseur (cursor-based pagination). Cette approche est plus fiable que la pagination par offset, car elle garantit qu’aucun élément ne sera manqué ou dupliqué si des données sont ajoutées entre deux requêtes.

Paramètres de pagination

ParamètreTypeDéfautDescription
cursorstring(vide)Curseur opaque retourné par la requête précédente
limitinteger50Nombre de résultats par page (min 1, max 200)

Fonctionnement

  1. Première requête : appelez l’endpoint sans paramètre cursor. Vous recevez les premiers résultats et un curseur dans pagination.cursor.
  2. Requêtes suivantes : passez le curseur reçu comme paramètre pour obtenir la page suivante.
  3. Dernière page : quand pagination.has_more vaut false, vous avez récupéré tous les résultats.

Exemple de parcours complet

# Première page
curl -X GET "https://api.rodz.io/v1/signals/feed?limit=100" \
  -H "Authorization: Bearer VOTRE_CLE_API"

# Pages suivantes (utiliser le curseur reçu)
curl -X GET "https://api.rodz.io/v1/signals/feed?limit=100&cursor=eyJpZCI6InNpZ19kZWY0NTYifQ==" \
  -H "Authorization: Bearer VOTRE_CLE_API"

Bonnes pratiques de pagination

  • Utilisez un limit adapté à votre cas d’usage. Pour un traitement par lots, 200 réduit le nombre d’appels. Pour un affichage temps réel, 50 offre un bon compromis.
  • Ne stockez pas les curseurs indéfiniment. Ils peuvent expirer après 24 heures d’inactivité.
  • Ne modifiez pas les curseurs. Ce sont des chaînes opaques encodées en base64. Toute modification les invalidera.
  • Si vous recevez une erreur INVALID_CURSOR, recommencez la pagination depuis le début sans curseur.

Questions fréquentes

Quel format de date utiliser dans les paramètres ?

L’API attend des dates au format ISO 8601 : 2026-03-05T09:30:00Z. Le fuseau horaire doit être UTC (suffixe Z). Si vous omettez le fuseau, l’API interprète la date en UTC par défaut.

Comment tester l’API sans consommer de crédits ?

L’endpoint /webhooks/:id/test envoie des données de test sans consommer de crédits. Pour les endpoints d’enrichissement, utilisez l’environnement sandbox si votre plan le permet. Contactez le support pour activer l’accès sandbox.

Les curseurs de pagination expirent-ils ?

Oui. Un curseur devient invalide après 24 heures sans utilisation. Si vous traitez de gros volumes de données, assurez-vous de terminer votre parcours de pagination dans ce délai. En cas de curseur expiré, l’API retourne une erreur INVALID_CURSOR et vous devez recommencer depuis le début.

Puis-je augmenter ma limite de débit ?

Oui. La limite par défaut de 100 requêtes par minute convient à la plupart des usages. Si votre intégration nécessite un débit plus élevé, contactez l’équipe Rodz pour discuter d’un plan adapté. Les limites personnalisées peuvent monter jusqu’à 1 000 requêtes par minute selon votre cas d’usage.

Comment gérer les erreurs 500 ?

Les erreurs 500 sont rares et indiquent un problème côté serveur. Implémentez un retry avec backoff exponentiel (attendre 1 s, puis 2 s, puis 4 s). Si l’erreur persiste après 3 tentatives, contactez le support Rodz en incluant le request_id présent dans les en-têtes de la réponse. Ce champ permet à l’équipe technique d’identifier rapidement la cause.

Quelle est la différence entre /enrich/contact et /enrich/find-email ?

L’endpoint /enrich/contact retourne un profil complet (poste, département, profil LinkedIn, coordonnées) à partir d’un nom et d’un domaine. L’endpoint /enrich/find-email se concentre uniquement sur la recherche et la vérification de l’email professionnel. Si vous n’avez besoin que de l’email, utilisez /enrich/find-email pour une réponse plus rapide et une consommation de crédits optimisée.

Les données d’enrichissement sont-elles mises en cache ?

Oui. Les données d’enrichissement sont mises en cache pendant 7 jours côté serveur. Une requête sur des données déjà en cache retourne les résultats instantanément et ne consomme pas de crédit supplémentaire. Pour forcer un rafraîchissement, ajoutez le paramètre force_refresh=true à votre requête (cela consomme un crédit).

Comment vérifier la signature d’un webhook ?

Chaque appel webhook inclut un en-tête X-Rodz-Signature contenant un hash HMAC-SHA256 du corps de la requête, calculé avec votre secret. Côté serveur, recalculez le hash avec le même secret et comparez-le à la valeur de l’en-tête. Si les deux valeurs correspondent, l’appel est authentique. Le guide webhooks détaille l’implémentation dans plusieurs langages.

Pour aller plus loin

Cette page de référence couvre l’ensemble des endpoints, des limites et des conventions de l’API Rodz. Pour une prise en main progressive, suivez les guides techniques dans l’ordre :

  1. Guide de démarrage : authentification et première requête
  2. Configurer votre premier signal d’affaires via l’API
  3. Recevoir les signaux en temps réel avec les webhooks

Pour explorer l’API de manière interactive avec des exemples exécutables, consultez la documentation API complète.

Vous avez des questions sur l’intégration ou un cas d’usage spécifique ? Réservez un créneau avec l’équipe Rodz pour en discuter.

Partager :

Générez votre stratégie outbound gratuitement

Notre IA analyse votre entreprise et crée un playbook complet : ICP, personas, templates d'emails, scripts d'appels.

Générer ma stratégie