"ja3": "771,4865-4866-4867-49195-49196-49199-49200-49171-49192-156-157-47-53-10,0-23-65281-10-11-35-16-13-51-45-43-21,29-23-24-25-4588-25497-65074,0",<br>"ja3_hash": "1449472ba4c4ddb602762f628f080be4",<br>"tls_client_version": "TLS 1.2 (legacy field)",<br>"cipher_count": 14,<br>"extension_count": 12,<br>"alpn": [<br>"h2",<br>"http/1.1"<br>],<br>"has_grease": false,<br>"verdict": {<br>"label": "Automation / library fingerprint",<br>"detected_client": "Unknown non-browser TLS stack (OpenSSL / BoringSSL family)",<br>"browser_like": false,<br>"reasons": [<br>"No GREASE values — real Chrome/Firefox/Edge always inject GREASE; their absence is a strong bot signal"<br>},<br>"ip_intel": {<br>"ip": "141.101.99.88",<br>"asn": "AS13335 Cloudflare, Inc.",<br>"org": "Cloudflare WARP",<br>"country": "United Kingdom",<br>"city": "London",<br>"is_datacenter": false,<br>"is_proxy": true<br>},<br>"user_agent": "Mozilla/5.0 (compatible; HackerNewsAggregator/1.0)",<br>"header_order": [<br>"User-Agent",<br>"Accept-Encoding"<br>],<br>"header_warnings": [<br>"Missing Accept-Language — browsers always send it; many scrapers omit it"