Agentscan
Agentscan API
Stuft eine Anfrage als Mensch, bekannten Bot, KI-Agent oder bösartige Automatisierung ein.
Anfrage einstufen
Parameter
- ipstringErforderlich
Client-IP, wie Ihre Edge sie sieht.
- user_agentstring
User-Agent-Header der Anfrage.
- ja4string
JA4-TLS-Fingerprint des Clients.
- headersobject
Anfrage-Header, für die Konsistenzprüfung.
- headless_flagsobject
Im Browser gesammelte Automatisierungsmerkmale, etwa webdriver.
- request_idstring
Ihre eigene ID für die Anfrage, wird mit dem Urteil gespeichert.
Antwortfelder
- classstring
human, known_bot, ai_agent oder malicious_automation.
- confidencenumber
Konfidenz von 0 bis 1.
- actionstring
Empfohlene Aktion: allow, flag oder block.
- signalsobject
Die Belege hinter dem Urteil, nach Signal geordnet.
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"
}
}Logzeilen einstufen
Parameter
- linesobject[]Erforderlich
Bis zu 25.000 geparste Logzeilen, jeweils mit Zeilennummer und ip.
Antwortfelder
- submittedinteger
Empfangene Elemente.
- processedinteger
Eingestufte Zeilen.
- failedinteger
Zeilen, die nicht eingestuft werden konnten.
- truncatedboolean
true, wenn der Lauf vor dem Ende abbrach.
- byClassobject
Anzahl der Ergebnisse pro Klasse.
- resultsarray
Ein Urteil oder Fehler pro Zeile.
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"
}Crawler verifizieren
Parameter
- ipstringErforderlich
IP, von der die Crawler-Anfrage kam.
- botstring
Crawler-Slug für den Abgleich, etwa googlebot.
- user_agentstring
User-Agent, der statt eines Bot-Slugs verifiziert wird.
Antwortfelder
- outcomestring
verified, spoofed oder unverifiable.
- methodstring
Wie der Crawler verifiziert wird, etwa ip-list+reverse-dns.
- crawlerstring
Anzeigename des Crawlers.
- summarystring
Ergebnis der Prüfung in einem Satz.
- checksarray
Jede ausgeführte Prüfung mit ihrem Status.
- hostnamestring
Reverse-DNS-Name der IP.
- checkedAtstring
Zeitpunkt der Prüfung.
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"
}Allowlist auflisten
Antwortfelder
- agents[].identstring
Kennung des Crawlers oder Agenten.
- agents[].typestring
search, ai_crawler oder partner.
- agents[].verificationMethodstring
Wie eine Anfrage diesem Eintrag zugeordnet wird.
- agents[].customerIdinteger | null
Ihre Konto-ID bei eigenen Einträgen; null bei globalen.
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"
}
]
}Eigene Verbindung einstufen
Parameter
- ipstring
IP überschreiben. Standard ist der Aufrufer.
- user_agentstring
User-Agent-Header der Anfrage.
- headersobject
Anfrage-Header, für die Konsistenzprüfung.
- ja4string
JA4-TLS-Fingerprint des Clients.
Antwortfelder
- ipstring
Geprüfte IP-Adresse.
- ja4Sourcestring
Herkunft des Fingerprints: edge, client oder unavailable.
- classstring
human, known_bot, ai_agent oder malicious_automation.
- confidencenumber
Konfidenz von 0 bis 1.
- actionstring
Empfohlene Aktion: allow, flag oder block.
- signalsobject
Die Belege hinter dem Urteil, nach Signal geordnet.
- meteredboolean
Immer false: Abfragen der eigenen IP kosten keine Credits.
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"
}