InfoPeak Captcha for Python
Server-side verification for InfoPeak Captcha - the privacy-first, EU-hosted captcha. No tracking, no cookies, no image puzzles.
Install
pip install infopeak-captcha
Requires Python 3.8+. Zero dependencies (standard library only).
Usage
Add the widget to your form (full guide):
<form action="/signup" method="POST">
<input type="email" name="email" required>
<div class="infopeak-captcha" data-sitekey="YOUR_SITEKEY"></div>
<button type="submit">Sign up</button>
</form>
<script src="https://captcha.infopeak.io/infopeak-captcha.js" defer></script>
Verify the token when the form is submitted (Flask example):
import os
from infopeak_captcha import verify, FIELD
@app.post("/signup")
def signup():
if not verify(
request.form.get(FIELD),
sitekey="YOUR_SITEKEY",
secret=os.environ["INFOPEAK_CAPTCHA_SECRET"],
):
return "Captcha verification failed", 400
# ... proceed
Django works the same way with request.POST.get(FIELD).
Need quota information too?
from infopeak_captcha import verify_detailed
result = verify_detailed(token, sitekey="YOUR_SITEKEY", secret="YOUR_SECRET")
result.valid # True when the token was genuine and unused
result.over_limit # True when the sitekey is over its monthly quota
Verification fails closed: network errors and non-200 responses return valid=False.
Testing
Public test credentials that work on any domain and never count against a quota (never use in production):
sitekey: ipk_test_sitekey
secret: ipk_test_secret
Links
- Get a free sitekey - 10,000 verifications/month at no cost
- Developer documentation
License
MIT
Metadata
Release files for infopeak-captcha 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| infopeak_captcha-1.0.1.tar.gz | 3.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| infopeak_captcha-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.0 kB
Release files / infopeak_captcha-1.0.1.tar.gz
| Download URL | infopeak_captcha-1.0.1.tar.gz |
|---|---|
| Size | 3.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bb1d3586ea6dd7856c5561d73634efad6b918bda0a0b3c40c39069a8d80de5a2
|
|
BLAKE2b-256 checksum How to use checksums |
7b0189050a6c3bdbaf439ac6cfae437f19ae81291c1cbcc495eadfe663f77157
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.
Transparency logRelease files / infopeak_captcha-1.0.1-py3-none-any.whl
| Download URL | infopeak_captcha-1.0.1-py3-none-any.whl |
|---|---|
| Size | 4.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
49506409320ad3e3ead817f20e3ed994592005294e60e2fa5295047d1af8101b
|
|
BLAKE2b-256 checksum How to use checksums |
fa0aa273709033748bfa1f7d84196bb47eb6f56f070929d237f100b5f8dc5c4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.
Transparency log