Agentscan
API Agentscan
Classe une requête : humain, bot connu, agent IA ou automatisation malveillante.
Classer une requête
Paramètres
- ipstringObligatoire
IP du client vue par votre edge.
- user_agentstring
En-tête User-Agent de la requête.
- ja4string
Empreinte TLS JA4 du client.
- headersobject
En-têtes de la requête, pour le contrôle de cohérence.
- headless_flagsobject
Indices d'automatisation relevés dans le navigateur, par exemple webdriver.
- request_idstring
Votre propre id pour la requête, conservé avec le verdict.
Champs de la réponse
- classstring
human, known_bot, ai_agent ou malicious_automation.
- confidencenumber
Confiance de 0 à 1.
- actionstring
Action recommandée : allow, flag ou block.
- signalsobject
Les indices derrière le verdict, par signal.
curl -X POST https://ipscanner.io/v1/agentscan/check \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ip": "203.0.113.7",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) HeadlessChrome/126.0.0.0",
"ja4": "t13d1516h2_8daaf6152771_02713d6af862",
"headers": {
"accept-language": "en-US"
}
}'{
"class": "malicious_automation",
"confidence": 0.91,
"action": "block",
"signals": {
"network_origin": "datacenter",
"anonymized": false,
"headless": true,
"header_consistency": "mismatch",
"allowlist_verified": false,
"ja4": "t13d1516h2_8daaf6152771_02713d6af862"
}
}Classer des lignes de log
Paramètres
- linesobject[]Obligatoire
Jusqu'à 25 000 lignes de log analysées, chacune avec un numéro de ligne et une ip.
Champs de la réponse
- submittedinteger
Éléments reçus.
- processedinteger
Lignes classées.
- failedinteger
Lignes qui n'ont pas pu être classées.
- truncatedboolean
true si l'exécution s'est arrêtée avant la fin.
- byClassobject
Nombre de résultats par classe.
- resultsarray
Un verdict ou une erreur par ligne.
curl -X POST https://ipscanner.io/v1/agentscan/batch \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"lines": [
{
"line": 1,
"ip": "66.249.66.1",
"user_agent": "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
},
{
"line": 2,
"ip": "203.0.113.7",
"user_agent": "python-requests/2.32.3"
}
]
}'{
"submitted": 2,
"processed": 2,
"failed": 0,
"truncated": false,
"reason": "",
"byClass": {
"known_bot": 1,
"malicious_automation": 1
},
"results": [
{
"line": 1,
"ip": "66.249.66.1",
"class": "known_bot",
"confidence": 0.99,
"action": "allow"
},
{
"line": 2,
"ip": "203.0.113.7",
"class": "malicious_automation",
"confidence": 0.84,
"action": "block"
}
],
"asOf": "2026-10-06T14:05:00Z"
}Vérifier un crawler
Paramètres
- ipstringObligatoire
IP d'où venait la requête du crawler.
- botstring
Slug du crawler à vérifier, par exemple googlebot.
- user_agentstring
User-Agent à vérifier au lieu d'un slug de bot.
Champs de la réponse
- outcomestring
verified, spoofed ou unverifiable.
- methodstring
Méthode de vérification du crawler, par exemple ip-list+reverse-dns.
- crawlerstring
Nom affiché du crawler.
- summarystring
Résultat de la vérification en une phrase.
- checksarray
Chaque vérification exécutée, avec son statut.
- hostnamestring
Nom DNS inverse de l'IP.
- checkedAtstring
Moment de la vérification.
curl -X POST https://ipscanner.io/v1/agentscan/verify \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ip":"66.249.66.1","bot":"googlebot"}'{
"ip": "66.249.66.1",
"slug": "googlebot",
"crawler": "Googlebot",
"outcome": "verified",
"method": "ip-list+reverse-dns",
"summary": "Address is in Google's published Googlebot ranges and reverse DNS confirms it.",
"checks": [
{
"name": "published_range",
"status": "pass",
"detail": "66.249.66.0/27"
},
{
"name": "reverse_dns",
"status": "pass",
"detail": "crawl-66-249-66-1.googlebot.com"
}
],
"networkOrigin": "hosting",
"anonymized": false,
"asn": "AS15169",
"asnName": "GOOGLE",
"country": "US",
"hostname": "crawl-66-249-66-1.googlebot.com",
"docs": "https://developers.google.com/search/docs/crawling-indexing/verifying-googlebot",
"checkedAt": "2026-10-06T14:05:00Z"
}Lister l'allowlist
Champs de la réponse
- agents[].identstring
Identifiant du crawler ou de l'agent.
- agents[].typestring
search, ai_crawler ou partner.
- agents[].verificationMethodstring
Comment une requête est rapprochée de cette entrée.
- agents[].customerIdinteger | null
Votre id de compte pour vos propres entrées ; null pour les globales.
curl https://ipscanner.io/v1/agentscan/allowlist \
-H "Authorization: Bearer YOUR_API_KEY"{
"agents": [
{
"id": 1,
"ident": "googlebot",
"type": "search",
"verificationMethod": "reverse_dns:googlebot.com,google.com",
"customerId": null,
"createdAt": "2026-03-01T00:00:00Z"
},
{
"id": 42,
"ident": "partnerbot",
"type": "partner",
"verificationMethod": "ua_match",
"customerId": 17,
"createdAt": "2026-09-12T08:30:00Z"
}
]
}Classer votre propre connexion
Paramètres
- ipstring
Remplace l'IP. Par défaut, celle de l'appelant.
- user_agentstring
En-tête User-Agent de la requête.
- headersobject
En-têtes de la requête, pour le contrôle de cohérence.
- ja4string
Empreinte TLS JA4 du client.
Champs de la réponse
- ipstring
Adresse IP vérifiée.
- ja4Sourcestring
Provenance de l'empreinte : edge, client ou unavailable.
- classstring
human, known_bot, ai_agent ou malicious_automation.
- confidencenumber
Confiance de 0 à 1.
- actionstring
Action recommandée : allow, flag ou block.
- signalsobject
Les indices derrière le verdict, par signal.
- meteredboolean
Toujours false : analyser votre propre requête ne coûte aucun crédit.
curl -X POST https://ipscanner.io/v1/agentscan/self \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'{
"ip": "203.0.113.42",
"userAgent": "curl/8.7.1",
"ja4": "t13d4907h2_0d8feac7bc37_7395dae3b2f3",
"ja4Source": "edge",
"class": "ai_agent",
"confidence": 0.62,
"action": "flag",
"signals": {
"network_origin": "residential_clean",
"headless": false,
"ai_ident": false
},
"metered": false,
"asOf": "2026-10-06T14:05:00Z"
}