Skip to content

Capzy Fingerprint API. Build a coherent identity.

Generate a browser fingerprint as JSON. Choose an OS and country, reuse an identity when a session returns, and map the output into your browser's supported settings.

One identity, related signalsIllustrative example
Stable IDcustomer-123
Device familyWindows · Chromium · 1920 × 1080
Locale + timezoneen-US / America/New_York
Output groupsUser agent, screen, navigator, graphics and more

Generate a profile, then apply its settings

Start with a fingerprint request. Use the response fields your automation framework supports; downloading JSON does not apply every browser signal automatically.

generate_fingerprint.py
# Install: pip install requests
import os
import requests

response = requests.get(
    "https://api.capzy.ai/fingerprint/generate",
    params={
        "key": os.environ["CAPZY_API_KEY"],
        "format": "chromium",
        "tags": "Windows",
        "country": "us",
        "id": "customer-123",  # reuse with the same options
    }, timeout=30,
)
response.raise_for_status()
fp = response.json()
if fp.get("errorId"):
    raise RuntimeError(fp)
print(fp["userAgent"]["userAgent"])
  1. Activate the API and copy your key

    Choose an active Fingerprint API plan and use a Capzy API key from your account. Store it as CAPZY_API_KEY.

    Open Fingerprint API
  2. Choose the identity constraints

    Send format=chromium, an OS tag, and a country code. Reuse id, uuid or seed with the same options to regenerate an identity.

  3. Apply supported fields to your browser

    The Playwright example applies user agent, locale, timezone and viewport. Canvas, WebGL and other signals need browser-specific support; see the full guide.

Choose the profile you need

The key is required. Identity and filtering options are optional; keep them consistent when regenerating a profile.

keyRequired · API key
Your Capzy API key. Keep it on the server and out of browser JavaScript, public repositories and logged request URLs.
id / uuid / seedOptional · identity
Alternative identity selectors. Supply one stable value and reuse the same filter configuration for deterministic generation. Omit them for a new identity.
formatDefault · chromium
Choose chromium for the browser-oriented JSON structure used by these examples, or raw for the raw profile representation.
tagsOptional · OS
Filter the device family, for example Windows, macOS or Linux. Keep the requested OS consistent with the browser you use.
countryOptional · two-letter code
Set locale and regional profile hints. A fingerprint country is not a proxy; configure browser egress separately when IP location matters.
min_browser_version / browser_versionOptional · version constraints
Filter versions with the full API reference. build_version and force_browser_version provide additional controls; use values your browser integration supports.

Read a fingerprint in groups

A shortened, illustrative response. Your API response contains the complete fingerprint and may differ by device and format.

The Playwright example applies user agent, locale, timezone and viewport. Canvas, WebGL and other signals need browser-specific support; see the full guide.
fingerprint.example.json
{
  "id": "customer-123",
  "country": "us",
  "userAgent": {
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
    "platform": "Win32"
  },
  "screen": {
    "innerWidth": 1903,
    "innerHeight": 927,
    "deviceScaleFactor": 1
  },
  "intl": {
    "languages": [
      "en-US",
      "en"
    ],
    "timeZone": "America/New_York"
  },
  "navigator": {
    "hardwareConcurrency": 8,
    "deviceMemory": 8
  }
}

Choose a country

Supported countries (47)

Pass country (ISO 3166-1 alpha-2). Language, Accept-Language timezone, speech voices and locale fonts are all set to match.

usUnited StatesEnglish
gbUnited KingdomEnglish
caCanadaEnglish / French
auAustraliaEnglish
nzNew ZealandEnglish
ieIrelandEnglish
deGermanyGerman
frFranceFrench
esSpainSpanish
itItalyItalian
nlNetherlandsDutch
beBelgiumDutch / French
chSwitzerlandGerman / French
atAustriaGerman
seSwedenSwedish
noNorwayNorwegian
dkDenmarkDanish
fiFinlandFinnish
plPolandPolish
ptPortugalPortuguese
grGreeceGreek
czCzechiaCzech
roRomaniaRomanian
uaUkraineUkrainian
ruRussiaRussian
trTürkiyeTurkish
brBrazilPortuguese
mxMexicoSpanish
arArgentinaSpanish
clChileSpanish
coColombiaSpanish
jpJapanJapanese
krSouth KoreaKorean
cnChinaChinese (Simplified)
twTaiwanChinese (Traditional)
hkHong KongChinese
sgSingaporeEnglish
inIndiaEnglish / Hindi
idIndonesiaIndonesian
thThailandThai
vnVietnamVietnamese
phPhilippinesEnglish / Filipino
myMalaysiaMalay
zaSouth AfricaEnglish
saSaudi ArabiaArabic
aeUnited Arab EmiratesArabic
ilIsraelHebrew

Showing all 47, scroll or search

Pricing

Current monthly plans and request limits are loaded from the public catalog. Confirm your active allowance in the dashboard.

Loading current prices…

A few things to know

Does the JSON change my browser automatically?

No. Your integration must apply each supported setting. Playwright's context options cover some fields, while deeper signals need a browser or integration designed to consume them.

Is a fingerprint country the same as a proxy country?

No. Fingerprint settings control device and locale signals. A proxy controls network egress. Keep them aligned when your workflow needs a consistent regional identity.

What if I hit a rate limit?

Check the request-per-minute allowance of your active plan and any organization limits. Queue or slow requests instead of repeatedly retrying at the same rate.

Build a consistent session from the start.

Generate one profile, inspect its fields, and apply them using the integration guide.

Open dashboard