Le DNS regorge de cas particuliers
SPF, DKIM et DMARC ont chacun leur format d'enregistrement, leurs sélecteurs et leurs règles de recherche. Un script rapide marche sur votre domaine et échoue sur le suivant.
Développeurs
Vérifiez des adresses email, des enregistrements DNS et des textes de cold email depuis votre propre code, sans clé. Donnez les mêmes vérifications à votre agent IA sous forme d'outils MCP. Quand vous avez besoin de votre compte, utilisez la Developer API authentifiée, le CLI firstsales ou le serveur MCP de l'app.
$1 pour 3 jours · Annulez quand vous voulez · Sans engagement
Dix-huit opérations publiques, sans clé
Douze outils MCP pour tout client MCP
Spec OpenAPI 3.1 en JSON et YAML
Developer API et CLI pour votre propre compte
La plupart des équipes refont les mêmes petites vérifications : cette adresse est-elle réelle, ce domaine est-il configuré, cet email va-t-il ressembler à du spam. Chacune prend plus de temps qu'il n'y paraît.
SPF, DKIM et DMARC ont chacun leur format d'enregistrement, leurs sélecteurs et leurs règles de recherche. Un script rapide marche sur votre domaine et échoue sur le suivant.
Un agent IA sans outil adapté lit des pages web et devine. C'est lent, ça casse quand une page change et les réponses ne sont pas fiables.
Quand le seul moyen d'ajouter des contacts ou de lire une campagne est le navigateur, chaque import, rapport et synchronisation devient un travail manuel pour quelqu'un de l'équipe.
Les surfaces publiques répondent aux questions de délivrabilité et de rédaction pour tout le monde, sans clé. Les surfaces de compte agissent sur votre propre espace de travail FirstSales : contacts, campagnes, deals et plus.
Dix-huit opérations pour vérifier des emails, interroger le DNS et les domaines, noter des textes et lire des tutoriels, décrites par un seul document OpenAPI 3.1.
Ouvrir /openapi.jsonDouze de ces vérifications sous forme d'outils MCP en Streamable HTTP, pour qu'un agent les appelle directement au lieu de lire des pages.
Ouvrir le manifeste MCPUne carte du contenu dans /llms.txt et une copie Markdown propre des pages du site pour les LLM et les crawlers qui préfèrent le texte au HTML.
Ouvrir /llms.txtL'API authentifiée pour votre propre espace de travail. Elle couvre les flux du compte et reste distincte de l'API publique de diagnostic de ce site.
Lire la documentation de la Developer APILe paquet npm @firstsales.io/cli installe un binaire nommé firstsales, pour lancer les flux du compte depuis un terminal ou un script.
Lire la référence du CLIUn serveur MCP protégé par OAuth pour les actions dans l'app et les données du compte, pour qu'un agent travaille dans votre compte FirstSales avec votre accord.
Lire le guide du MCP de l'appAjoutez ceci à Claude Desktop, Claude Code ou tout client MCP compatible Streamable HTTP. Les outils apparaissent tout de suite dans votre agent.
{
"mcpServers": {
"firstsales": {
"url": "https://firstsales.io/mcp/"
}
}
}Pas besoin de compte pour essayer l'API publique ou le serveur MCP. Connectez-vous seulement pour agir sur votre propre espace de travail.
Ouvrez /openapi.json ou /api/openapi.yaml et importez-la dans votre générateur de clients, votre explorateur d'API ou votre framework d'agents. Chaque opération, champ et limite y figure.
Envoyez une adresse email en POST à /api/v1/email/validate, ou ajoutez le serveur MCP à votre agent. Sans clé, sans inscription. Lisez les en-têtes RateLimit pour doser vos appels.
Pour les contacts, campagnes et deals de votre espace de travail, utilisez la Developer API, le CLI firstsales ou le serveur MCP de l'app protégé par OAuth.
L'API publique est faite pour être lue d'abord par des machines : une spec, des chemins stables, des limites honnêtes et des erreurs claires.
Un seul document OpenAPI 3.1 décrit chaque opération publique, son corps de requête, sa réponse et sa limite. Générez un client dans le langage de votre choix.
Douze outils en Streamable HTTP, listés dans un manifeste à /.well-known/mcp.json, pour qu'un agent les trouve et les appelle sans code de liaison.
Chaque endpoint vit sous /api/v1. Un changement incompatible sort sous un nouveau préfixe, et v1 garde son contrat.
Chaque réponse porte des en-têtes RateLimit avec la limite, le reste et l'heure de remise à zéro, pour que votre client ralentisse avant d'être refusé.
Au-delà de la limite, vous recevez un 429 avec Retry-After en secondes et un corps JSON avec les champs error, message et hint qui disent quoi faire ensuite.
La Developer API, le CLI firstsales et le serveur MCP de l'app accèdent à votre espace de travail : imports, rapports et synchronisations sans navigateur.
Quatre étapes, de la lecture de la spec à la gestion d'une limite. Les exemples utilisent des données fictives.
Partez de la spec lisible par machine. Elle liste chaque opération publique sous /api/v1 avec sa méthode, ses champs de requête et la forme de sa réponse. Importez-la dans votre explorateur d'API ou votre générateur de clients et vous avez des appels typés en une minute.
Envoyez un corps JSON à l'opération voulue. La validation d'email renvoie 200 même quand l'adresse est mauvaise : lisez donc le champ valid plutôt que le code de statut. La réponse dit aussi si le domaine existe, a des serveurs de messagerie ou est jetable.
Ajoutez le serveur MCP public à votre agent avec une ligne de configuration. Votre agent peut alors valider une adresse, vérifier le DKIM d'un domaine ou noter un objet par un appel d'outil, et lire un tutoriel quand il doit expliquer une étape.
Chaque réponse vous dit où vous en êtes : RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset et RateLimit-Policy. Si vous dépassez, la réponse 429 contient un en-tête Retry-After, et votre client sait exactement combien de temps attendre.
Tous les chemins sont sous https://firstsales.io/api/v1. Les limites s'appliquent par IP sur une fenêtre de 60 secondes. La spec OpenAPI donne le schéma de requête et de réponse de chacune.
| Opération | Ce qu'elle fait | Limite |
|---|---|---|
| POST/api/v1/email/validate | Vérifie qu'une adresse a un vrai domaine, des serveurs de messagerie et un format valide. | 20/min |
| POST/api/v1/email/disposable | Note le domaine d'une adresse selon le risque de boîte jetable ou temporaire. | 20/min |
| POST/api/v1/email/catchall | Indique si un domaine accepte le courrier pour n'importe quelle boîte (catch-all). | 20/min |
| Opération | Ce qu'elle fait | Limite |
|---|---|---|
| POST/api/v1/dns/check | Lance une vérification DNS, d'authentification email ou de sécurité sur un domaine. | 10/min |
| POST/api/v1/dns/dkim | Recherche et vérifie l'enregistrement DKIM d'un domaine pour un sélecteur. | 10/min |
| POST/api/v1/dns/validate | Lance SPF, DKIM, DMARC et MX ensemble, avec un score de confiance. | 10/min |
| POST/api/v1/dns/reverse | Recherche DNS inverse (PTR) pour une adresse IPv4, avec vérification directe. | 10/min |
| Opération | Ce qu'elle fait | Limite |
|---|---|---|
| POST/api/v1/domain/age | Donne l'âge d'enregistrement et la date d'expiration d'un domaine via RDAP. | 10/min |
| POST/api/v1/domain/dns-records | Récupère tous les types d'enregistrements DNS d'un domaine en un appel. | 10/min |
| POST/api/v1/domain/subdomains | Trouve les sous-domaines via les journaux Certificate Transparency. | 5/min |
| Opération | Ce qu'elle fait | Limite |
|---|---|---|
| POST/api/v1/analyze/spam | Note le contenu d'un email selon le risque de mots déclencheurs de spam. | 30/min |
| POST/api/v1/analyze/subject-line | Note un objet de cold email et en propose un meilleur. | 30/min |
| POST/api/v1/analyze/cold-email | Évalue un brouillon complet de cold email sur huit dimensions. | Voir la spec |
| POST/api/v1/analyze/email-body | Note le corps d'un cold email et propose des améliorations. | 30/min |
| POST/api/v1/analyze/personalization | Repère et note les éléments personnels d'un cold email. | Voir la spec |
| Opération | Ce qu'elle fait | Limite |
|---|---|---|
| GET/api/v1/public/tutorials | Liste tous les tutoriels publics de FirstSales. | Voir la spec |
| GET/api/v1/public/tutorials/{slug} | Donne le contenu complet d'un tutoriel par son slug. | Voir la spec |
| GET/api/v1/health | Vérifie que le service fonctionne. | Voir la spec |
Ce sont les règles que la spec OpenAPI déclare dans x-apiVersioning, x-deprecationPolicy et x-rateLimit. La spec renvoie directement vers cette section.
La version de l'API figure dans le chemin de l'URL. La version actuelle est v1, donc chaque endpoint est accessible à https://firstsales.io/api/v1/<operation>.
Un changement incompatible sort sous un nouveau préfixe, et v1 garde son contrat. La forme sans préfixe /api/<operation> est un alias de la version actuelle et peut changer sans préavis, donc appelez la forme /api/v1/.
Une version reste prise en charge au moins 180 jours après l'annonce de son remplacement.
Une fois une version dépréciée, ses réponses portent Deprecation: true et un en-tête Sunset avec la date de retrait (RFC 8594), ainsi qu'un en-tête Link vers les notes de migration. Les retraits sont annoncés sur cette page. Aucune version n'est dépréciée aujourd'hui.
Chaque endpoint est limité par IP sur une fenêtre de 60 secondes : 20 par minute pour les vérifications d'emails, 10 pour les recherches DNS et de domaine et 30 pour la notation des textes. Chaque réponse porte les champs d'en-tête RateLimit de l'IETF, pour qu'un client se régule sans attendre un refus.
L'endpoint répond 429 avec un en-tête Retry-After en secondes et un corps JSON contenant error, message et hint.
HTTP/1.1 429 Too Many Requests
Retry-After: 41
Content-Type: application/json
{ "error": "...", "message": "...", "hint": "..." }“I've been using FirstSales.io for several months now, and I can confidently say it has revolutionized how I approach lead generation and customer acquisition.”
Paweł StelmachSmall business owner · TrustpilotSept habitudes qui gardent vos intégrations en état de marche quand le trafic grandit et que les versions changent.
Si vous n'avez besoin que de vérifications sans compte, comme valider un email, vérifier le DNS ou noter un texte, utilisez l'API publique ou le serveur MCP public. Pour les contacts, campagnes ou deals de votre espace de travail, utilisez la Developer API, le CLI firstsales ou le serveur MCP de l'app. Les confondre est la première erreur la plus courante.
La forme sans préfixe /api/<operation> est un alias de la version actuelle et peut changer sans préavis. Appelez https://firstsales.io/api/v1/<operation> pour que votre code garde le contrat v1 quand une nouvelle version sort.
Les clients écrits à la main dérivent. Générez-en un depuis /openapi.json et régénérez-le quand la spec change. Vous obtenez les bons noms de champs, les bons types et la limite de chaque opération en une étape.
Certaines vérifications répondent 200 à une mauvaise entrée parce que la vérification elle-même a fonctionné. La validation d'email en fait partie : une adresse invalide renvoie 200 avec valid à false. Décidez selon les champs du corps.
Lisez RateLimit-Remaining et RateLimit-Reset sur chaque réponse. Ralentissez quand il reste peu d'appels au lieu d'attendre un 429. Les vérifications d'emails permettent 20 appels par minute, les recherches DNS et de domaine 10 et la notation des textes 30.
Quand vous atteignez la limite, attendez le nombre de secondes indiqué par Retry-After avant de réessayer. Le champ hint du corps JSON dit quoi changer. Ne réessayez pas en boucle serrée : cela garde la fenêtre pleine.
Une version reste prise en charge au moins 180 jours après l'annonce de son remplacement. Une fois une version dépréciée, les réponses portent Deprecation: true, un en-tête Sunset avec la date de retrait et un en-tête Link vers les notes de migration. Aucune version n'est dépréciée aujourd'hui.
Les mêmes vérifications, de deux façons.
Des scripts à maintenir.
Une spec, une URL de base.
Ce qu'il faut pour lancer des vérifications de prospection et des flux de compte depuis le code, à la main et avec FirstSales.
| Ce que vous obtenez | Tout construire soi-même | FirstSales |
|---|---|---|
| Vérification d'adresses | Vos propres recherches MX | Appels de validation, jetable et catch-all |
| SPF, DKIM et DMARC | Un parseur par type d'enregistrement | Un appel ou tous ensemble, avec un score |
| Notation des textes | Des listes de mots à maintenir | Spam, objet, corps et brouillon complet |
| Contrat lisible par machine | Ce que fait le code | OpenAPI 3.1 en JSON et YAML |
| Accès pour les agents | Lecture de pages | Serveur MCP public avec douze outils |
| Limites d'usage | Découvertes à vos dépens | Par IP, affichées dans les en-têtes |
| Versions | Aucune | /api/v1 avec 180 jours de préavis de dépréciation |
| Votre compte depuis le code | Le navigateur | Developer API, CLI et serveur MCP de l'app |
| Démarrez votre essai à $1 | ||
Passez-les en revue avant que votre intégration soit en ligne.
De vrais mots de vrais utilisateurs, dans leur langue d'origine. Pas d'avis payés.
“User Interface, Ease of Use, Able to hit the inbox in the first attempt.”
Sadashiv B.
Founder, small business
“One of the biggest pains in cold email is making sure that you have your DNS setup correctly. Firstsales has created a system to make sure you have done this correctly.”
Mike O
Trustpilot review
“I have always struggled in cold outreach. However, Firstsales has provided an excellent tool for cold outreach.”
Kaushal S.
Founder, small business
Vous ne trouvez pas la vôtre ? Écrivez-nous.
Pas pour l'API publique ni pour le serveur MCP public. Ils couvrent la vérification d'emails, les recherches DNS et de domaine, la notation des textes et les tutoriels. Vous n'avez besoin de votre compte que pour la Developer API, le CLI firstsales et le serveur MCP de l'app.
La spec publique est en OpenAPI 3.1, à /openapi.json en JSON et à /api/openapi.yaml en YAML. La Developer API authentifiée a sa propre spec sur developer.firstsales.io.
Ajoutez un serveur nommé firstsales avec l'URL https://firstsales.io/mcp/ dans la configuration de votre client MCP. Il utilise Streamable HTTP, et les outils sont listés dans le manifeste à /.well-known/mcp.json.
Les limites s'appliquent par IP sur une fenêtre de 60 secondes : 20 appels par minute pour les vérifications d'emails, 10 pour les recherches DNS et de domaine et 30 pour la notation des textes. La limite exacte de chaque opération figure dans la spec sous x-rateLimit, et chaque réponse porte des en-têtes RateLimit.
L'endpoint répond 429 avec un en-tête Retry-After en secondes et un corps JSON avec les champs error, message et hint. Attendez la durée de Retry-After avant de rappeler.
La version figure dans le chemin. La version actuelle est v1, donc appelez https://firstsales.io/api/v1/<operation>. Un changement incompatible sort sous un nouveau préfixe, et une version reste prise en charge au moins 180 jours après l'annonce de son remplacement.
Installez le paquet npm @firstsales.io/cli. Il ajoute un binaire nommé firstsales. La référence du CLI sur developer.firstsales.io liste chaque commande.
Oui. L'API publique fonctionne sans compte. Pour essayer l'app et les surfaces de votre compte, lancez un essai pour $1 pour 3 jours. Les abonnements commencent à $29/mois avec des boîtes et des espaces de travail illimités.
Connectez des boîtes illimitées et laissez les agents IA trouver les leads, écrire chaque email et relancer. Ou envoyez vos propres modèles en mode manuel. À partir de $29/mois.
$1 pour 3 jours · Annulez quand vous voulez · Sans engagement