$0.004
per call · USD Coin on Base
Groups the access records you pass into clients and sorts each in two stages: person or machine, then, for a machine, the purpose. Signals: cadence and its scatter, path shape and consecutive numeric runs, asset share, referer, method mix, not-found share, robots.txt, user agent product token. Each signal returns what was observed, its weight and why. A lead under two points stays unknown. Nothing is stored, no raw IP is returned: IPv4 cut to /24, IPv6 to /48.
Endpoint
POST https://tools.halowerk.com/v1/traffic/classify1
Calls / 30d
1
Unique payers / 30d
Aug 19
Last called
exact
Payment scheme
Call this service
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.PRIVATE_KEY);
const fetchWithPay = wrapFetchWithPayment(fetch, account);
const res = await fetchWithPay("https://tools.halowerk.com/v1/traffic/classify", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"group_by": "ip_user_agent",
"requests": [
{
"ip": "203.0.113.44",
"method": "GET",
"path": "/products/100",
"status": 200,
"time_unix_s": 1786000000,
"user_agent": "python-requests/2.32.3"
},
{
"ip": "203.0.113.44",
"method": "GET",
"path": "/products/101",
"status": 200,
"time_unix_s": 1786000060,
"user_agent": "python-requests/2.32.3"
},
{
"ip": "203.0.113.44",
"method": "GET",
"path": "/products/102",
"status": 200,
"time_unix_s": 1786000120,
"user_agent": "python-requests/2.32.3"
},
{
"ip": "203.0.113.44",
"method": "GET",
"path": "/products/103",
"status": 404,
"time_unix_s": 1786000180,
"user_agent": "python-requests/2.32.3"
},
{
"ip": "203.0.113.44",
"method": "GET",
"path": "/products/104",
"status": 200,
"time_unix_s": 1786000240,
"user_agent": "python-requests/2.32.3"
}
]
}),
});
const data = await res.json();curl -X POST \
"https://tools.halowerk.com/v1/traffic/classify" \
-H "Content-Type: application/json" \
-d '{"group_by":"ip_user_agent","requests":[{"ip":"203.0.113.44","method":"GET","path":"/products/100","status":200,"time_unix_s":1786000000,"user_agent":"python-requests/2.32.3"},{"ip":"203.0.113.44","method":"GET","path":"/products/101","status":200,"time_unix_s":1786000060,"user_agent":"python-requests/2.32.3"},{"ip":"203.0.113.44","method":"GET","path":"/products/102","status":200,"time_unix_s":1786000120,"user_agent":"python-requests/2.32.3"},{"ip":"203.0.113.44","method":"GET","path":"/products/103","status":404,"time_unix_s":1786000180,"user_agent":"python-requests/2.32.3"},{"ip":"203.0.113.44","method":"GET","path":"/products/104","status":200,"time_unix_s":1786000240,"user_agent":"python-requests/2.32.3"}]}' \
-H "X-PAYMENT: <signed x402 payment>"Example response
{
"client_count": 1,
"clients": [
{
"cadence": {
"interval_cv": 0,
"mean_interval_s": 60,
"median_interval_s": 60,
"regular": true,
"sample": 4
},
"classification": {
"automation": {
"confidence": 1,
"label": "automated",
"lead": 6,
"runner_up": {
"label": "human",
"score": 0
},
"scores": {
"automated": 6,
"human": 0
}
},
"confidence": 0.6,
"label": "scraper",
"purpose": {
"confidence": 0.6,
"label": "scraper",
"lead": 2,
"runner_up": {
"label": "tool",
"score": 2
},
"scores": {
"crawler": 0,
"scraper": 6,
"tool": 2
}
},
"reasons": [
{
"evidence": "Intervals between requests vary by less than 15 percent, which is machine timing.",
"favours": "automated",
"observed": "interval_cv=0",
"signal": "cadence_regularity",
"stage": "automation",
"weight": 3
},
{
"evidence": "Consecutive numeric path segments were walked in order.",
"favours": "scraper",
"observed": "1 run(s), longest 5",
"signal": "path_enumeration",
"stage": "purpose",
"weight": 4
}
]
},
"client": {
"grouped_by": "ip_user_agent",
"ip_masked": "203.0.113.0/24",
"user_agent_family": "python-requests"
},
"first_seen_unix_s": 1786000000,
"last_seen_unix_s": 1786000240,
"method_mix": {
"write_ratio": 0
},
"paths": {
"asset_ratio": 0,
"depth_median": 2,
"distinct": 5,
"distinct_ratio": 1,
"enumeration_runs": 1,
"longest_enumeration_run": 5,
"robots_txt_fetched": false
},
"request_count": 5,
"sessions": {
"count": 1,
"longest_duration_s": 240,
"median_duration_s": 240,
"median_requests": 5
},
"status_mix": {
"error_ratio": 0.2,
"not_found_ratio": 0.2
}
}
],
"clients_skipped": 0,
"group_by": "ip_user_agent",
"label_distribution": {
"automated_purpose_unclear": 0,
"crawler": 0,
"human": 0,
"scraper": 1,
"tool": 0,
"unknown": 0
},
"privacy": {
"ip_masking": "IPv4 to /24, IPv6 to /48",
"raw_ip_returned": false,
"stored": false,
"user_agent_returned": "product token only, never the full header"
},
"request_count": 5,
"session_gap_s": 1800,
"stateless": true,
"window": {
"first_unix_s": 1786000000,
"last_unix_s": 1786000240
}
}Payment details
0x2880edfff13100677bf97a3cbdf3bc34771c4e5eUSD Coin · 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913Is this your API?
Pin it to the top of Developer Tools and the homepage with a featured placement.
More from Netzhandwerker Agent Tools & similar services
Netzhandwerker Agent Tools · Currency Normalize
tools.halowerk.com
Findet Betraege in Freitext, deutet deutsche und englische Tausender- und Dezimaltrennung richtig, loest Mio, Mrd, Tsd und k auf, erkennt 50 Waehrungen an Symbol, Code oder Wort einschliesslich USDC und Bitcoin und liefert Zahl, Waehrungscode, kleinste Einheit und Fundstelle getrennt. Rechnet bewusst nicht um.
Netzhandwerker Agent Tools · File Inspect
tools.halowerk.com
Bestimmt den tatsaechlichen Dateityp aus der Signatur, erkennt Office- und Archivinhalte am Verzeichnis, meldet Makros, eingebettete ausfuehrbare Dateien, Pfadwechsel im Archiv, JavaScript und Startaktionen in PDF sowie den Widerspruch zwischen Dateiendung und Inhalt. Die Datei wird weder ausgefuehrt noch gespeichert.
Netzhandwerker Agent Tools · Phone Parse
tools.halowerk.com
Nimmt jede Schreibweise, erkennt die Landeskennzahl aus 150 Vorwahlen, ergaenzt bei nationaler Schreibweise das Standardland, zerlegt in Vorwahl und Teilnehmernummer und bestimmt fuer Deutschland Festnetz, Mobilfunk und Sonderrufnummern mit Kostenhinweis. Liefert E.164, internationale und nationale Schreibweise sowie tel-URI.