Fingerprint Updates

curl_cffi provides fingerprint updates for professional users via impersonate.pro.

Feature matrix

Feature matrix

Edition

HTTP/2

HTTP/3

Fingerprint updates

Open source

Major releases

Commercial update

Frequent updates

Configure access

Set your API key once:

curl-cffi config --api-key imp_xxxxxxxx

or in Python:

from curl_cffi.fingerprints import FingerprintManager

FingerprintManager.set_api_key("imp_xxxxxxxx")

Or override the configured key at runtime:

export IMPERSONATE_API_KEY=imp_xxxxxxxx

Update fingerprints

From CLI:

curl-cffi update

From Python:

from curl_cffi.fingerprints import FingerprintManager

updated = FingerprintManager.update_fingerprints()
print(updated)

Load local fingerprints

from curl_cffi.fingerprints import FingerprintManager

fingerprints = FingerprintManager.load_fingerprints()
print(len(fingerprints))
print(fingerprints["chrome136"])

Load and edit fingerprints

For fingerprint-backed targets, you can load a fresh editable Fingerprint object and pass it back to a request with the impersonate=... parameter.

import curl_cffi

fingerprint = curl_cffi.get_fingerprint("edge_146_macos_26")
fingerprint.headers["User-Agent"] = "..."

r = curl_cffi.get(
    "https://example.com",
    impersonate=fingerprint,
)

Storage paths

By default, local files are written to a platform-native config directory:

  • Linux: $XDG_CONFIG_HOME/impersonate or ~/.config/impersonate

  • macOS: ~/.config/impersonate

  • Windows: %APPDATA%\impersonate

Files stored there:

  • config.json: API key config

  • fingerprints.json: cached fingerprints

Environment overrides:

  • IMPERSONATE_API_KEY: override the API key loaded from config.json.

  • IMPERSONATE_CONFIG_DIR: override the config/cache directory.