N

Netzhandwerker Agent Tools · Traffic Classify

by Netzhandwerker Agent Tools

POSTBase

$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/classify

1

Calls / 30d

1

Unique payers / 30d

Aug 19

Last called

exact

Payment scheme

Call this service

TypeScript · @x402/fetch
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
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

Pay to0x2880edfff13100677bf97a3cbdf3bc34771c4e5e
AssetUSD Coin · 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
NetworksBase
Schemesexact

Is this your API?

Pin it to the top of Developer Tools and the homepage with a featured placement.

Get featured →

More from Netzhandwerker Agent Tools & similar services