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.3.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.3.0
File Size Uploaded Provenance
fingerprintchecker-0.3.0.tar.gz 20.3 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 36.1 kB

Release files / fingerprintchecker-0.3.0.tar.gz

Download URL fingerprintchecker-0.3.0.tar.gz
Size 20.3 kB
Tags Source
SHA-256 checksum
How to use checksums
ca1e1b633cd49432986286ac2436db6d20bc66b97c04e41891d695abd9003dfe
BLAKE2b-256 checksum
How to use checksums
3f9563e8ad8966598ae3963e6d4258d3800b12d521be58c2304a56aa89f47bfc
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.3.0-py3-none-any.whl

Download URL fingerprintchecker-0.3.0-py3-none-any.whl
Size 15.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8bc0e93cf214ff7cebeb8404eeb949740a150f21d3ac37622888d06b12f3664c
BLAKE2b-256 checksum
How to use checksums
c4089f3e94b49ca2dc5570f5f1c4361c4c29c07036b8a74c6cb085d41c3b74ff
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.3.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