Agent Tools
traffic / classify
Classifies supplied access logs when an agent needs to distinguish people, tools, crawlers and harvesters. Send timestamped request records; optional IP and user-agent fields improve grouping. Returns masked client groups, evidence-weighted labels, cadence, path, status, method and session signals. This is an estimate, not proof of identity; records are not stored and raw IP addresses are not returned.
POST https://tools.halowerk.com/v1/traffic/classifyEingaben
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| requests | array | Ja | Access records. Each needs path and either time_unix_s or time. The service caps the whole request body at 256 KB, so long records reach that limit before maxItems. |
| session_gap_s | integer | Nein | Silence after which the next request starts a new session. |
| group_by | string | Nein | How records are grouped into clients. |
| max_clients | integer | Nein | How many clients are reported, largest first. |
| min_requests_per_client | integer | Nein | Clients below this many requests are skipped and counted in clients_skipped. |
Vollständiges Eingabeschema anzeigen
{
"type": "object",
"required": [
"requests"
],
"properties": {
"requests": {
"type": "array",
"minItems": 1,
"maxItems": 2000,
"description": "Access records. Each needs path and either time_unix_s or time. The service caps the whole request body at 256 KB, so long records reach that limit before maxItems.",
"items": {
"type": "object",
"required": [
"path"
],
"properties": {
"time_unix_s": {
"type": "number",
"description": "Request time as Unix seconds."
},
"time": {
"type": "string",
"description": "Request time as an ISO 8601 timestamp."
},
"path": {
"type": "string",
"minLength": 1,
"description": "Requested path, including a query string if relevant."
},
"method": {
"type": "string",
"description": "HTTP method such as GET or POST."
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599,
"description": "HTTP response status."
},
"user_agent": {
"type": "string",
"description": "User-Agent header value."
},
"ip": {
"type": "string",
"description": "Client IPv4 or IPv6 address; output is masked."
},
"bytes": {
"type": "integer",
"minimum": 0,
"description": "Response body size in bytes."
},
"referer": {
"type": "string",
"description": "Referer header value."
}
},
"additionalProperties": false,
"anyOf": [
{
"required": [
"time_unix_s"
]
},
{
"required": [
"time"
]
}
],
"examples": [
{
"time_unix_s": 1786000000,
"path": "/products/100",
"method": "GET",
"status": 200,
"user_agent": "python-requests/2.32.3",
"ip": "203.0.113.44"
}
]
}
},
"session_gap_s": {
"type": "integer",
"minimum": 60,
"maximum": 86400,
"default": 1800,
"description": "Silence after which the next request starts a new session."
},
"group_by": {
"type": "string",
"enum": [
"ip",
"user_agent",
"ip_user_agent",
"none"
],
"default": "ip_user_agent",
"description": "How records are grouped into clients."
},
"max_clients": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"default": 100,
"description": "How many clients are reported, largest first."
},
"min_requests_per_client": {
"type": "integer",
"minimum": 1,
"maximum": 1000,
"default": 2,
"description": "Clients below this many requests are skipped and counted in clients_skipped."
}
},
"examples": [
{
"requests": [
{
"time_unix_s": 1786000000,
"path": "/products/100",
"method": "GET",
"status": 200,
"user_agent": "python-requests/2.32.3",
"ip": "203.0.113.44"
}
],
"group_by": "ip_user_agent"
}
]
}Veröffentlichtes Eingabebeispiel
{
"requests": [
{
"time_unix_s": 1786000000,
"path": "/products/100",
"method": "GET",
"status": 200,
"user_agent": "python-requests/2.32.3",
"ip": "203.0.113.44"
},
{
"time_unix_s": 1786000060,
"path": "/products/101",
"method": "GET",
"status": 200,
"user_agent": "python-requests/2.32.3",
"ip": "203.0.113.44"
},
{
"time_unix_s": 1786000120,
"path": "/products/102",
"method": "GET",
"status": 200,
"user_agent": "python-requests/2.32.3",
"ip": "203.0.113.44"
},
{
"time_unix_s": 1786000180,
"path": "/products/103",
"method": "GET",
"status": 404,
"user_agent": "python-requests/2.32.3",
"ip": "203.0.113.44"
},
{
"time_unix_s": 1786000240,
"path": "/products/104",
"method": "GET",
"status": 200,
"user_agent": "python-requests/2.32.3",
"ip": "203.0.113.44"
}
],
"group_by": "ip_user_agent"
}Ergebnis & Dokumentation
Maschinenlesbare Dokumentation dieses Hubs
Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 15:19 UTC.
Weitere Endpunkte dieses Hubs
- Agent Tools0,002 USDC
abtest / evaluate
POSThttps://tools.halowerk.com/v1/abtest/evaluateReads one conversion experiment two ways at once. Frequentist: two-proportion test, p value, confidence interval on the absolute lift, and the sample size the requested minimum detectable effect needs at the requested power. Bayesian: Beta-
- Agent Tools0,002 USDC
address / validate
POSThttps://tools.halowerk.com/v1/address/validateParse, validate and normalize a supplied postal address. See the linked schema for inputs, coverage and limitations.
- Agent Tools0,004 USDC
agent / access
POSThttps://tools.halowerk.com/v1/agent/accessInspect published access rules for software agents on a web page. See the linked schema for inputs, coverage and limitations.