bun add openclientidOpenClientID | Open source fingerprinting
Open-source browser and device fingerprinting for fraud prevention
OpenClientID combines browser, device, network, and server signals into a composite fingerprint for anti-fraud and customer tracking, without relying on a brittle single hash.
Your composite fingerprint
Visitor identity
Hello, Unavailable
Derived from component
Loading browser and device signals...
Raw component value
Loading component value...Easy to get started
Add OpenClientID in minutes and start collecting fingerprinting signals immediately.
Initialize fingerprint
const fp = await getFingerprint()Server-side fingerprinting
OpenClientID fingerprints server and network signals in addition to browser and device signals. That includes JA4 , IP addresses, and other server-side indicators. You can self-host the full stack, or sign up and use the managed cloud platform.
Your IP
Unavailable
Your JA4
Unavailable
Client risk
Loading...
Server risk
Loading...
Combined risk
Loading...
Disclaimer: "JA4" is a trademark of FoxIO.
Key features
Composite fingerprints for partial matching
Partial matches help you identify returning users even when the full fingerprint changes.
Fully open source & fully self-hostable
Includes a fingerprinting backend written in Rust.
Extendable & customizable
Want to fingerprint more signals? Add your own components.
We fingerprint a lot
Covers everything ThumbmarkJS and FingerprintJS do (and more).
Pricing
Use OpenClientID however you want: fully free and self-hosted, or managed in the cloud.
Open source and free forever
The OpenClientID library is free to use with unlimited local fingerprints. You can self-host server fingerprinting yourself at no license cost.
Managed cloud is optional
Cloud plans are for hosted infrastructure, team workflows, and managed billing. Use them only if you prefer not to operate the stack yourself.
Starter
For teams shipping their first integration.
Included50,000 calls
Overage€0.50 / 1k calls
Pro
For production traffic and analytics.
Included500,000 calls
Overage€0.30 / 1k calls
Enterprise
Custom limits, deployment, and support.
IncludedCustom
OverageVolume discount
One changed signal should not break identity
User adds a new preferred browser language.
Accept-Language updates from en-US to en-US,de-DE.
FingerprintJS-style single hash
Before
9f3b7b1c5d2e4f80a6c9d7e1
After one signal changes
c5d2e4f8aa6c9d7e14c1d8a9
Match result: no match
Small browser changes produce a new full hash, so this session looks like a different visitor.
OpenClientID composite matching
Before
After one signal changes
Match result: partial match
Only one component changes. The remaining components keep the visitor linked to the same identity.
What we fingerprint
Signals span browser, device, network, rendering, storage, performance, and infrastructure layers.
Evidence-backed comparison
ThumbmarkJS vs FingerprintJS vs OpenClientID
All non-`TODO` claims are mapped to local repository evidence paths. Fingerprint factor support below compares OSS client registries.
Feature comparison
Open-source client
Open-source backend
Full-stack self-hosting (client + backend)
Composite matching
Server-side signals
Extensibility
Managed cloud optional
Identifier model
Total supported fingerprinting factors
ThumbmarkJS32
FingerprintJS46
OpenClientID58
| Feature | ThumbmarkJS | FingerprintJS | OpenClientID |
|---|---|---|---|
| Open-source client | Supported MIT-licensed open-source browser client. | Supported MIT-licensed open-source browser fingerprinting library. | Supported Open-source JS client package in the OpenClientID project. |
| Open-source backend | Not included Managed API integration exists, but backend source code is not publicly available. | Not included FingerprintJS OSS is client-side; Fingerprint Identification backend is closed-source. | Supported Rust backend source is available |
| Full-stack self-hosting (client + backend) | Not included OSS client bundles are hostable, but backend/API implementation is not open-source. | Not included FingerprintJS OSS client can be self-hosted, but Fingerprint Identification backend is closed-source. | Supported Server README includes local run + Docker self-hosting for the full stack. |
| Composite matching | TODO: verify Client returns a single `thumbmark` hash; API matching internals are not open-source. | TODO: verify OSS library computes client-side hashed IDs; paid fuzzy/deduplicated matching happens in the paid closed-source service. | Supported Client builds stable/unstable composite parts and appends server hash with marker-based combined composite. |
| Server-side signals | TODO: verify API version advertises server-side components, but backend implementation details are not publicly available. | TODO: verify Fingerprint Identification server-side processing is closed-source. | Supported Server fingerprint includes TLS, HTTP, and IP components. |
| Extensibility | Supported Supports registering custom components via `includeComponent`. | Supported Documented extension workflow for adding/removing components before hashing. | Supported Component selection is configurable (`FingerprintConfig.components`) and server exposes hook-based extension points. |
| Managed cloud optional | TODO: verify Managed API exists, but pricing/hosting guarantees require verification. | Supported OSS library is available without paid Identification service. | Supported Pricing copy states self-hosted OSS is free and cloud is optional. |
| Identifier model | Supported Returns a `thumbmark` hash and can include `visitorId` from API response. | TODO: verify OSS exposes a hashed visitor identifier; paid VisitorID semantics are part of a closed-source service. | Supported Client exposes composite/stable/unstable identifiers plus server-combined composite outputs. |
| Total supported fingerprinting factors | 32 | 46 | 58 |
Fingerprinting factors
Expand to view the full per-factor comparison.
Pricing comparison
Snapshot values preserve native currencies (`€`, `$`) and are shown without conversion.
Open-source client/library
ThumbmarkJS
Free
FingerprintJS
Free
OpenClientID
€0/month
Free API tier
ThumbmarkJS
Free
FingerprintJS
$0/month
OpenClientID
€0/month
Paid entry tier
ThumbmarkJS
15€ per month
FingerprintJS
$99/month
OpenClientID
€9/month
Higher paid tier
ThumbmarkJS
15€ per month
FingerprintJS
$99/month
OpenClientID
€49/month
Enterprise
ThumbmarkJS
Custom
FingerprintJS
Custom
OpenClientID
Custom
Included API calls
ThumbmarkJS
15,000
FingerprintJS
20,000
OpenClientID
50,000 calls
Additional API calls
ThumbmarkJS
€1.00 / 1,000
FingerprintJS
$4 / 1,000
OpenClientID
€0.50 / 1,000
| Plan / metric | ThumbmarkJS | FingerprintJS | OpenClientID |
|---|---|---|---|
| Open-source client/library | Free | Free | €0/month |
| Free API tier | Free | $0/month | €0/month |
| Paid entry tier | 15€ per month | $99/month | €9/month |
| Higher paid tier | 15€ per month | $99/month | €49/month |
| Enterprise | Custom | Custom | Custom |
| Included API calls | 15,000 | 20,000 | 50,000 calls |
| Additional API calls | €1.00 / 1,000 | $4 / 1,000 | €0.50 / 1,000 |