Browsers
The browser SDK supports every browser that runs ES2020 with fetch and AbortController.
| Browser | Supported | Tested on |
|---|---|---|
| Chrome and Chromium browsers | Current versions | Chrome 151 |
| Edge | Current versions | |
| Firefox | Current versions, including strict tracking protection | Firefox 154 |
| Safari on macOS | Current versions | Safari 26.5 |
| Safari on iOS and iPadOS | Current versions | iOS 26 |
| Brave | Current versions | Brave with Shields |
| Tor Browser | Current versions, all security levels | Standard and Safest |
Serve pages over HTTPS. The SDK runs on insecure pages, but several signals are only available in a secure context. localhost counts as secure during development.
Privacy-focused browsers
Browsers that resist fingerprinting are still identified where they allow it, and scored either way. When a browser gives too little to identify anyone, the response has identifiable: false, the fingerprint_suppressed signal fires, and the request costs less. The SDK never triggers a permission prompt in these browsers either.
Mobile
| SDK | Minimum |
|---|---|
| iOS | iOS 13, tvOS 13, Mac Catalyst 13 |
| Android | Android 5.0 (API 21) |
| React Native | React Native 0.74, iOS 13, Android 5.0 |
| Flutter | Flutter 3.10, iOS 13, Android 5.0 |
| Lynx | Lynx 4.1, iOS 13, Android 6.0 |
Web frameworks
| SDK | Minimum |
|---|---|
| React | React 19 |
| Next.js | Next.js 15, React 19 |
| Vue | Vue 3.3 |
| Nuxt | Nuxt 3 |
| Svelte | Svelte 5 |
| Angular | Angular 19 |
Server
| SDK | Minimum |
|---|---|
| Node.js | Node.js 18.16, or any runtime with web fetch |
| Python | Python 3.9 |
| Go | Go 1.21 |
| Java | Java 11 |
| .NET | .NET 6 |
| PHP | PHP 8.1 |
| Ruby | Ruby 3.1 |
| Rust | Rust 1.75, Tokio |
Any other language can use the HTTP API directly.