Fingerprint API
The Fingerprint API delivers ready-to-use browser fingerprint profiles for browser automation and anti-detect infrastructure.
Why you'll love this:
- Run automation with realistic fingerprints that blend in with regular users
- Scale up multiple browser sessions without getting flagged
- Quickly match fingerprints to your target OS, browser, device, or location
- Plug fingerprint generation straight into your tools, no manual data collection needed
How it works:
Send a request with your filter parameters, and the API returns a complete fingerprint in a clean, usable format. Everything runs through your existing API key, no extra sign-up required.
What you can do:
- Grab a random, real-world fingerprint from our database, filtered by tags or country
- Generate a fresh fingerprint tailored to your exact specs
API access comes with a subscription. To get started, reach out to our sales team.
Authentication
All endpoints require an API key.
Supported parameters:
keyclientKey
Example:
GET https://api.2captcha.com/fingerprint/random?key=USER_KEY&format=chromium
If the key is missing or invalid, the API returns an authentication error.
You can manage your key in your account settings
Response formats
The format parameter controls the response structure:
chromium— normalized format for Chromium-based clients (default)raw— low-level format for legacy client compatibility
If omitted, chromium is used.
API methods
Quick links:
- /fingerprint/random — random fingerprint
- /fingerprint/generate — generate by parameters
GET /fingerprint/random
Returns a random browser fingerprint from our database, applying your filters.
This method is billable. Your quota is only deducted when a fingerprint is successfully returned.
Request parameters:
| Parameter | Required | Description |
|---|---|---|
key |
Yes | Your API key |
format |
No | chromium or raw, defaults to chromium |
tags |
No | Filter by platform or OS: Windows, Android, iOS, macOS, Linux, and more |
country |
No | Country code in ISO 3166-1 alpha-2 format |
min_browser_version |
No | Minimum browser major version |
browser_version |
No | Specific browser major version |
force_browser_version |
No | Force a specific major version, use only when absolutely necessary |
Example requests:
# With tags and country
GET https://api.2captcha.com/fingerprint/random?key=USER_KEY&format=chromium&tags=Windows&country=us
# With minimum browser version
GET https://api.2captcha.com/fingerprint/random?key=USER_KEY&format=chromium&tags=Windows&min_browser_version=144
Example chromium response:
json
{
"id": "fp_123456",
"country": "us",
"screen": {
"width": 1920,
"height": 1080
},
"userAgent": {
"value": "Mozilla/5.0 ..."
},
"navigator": {
"platform": "Win32",
"hardwareConcurrency": 8,
"deviceMemory": 8
},
"webgl": {
"vendor": "Google Inc.",
"renderer": "ANGLE ..."
},
"speechSynthesis": {
"voices": [
{
"name": "Microsoft David - English (United States)",
"lang": "en-US",
"isDefault": true
}
]
}
}
Example raw response:
json
{
"status": "success",
"id": "fp_123456",
"country": "us",
"data": {
"ua": "Mozilla/5.0 ...",
"width": 1920,
"height": 1080,
"attr": {},
"webgl_properties": {}
}
}
GET /fingerprint/generate
Generates a new fingerprint based on your specified parameters.
This method is billable. Your quota is only deducted upon successful generation.
Request parameters:
| Parameter | Required | Description |
|---|---|---|
key |
Yes | Your API key |
format |
No | chromium or raw, defaults to chromium |
tags |
No | Filter by platform or OS |
country |
No | Country code in ISO 3166-1 alpha-2 format |
build_version |
No | Full browser build version, for example 145.0.7632.162 |
min_browser_version |
No | Minimum browser major version |
Example request:
GET https://api.2captcha.com/fingerprint/generate?key=USER_KEY&format=chromium&tags=Windows&country=de
Example chromium response:
json
{
"id": "number",
"screen": { "deviceScaleFactor": "number", "screenRect": "Rect" },
"intl": { "languages": "string[]", "timeZone": "string" },
"speechSynthesis": { "voices": "VoiceInfo[]" },
"webgl": { "glParameters": "object", "glAvailableExtensions": "string[]" },
"webgpu": { "highPerformance": "WebGpuInfo" },
"userAgent": { "userAgent": "string", "platform": "string" },
"navigator": { "hardwareConcurrency": "number", "deviceMemory": "number" }
}
Example raw response:
json
{
"status": "string",
"id": "number",
"data": {
"valid": "boolean",
"ua": "string",
"tags": "array[string]",
"canvas": "string (hash)",
"webgl_properties": "object",
"fonts": "array[string]",
"visitor_id": "string (hash)"
}
}
Limits
Access to the Fingerprint API depends on your active subscription.
Two main limits apply:
max_requests_minute— limit on successful billable requests per minutemax_rps— protective limit on requests per second
If max_requests_minute = 0, there is no strict per-minute cap. Even unlimited plans may enforce max_rps to guard against traffic spikes.
Available plans
| Plan | Price | Per-minute limit | Max RPS | Formats | Proxy |
|---|---|---|---|---|---|
| Fingerprint Start | $29/mo | 30 | 5 | chromium, raw | No |
| Fingerprint Growth | $49/mo | 100 | 20 | chromium, raw | No |
| Fingerprint Scale | $99/mo | 300 | 50 | chromium, raw | No |
| Fingerprint Unlimited | $199/mo | Unlimited | 50 | chromium, raw | Yes |
All plans support both response formats: chromium and raw. The Fingerprint Unlimited plan includes an optional proxy data package.
How quota deduction works
Quota is only deducted on successful responses for billable methods. If the data source is unavailable or the request is invalid, your quota stays intact.
Changing your plan
Want to upgrade right now?
You can switch anytime. Just log into your account, pick your new plan, and activate it. Changes take effect immediately, and you get instant access to the new limits. We do not prorate unused days on your current plan.
Prefer to wait until your current subscription ends?
Automatic switching at period end is not supported. Once your subscription expires, simply purchase your desired plan manually in your account settings.
Want to downgrade to a cheaper plan?
Wait for your current billing period to end, then activate the new plan. This way, you do not lose any prepaid days.
To subscribe or change your plan:
- Go to your account settings
- Or contact our sales team for help choosing the right option
Error handling
All errors use the ERROR_ prefix.
| HTTP | errorCode | Description |
|---|---|---|
401 |
ERROR_KEY_DOES_NOT_EXIST |
API key not provided |
401 |
ERROR_WRONG_USER_KEY |
API key is invalid or not found |
403 |
ERROR_FINGERPRINT_PLAN_REQUIRED |
No active fingerprint subscription |
403 |
ERROR_FINGERPRINT_FORMAT_NOT_ALLOWED |
Requested format not allowed by your plan |
403 |
ERROR_FINGERPRINT_PROXY_NOT_ALLOWED |
Your plan does not include proxy data |
400 |
ERROR_FINGERPRINT_UNSUPPORTED_FORMAT |
Unknown format specified |
400 |
ERROR_FINGERPRINT_BAD_REQUEST |
Invalid request parameters |
404 |
ERROR_FINGERPRINT_ENDPOINT_NOT_FOUND |
Endpoint not supported |
429 |
ERROR_FINGERPRINT_RATE_LIMITED |
Per-minute or per-second rate limit exceeded |
503 |
ERROR_FINGERPRINT_UPSTREAM_UNAVAILABLE |
Data source temporarily unavailable |
504 |
ERROR_FINGERPRINT_UPSTREAM_TIMEOUT |
Data source timeout |
502 |
ERROR_FINGERPRINT_UPSTREAM_BAD_RESPONSE |
Data source returned an invalid response |
Example error response:
json
{
"errorId": 2007,
"errorCode": "ERROR_FINGERPRINT_RATE_LIMITED",
"errorDescription": "Fingerprint request rate limit exceeded for the current plan."
}
Notes
- For the
rawformat, we recommend using themin_browser_versionparameter. - If you provide
browser_versionorforce_browser_versionwithout settingmin_browser_version, the API may treat them as a minimum version constraint. - The
include_proxyparameter is only supported withformat=chromium.
Reference
Available tags
The tags parameter accepts one or more values from this list:
Chrome, Firefox, Edge, YaBrowser, Mobile, Desktop, Android, iOS, Microsoft Windows, Apple Mac, macOS, Linux, iPhone
Usage examples:
tags=Windows— fingerprints for Windows devicestags=Android&tags=Mobile— Android mobile devicestags=Chrome&tags=Desktop— desktop Chrome browser
Available countries
The country parameter uses two-letter country codes following the ISO 3166-1 alpha-2 standard.
Examples: us, de, ru, fr, gb, ca, au
Find the full list of codes here.