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:

  • key
  • clientKey

Example:

Copy
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:


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:

Copy
# 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 Copy
{
  "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 Copy
{
  "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:

Copy
GET https://api.2captcha.com/fingerprint/generate?key=USER_KEY&format=chromium&tags=Windows&country=de

Example chromium response:

json Copy
{
  "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 Copy
{
  "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 minute
  • max_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:


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 Copy
{
  "errorId": 2007,
  "errorCode": "ERROR_FINGERPRINT_RATE_LIMITED",
  "errorDescription": "Fingerprint request rate limit exceeded for the current plan."
}

Notes

  • For the raw format, we recommend using the min_browser_version parameter.
  • If you provide browser_version or force_browser_version without setting min_browser_version, the API may treat them as a minimum version constraint.
  • The include_proxy parameter is only supported with format=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 devices
  • tags=Android&tags=Mobile — Android mobile devices
  • tags=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.