Simple CAPTCHA
for modern apps.
Drop one attribute on your form and load our script. No cookies, no fingerprinting, 100% GDPR-compliant and EU-hosted.
Integrate in 60 seconds
Three changes to your existing HTML form.
Complete example
<form method="POST" action="/login" data-captcha>
<input type="email" name="email">
<input type="password" name="password">
<!-- optional: controls where the protection status panel appears -->
<div data-captcha-status></div>
<button type="submit">Login</button>
</form>
<script>
window.CAPTCHA_BASE_URL = "https://captchaapi.eu/api/v1";
window.CAPTCHA_SITE_KEY = "your-site-key";
</script>
<script src="https://captchaapi.eu/captcha.js" defer></script>
data-captcha-status is optional — if omitted, the widget injects the panel automatically before the submit button.
-
1
Add
data-captchato your formThe widget automatically finds all forms with this attribute and injects the PoW challenge.
-
2
Set
CAPTCHA_SITE_KEYReplace
"your-site-key"with the key from your project dashboard. -
3
Include
captcha.jsLoad the script after your config block. It runs the PoW puzzle and appends the token to your form submission.
Get your site key
A site key ties challenges to your project and enforces your plan limits.
-
1
Sign up or log in
Free plan is available with no credit card required.
-
2
Create a project
Go to Dashboard → Projects → New Project. Give it a name and your domain.
-
3
Copy your
site_keyIt's displayed on the project detail page. Paste it into your page config.
How it works
Two endpoints handle the full challenge–verify flow.
/challenge
Requests a PoW puzzle token. Called automatically by the widget before form submission.
/verify
Validates the solved token. Call this server-side after receiving a form submission.