Intégrations
Gate de formulaire
Un jeton issu du navigateur du visiteur, vérifié par votre serveur avec le secret du site.
Émettre un jeton
Paramètres
- sitekeystringObligatoire
La clé du site du gate de formulaire, depuis le tableau de bord.
- signalsobjectObligatoire
Indices du navigateur fournis par gate.js : headless_flags, user_agent et client.
Champs de la réponse
- tokenstring
Jeton à usage unique pour le formulaire. Expire au bout de cinq minutes.
- expiresAtstring
Date d'expiration du jeton, ISO 8601.
- errorstring
En cas d'échec : 403 hostname_mismatch (l'Origin de la page ne figure pas parmi les noms d'hôte du gate), 404 unknown_site, 429 rate_limit_exceeded ou quota_exhausted. gate.js envoie alors le formulaire sans jeton.
curl -X POST https://ipscanner.io/v1/gate/token \
-H "Origin: https://shop.example.com" \
-H "Content-Type: application/json" \
-d '{
"sitekey": "site_4fQ8nZ2kLm7xR1vT9cBw",
"signals": {
"headless_flags": {
"webdriver": false,
"headless_ua": false
},
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 Safari/605.1.15"
}
}'{
"token": "Z3RfNGZROG5aMmtMbTd4UjF2VDljQnd8MTc2MDAwMDAwMHxrM3Z4.Qm9yZGVyIGNvbGxpZQ",
"expiresAt": "2026-10-09T09:35:00Z"
}Vérifier un jeton
Paramètres
- secretstringObligatoire
Le secret du gate de formulaire. Côté serveur uniquement, jamais dans une page.
- tokenstringObligatoire
La valeur ipscanner-token envoyée par le formulaire.
- remote_ipstring
L'IP du visiteur telle que la voit votre serveur. Facultatif, renseigne ip_match.
Champs de la réponse
- successboolean
True quand le jeton est valide et inutilisé.
- classstring
verified_bot, malicious_automation, ai_agent, tor, vpn, proxy, relay, hosting ou human.
- actionstring
L'action de votre politique pour la classe : allow, flag ou block.
- modestring
monitor ou enforce. En mode monitor, c'est à vous de décider quoi faire d'un block.
- confidencenumber
Confiance de 0 à 1.
- networkobject
classification, anonymized, provider et vpn_provider. provider et vpn_provider à partir de Starter, null sur Free.
- network.vpn_providerstring | null
Service VPN d'une adresse vpn (NordVPN, Mullvad...), si connu. À partir de Starter, null sur Free.
- signalsstring[]
Les indices d'automatisation déclenchés, comme webdriver. Vide pour un visiteur normal.
- hostnamestring
Le nom d'hôte de la page pour laquelle le jeton a été émis.
- issued_atstring
Date d'émission du jeton, ISO 8601.
- ip_matchboolean
False quand remote_ip est envoyé et diffère de l'adresse pour laquelle le jeton a été émis.
- lockedstring[]
Chemins pointés des champs envoyés à null avec cette formule. Absent à partir de Starter.
- planRequiredstring
Formule qui inclut les champs verrouillés. Absent à partir de Starter.
- errorstring
Avec success à false : 400 missing_token, invalid_token, expired_token, already_used ou hostname_mismatch ; 401 invalid_secret.
curl -X POST https://ipscanner.io/v1/gate/verify \
-H "Content-Type: application/json" \
-d '{
"secret": "gs_YOUR_GATE_SECRET",
"token": "Z3RfNGZROG5aMmtMbTd4UjF2VDljQnd8MTc2MDAwMDAwMHxrM3Z4.Qm9yZGVyIGNvbGxpZQ",
"remote_ip": "203.0.113.7"
}'{
"success": true,
"class": "human",
"action": "allow",
"mode": "enforce",
"confidence": 0.6,
"network": {
"classification": "residential_clean",
"anonymized": false,
"provider": null,
"vpn_provider": null
},
"signals": [],
"hostname": "shop.example.com",
"issued_at": "2026-10-09T09:30:00Z",
"ip_match": true
}