Your forms, confirmed. Without a single puzzle.
formconfirmed makes automated form spam unattractive: a small proof of work runs invisibly in the visitor's browser, combined with timing and honeypot signals and an optional AI check of the message on our own servers in the EU.
From scan to protection in three steps
Check
formexposed checks your forms from the outside and shows which ones are open to bots.
Turn on
One click from the result: site and keys are created, and the guide fits your system, whether WordPress, another CMS or your own code.
Confirm
The regular scans recognise the widget and mark the form as confirmed. If the server-side check is missing, the dashboard tells you.
Protection your visitors do not notice
No puzzles
No images, no audio, no clicking. The check runs in the background in a web worker, usually well under a second.
No cookies, no fingerprinting
Nothing is stored on the device and nothing is tracked. That is why the protection needs no consent banner.
AI content check
Judges what is sent, whether by a person, a script or an AI agent: SEO offers, link lists, phishing, gibberish. The text is checked in memory only.
Hosted in the EU
All checks and the AI run on servers in the EU, the AI on our own hardware. No transfer to third countries.
Accessible
No interaction needed, so no obstacle for screen readers, keyboard or voice control. Good for WCAG and the European Accessibility Act.
Your forms keep working
If our service is unavailable, you decide: let through and flag (default) or block. Availability comes before every extra feature.
Switching from reCAPTCHA takes minutes
One script tag, one element in the form, one call on your server. The answer looks like reCAPTCHA and Turnstile, plus a clear action with reasons.
- Response with success, score and error codes, plus allow, flag or block
- WordPress: the plugin protects Contact Form 7, WPForms and comments automatically
- Strict CSP compatible: no eval, no inline code required
<!-- 1. widget --> <script src="https://formconfirmed.com/v1/widget.js" async defer></script> <form method="post" action="/contact"> … <div class="fcp-widget" data-sitekey="fcp_pub_…"></div> </form> // 2. server: POST /v1/verify { "success": true, "score": 0.9, "action": "allow", "reasons": [] }
Five times reCAPTCHA's free quota
Above the quota nothing is switched off: checks continue without the AI content check and you get an e-mail.
Free
- 50,000 checks per month
- No AI content check
- Badge always shown
Pro
- 250,000 checks per month
- AI content check for 25,000 texts
- Badge can be switched off
Business
- 2,000,000 checks per month
- AI content check for 250,000 texts
- Badge can be switched off
One account and one bill with formexposed. Sign in with your existing formexposed account.
What you might want to know
Does formconfirmed stop every bot?
Do I need a consent banner for it?
What data do you process?
What happens if your service is down?
How does it relate to formexposed?
Protect your first form today
Free up to 50,000 checks a month. No credit card.