Détection de bots
La détection de bots attribue à chaque requête entrante un score de probabilité, établi à partir de son adresse IP, de son user agent et de ses signaux techniques. Elle aide un site ou un formulaire à distinguer un visiteur réel d’un robot automatisé, sans bloquer aveuglément le trafic légitime.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Ce que le score évalue
Le service examine plusieurs signaux d’une requête — réputation de l’adresse IP, cohérence du user agent, en-têtes HTTP, cadence des appels — puis renvoie une note unique, du plus faible au plus élevé. Cette note n’affirme pas qu’un visiteur est un robot : elle exprime une probabilité. À vous de fixer le seuil au-delà duquel vous demandez une confirmation, ralentissez la requête ou la mettez de côté pour relecture.
Un score, pas un couperet
Bloquer sur un seul critère produit des faux positifs qui chassent de vrais clients. En raisonnant par score, vous gardez la main : un formulaire de contact peut accepter tout le monde tout en signalant les envois suspects, tandis qu’une billetterie appliquera un seuil plus strict le temps d’une mise en vente. Le même signal sert des politiques différentes selon l’enjeu, sans jamais fermer la porte à un visiteur légitime par excès de zèle.
Brancher la vérification là où le spam arrive
La vérification se lance depuis cette page, en collant les signaux d’une requête, ou s’appelle automatiquement depuis le traitement de votre formulaire via l’API. Les applications mobiles, l’e-mail et Telegram rejoindront bientôt les canaux disponibles. L’idée reste la même : au moment où une inscription ou un message arrive, vous obtenez un score et décidez de la suite, sans dépendre d’un service tiers opaque.
Statut bêta : ce que cela change
Cette capacité est en bêta. Elle fonctionne et renvoie un score dès aujourd’hui, mais le calibrage des signaux évolue encore ; traitez la note comme une aide à la décision, pas comme un verdict. Nous préférons vous le dire clairement plutôt que d’afficher une précision que nous ne pouvons pas garantir. Le tarif, lui, est déjà fixé et affiché.
Cas d’usage
Formulaire de contact noyé sous le spam
Le site de l’Atelier Garnier SARL reçoit chaque nuit des dizaines de messages automatiques. En scorant chaque envoi, l’atelier laisse passer les vraies demandes et met les envois à score élevé en attente de relecture, sans jamais perdre un prospect.
Billetterie d’une association
Une association qui ouvre les inscriptions à un événement applique un seuil strict pendant la mise en vente, pour éviter que des robots ne réservent des places en masse au détriment des adhérents.
Newsletter et fausses inscriptions
Studio Lumen SAS filtre les inscriptions à sa lettre d’information : les adresses soumises par des robots gonflent les statistiques et abîment la délivrabilité. Un score élevé déclenche une double confirmation avant l’ajout.
Questions fréquentes
Sur quoi repose le score ?
Sur des signaux techniques de la requête : réputation de l’adresse IP, cohérence du user agent, en-têtes HTTP et rythme des appels. Aucun de ces éléments ne suffit seul ; c’est leur combinaison qui donne la note.
Le score bloque-t-il les visiteurs à ma place ?
Non. Le service renvoie une note ; la décision reste la vôtre. Vous choisissez le seuil et l’action — accepter, demander une confirmation, ralentir ou mettre en attente. Rien n’est bloqué sans une règle que vous avez posée.
Combien coûte une vérification ?
$0.002 par requête analysée, en dollars US, tarif affiché et sans abonnement. Il n’y a pas de compte à créditer : l’achat de l’accès se règle en une fois, directement.
Que devient l’adresse IP que je transmets ?
Elle est traitée le temps du calcul, sur nos serveurs et via une connexion chiffrée, puis n’est pas conservée pour d’autres usages. Une adresse IP pouvant constituer une donnée personnelle au sens du RGPD, nous la traitons uniquement pour produire le score demandé.
Pourquoi cette capacité est-elle en bêta ?
Parce que le calibrage des signaux continue d’évoluer. Le service renvoie déjà un score utile comme aide à la décision, mais nous ne voulons pas le présenter comme un jugement définitif tant que le réglage n’est pas stabilisé.
Faut-il créer un compte ?
Il n'y a pas d'offre gratuite — les paliers gratuits sont détournés et ralentissent tout le monde. L'accès fonctionne avec un solde prépayé ForHosting KIT : rechargez à partir de $10.00 (il n'expire jamais) et chaque requête est facturée à son prix publié, donc un appel sans solde renvoie HTTP 402. Pas d'abonnement, pas de jetons, pas de crédits inventés, et une tâche en échec n'est jamais facturée.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/verify/bot-score \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/verify/bot-score", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/bot-score",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/bot-score", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/bot-score", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"items": [
"valor-1",
"valor-2"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.bot_score",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |