Skip to main content

fingerprintchecker (Python)

Install with pip install fingerprintchecker; import it as fpchecker.

Server SDK for FingerPrintChecker. Python 3.9+, standard-library HTTP, one runtime dependency (cryptography, for sealed results).

from fpchecker import FpChecker, unseal_result, verify_webhook_signature, FpCheckerApiError

fp = FpChecker(os.environ["FPCHECKER_SECRET_KEY"])
verdict = fp.check_eligibility({"visitorId": "v_..."})
if verdict.get("ok") is False:
    print("refused:", verdict.get("error") or verdict.get("reason"))

Client

FpChecker(secret_key, base_url="https://api.fpchecker.com", timeout=10, *, publishable_key=None) has one method per OpenAPI operationId, in snake_case: create_intent, get_challenge, identify, check_eligibility, release_eligibility, check_quota, bind_subject, relate_subjects, send_feedback, get_claim_flags, search_events, get_event, update_event, get_visitor, delete_visitor, get_health, get_status. Bodies and query parameters are plain dicts; responses are dicts.

  • The secret key goes in the X-Secret-Key header, never in a URL, and is not shown by repr(). get_challenge and identify use the publishable key (publishable_key=) in X-Publishable-Key instead; get_health and get_status send no key.
  • 2xx responses are returned as data, including refusals such as {"ok": False, "error": ...}. Check ok.
  • Non-2xx raises FpCheckerApiError with status, code (error or reason from the body), retry_after (seconds) and body.
  • Network failures and timeouts also raise FpCheckerApiError, with status 0, code "network_error" or "timeout", and the original exception as __cause__.
  • Redirects are never followed (they would forward the secret key to another origin). base_url must be https, except localhost, 127.0.0.1 and [::1] (otherwise ValueError).
  • timeout (positive finite seconds) applies per network operation (connect, each read), not to the whole call.
  • Only GET requests retry (429, 5xx, network failures and timeouts; at most 2 retries, honouring Retry-After, wait capped at 10 s). POST, PATCH and DELETE are never retried.

Sealed results

result = unseal_result(identify_response["sealedResult"], [os.environ["FPC_SEALED_KEY"]])

Pass every active key (active and previous during rotation). Raises SealedResultError with .code of bad_format, unknown_key, decrypt_failed, invalid_key or unsupported_version.

Webhooks

# raw_body must be the exact bytes received, not a re-serialised object.
verify_webhook_signature(request.body, request.headers["FPC-Signature"], os.environ["FPC_WEBHOOK_SECRET"])

Raises WebhookSignatureError with .code of malformed_header, bad_signature, expired or future. tolerance_sec (default 300) must be a finite number >= 0, else TypeError / ValueError.

License

Apache-2.0

Metadata

Release files for fingerprintchecker 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fingerprintchecker 0.2.0
File Size Uploaded Provenance
fingerprintchecker-0.2.0.tar.gz 19.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for fingerprintchecker 0.2.0
File Interpreter ABI Platform
fingerprintchecker-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 34.5 kB

Release files / fingerprintchecker-0.2.0.tar.gz

Download URL fingerprintchecker-0.2.0.tar.gz
Size 19.3 kB
Tags Source
SHA-256 checksum
How to use checksums
10217e8eaaf752b2561fc3cdc0f450384abe3fbd129c434bb23c3c20b2239c80
BLAKE2b-256 checksum
How to use checksums
de811e769ab1447d31931710966067e31a06f00990431524ee0ac134bea39690
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fingerprintchecker-0.2.0-py3-none-any.whl

Download URL fingerprintchecker-0.2.0-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b748b80140a6500e24df9f50c99b0bdc1d400c946fa9deeab3d4fe8ab8096906
BLAKE2b-256 checksum
How to use checksums
a88beabfb626f1a39e071dbc361c46b119df509b3583f78bc4af7b4d1570175a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Security for fingerprintchecker 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page