ML-Powered, Not Just Rules
16 signalsGoes beyond simple User-Agent pattern matching. Our ML model combines multiple signal categories to catch sophisticated bots that rule-based systems miss.
Send standard HTTP metadata, get back a calibrated 0–1 bot score with Venn-Abers confidence bounds. No cookies, no fingerprinting, no PII stored. Sixteen signal categories, sub-50ms warm latency, automatic fallback to rules if the service is slow.
Try the APIFree test key, no card. Falls back to rules if the service is slow.
Bot traffic inflates your analytics, wastes server resources, and skews every metric you rely on. Our ML-powered scoring API analyses each request in real time and returns a bot probability score, so you only count the visits that matter.
Goes beyond simple User-Agent pattern matching. Our ML model combines multiple signal categories to catch sophisticated bots that rule-based systems miss.
Returns a 0–1 probability so you can set your own threshold. Block aggressively, flag for review, or just tag and monitor. Your call.
The scoring endpoint stays warm around the clock with automatic health checks every 5 minutes. Typical responses come back in under 50ms, fast enough to sit in your tracking pipeline without adding noticeable latency.
The model scores requests using only standard HTTP metadata, nothing that identifies a person. No cookies set, no fingerprinting scripts, no personal data stored. GDPR and ePrivacy compatible out of the box.
If the scoring service is slow or unavailable, consumers fall back to built-in rule-based detection. Your tracking never breaks.
Every API call is authenticated. Each integration gets its own token with access limited to the endpoints it needs, nothing more.
A REST API with scoped token auth. Score traffic or check service health.
POST /api/bot-score Send request features, get a bot probability score, classification, and optional Venn-Abers calibration interval.
GET /api/bot-score Health check, returns model version and status. Used for warm-up monitoring.
Send request metadata, get a bot probability score with calibration bounds. Scoped token auth, no PII stored.
POST /api/bot-score {
"browserName": "Chrome",
"osName": "Windows",
"deviceType": "desktop",
"asnType": "residential",
"threatScore": 5,
"isEnhanced": true,
"referrerType": "search",
"userAgent": "Mozilla/5.0 ..."
} 200 OK {
"bot_probability": 0.03,
"is_bot": false,
"model_version": "1.0.0",
"features_used": 16,
"bot_probability_low": 0.01,
"bot_probability_high": 0.05
} From raw request to bot score in under 50ms.
Your tracking code gathers standard request metadata from each visitor and sends it to the scoring endpoint.
The model evaluates multiple signal categories and returns a 0–1 bot probability with calibrated confidence bounds.
Set your own threshold: block, flag for review, or tag and monitor. If the service is unavailable, consumers automatically fall back to rule-based detection.
An automated health check pings the endpoint every 5 minutes, keeping the model loaded in memory. Warm requests complete in under 50ms. On the rare cold start (~1.5s), consumers automatically fall back to rule-based detection so tracking is never delayed.
Every API call is authenticated. Each integration gets its own token with access limited to the endpoints it needs, nothing more. Tokens are managed via environment variables, so there is no extra dashboard to maintain.
No. The model scores requests using standard HTTP metadata only. No cookies are set, no fingerprinting scripts run, and no personal data is stored, so it stays compatible with GDPR and ePrivacy.
User-Agent rules miss bots that lie about who they are. The model combines sixteen signal categories, so it catches automated traffic that simple pattern matching lets through.
A calibrated confidence interval around the bot probability. Instead of a single number you get a low and high bound, so you can be stricter where the score is uncertain.
Consumers fall back to built-in rule-based detection, so tracking never blocks. The endpoint is health-checked every five minutes to stay warm: warm responses come back in under 50ms and a rare cold start takes about 1.5s.
You get a 0 to 1 score and set your own threshold. Block aggressively, flag for review, or tag and monitor. The decision stays with you.
Get in touch and we'll help you integrate the scoring API into your tracking pipeline.
Free test key, no card. Falls back to rules if the service is slow.