{"service":"Agent Tools","endpoint":"/v1/traffic/classify","method":"POST","content_type":"application/json","inputSchema":{"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"}]},"requestExample":{"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"},"operations":[{"method":"POST","inputSchema":{"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"}]},"requestExample":{"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"}}]}