Patterns are a dashboard feature only. They are computed server-side from history and are not in the webhook or Management API payload. For per-request decisions in your own code, use the Risk Score and
Details you receive over webhooks.The eight abuse patterns
Each pattern answers one question about how identifiers cluster over time. The name says the shape, the outcome says what it signals.| Pattern | What it flags | Example abuse |
|---|---|---|
| Many Accounts on One Device | One device linked to many accounts. | Multi-accounting, account farms |
| Many Devices on One Account | One account used from many devices. | Account sharing, resale, takeover |
| Changing IDs on One Account | One account that keeps changing its device and visitor IDs. | Scripted activity, anti-detect browsers |
| Many Accounts on One Local IP | Many accounts behind the same Local IP. | Account farms, multi-accounting |
| Multiple Countries on One Account | One account active from many countries in a day. | Account sharing across regions, geo bypass |
| Many Devices on One Visitor | One visitor seen on many devices. | Fingerprint spoofing, anti-detect browsers |
| Shared Local IP Across Multiple Accounts | Accounts share a Local IP while using different devices and different public IPs. | Coordinated fraud, account farms |
| New Device and New Country on One Account | An existing account appears from a new device-and-country pair. | Account takeover, compromised credentials |
How grading works
Every pattern grades an entity on three levels by counting its linked identifiers inside a rolling window.- Normal - the entity has not crossed the Suspicious threshold. The baseline. Nothing is recorded.
- Suspicious - the entity crossed the lower threshold for that pattern in its window.
- Dangerous - the entity crossed the higher threshold. The strongest grade.
The window
Most patterns count over a rolling 30-day window. Three use a shorter one to make the signal meaningful.| Window | Patterns |
|---|---|
| 30 days | Many Accounts on One Device, Many Devices on One Account, Many Accounts on One Local IP, Shared Local IP Across Multiple Accounts, Many Devices on One Visitor |
| 24 hours | Multiple Countries on One Account |
| 7 days | Changing IDs on One Account |
| Recent 7 days vs history | New Device and New Country on One Account |
Two rules shape every grade
- The level never downgrades. Once an entity reaches Dangerous, it stays Dangerous on later runs. Only its current count and last-seen time update.
- Thresholds adapt to the entity’s Risk Score. An entity that already looks anonymous or abusive flags sooner. A low-risk entity has to cross a higher count first.
Where patterns live
Patterns are computed server-side from your historical identify data, then shown on the dashboard Patterns view. A background worker recomputes all eight for each verified domain about every 10 minutes, with one run at startup. There is nothing to trigger and no schedule to configure. The Patterns view gives you three things.- Overlap summary - deduplicated totals across all patterns, so you can tell whether a small set of entities is responsible for most flags. Per-card totals are not additive: an entity matching three patterns counts three times across the cards but once here.
- Pattern cards - one card per pattern, broken down per identifier, each with a Suspicious and a Dangerous sub-count. You can export flagged IDs to CSV or JSON, or open the Data view filtered to that pattern.
- Data view - the request rows behind each flag, with the identifiers, country, signals, and Risk Score that produced it.
Patterns are distinct from per-request signals
Patterns and the per-request Risk Score answer different questions. Use the right one for the job.| Risk Score | Patterns | |
|---|---|---|
| Scope | One visit, in real time | An entity, across history |
| Delivery | Webhook and History API | Dashboard Patterns view only |
| Grades | Clean / Low / Medium / High (0-100) | Normal / Suspicious / Dangerous |
| You act on it | In your own code, per request | By exporting flagged IDs and acting in your own systems |
You export the IDs and decide
The Patterns view is read-only. ShieldLabs surfaces the flagged entities. Your own code owns every allow, challenge, review, or block decision. There is no in-product rules engine and no threshold UI. The workflow is short.Find the coordinated entities
In the overlap summary, compare total against unique affected IDs. A large gap means a few entities are tripping many patterns each.
Open the pattern that matters
Read the per-identifier blocks on the card and their Suspicious and Dangerous sub-counts.
Get the evidence
Open the Data view to inspect the request rows behind the flag and confirm context.
Exports are free. They do not consume request balance. Billing is per identification only. See Billing.
Next steps
Risk Scoring
The per-request 0-100 score, its bands, and the signals behind it.
Stop fake signups
Use the Risk Score and patterns to flag multi-accounting at signup.
Traffic Analytics
The dashboard, the Data view, and how traffic quality is measured.