Free forever ยท No credit card required

Stop spam forms.
One snippet, any site.

UCAPTCHA blocks spam bots from submitting your contact forms โ€” without any dependencies, accounts for your visitors, or annoying image puzzles. Drop in one line of HTML and you're protected.

Your embed snippet looks like this

<!-- Add once to your site <head> --> <script src="https://www.ucaptcha.site/captcha-widget.js" defer></script> <!-- Drop inside your <form> --> <div class="captcha-widget" data-captcha-key="ucaptcha_live_your_key"></div>

Up and running in 3 minutes

No server changes, no per-visitor charges, no accessibility barriers.

01

Create a free account

Sign up, add your website domain, and get your unique site key. Takes under a minute.

02

Drop in the snippet

Paste two lines of HTML into your form template. Works with any framework โ€” WordPress, Webflow, React, plain HTML.

03

Verify on your server

After a visitor solves the puzzle, call our verify API from your backend before processing the form. One fetch call.

Three layers of protection

UCAPTCHA stacks multiple bot-detection techniques so spam submissions are stopped before they reach your inbox.

๐Ÿชค

Honeypot Fields

An invisible decoy field is injected into your form. Bots fill it automatically โ€” real users never see it. Instant, zero-friction bot detection.

๐Ÿงฉ

Slider Puzzle

Visitors drag a piece to fill a hole in a unique puzzle image. Simple for humans, surprisingly hard for automated scripts.

๐Ÿง 

Behavioral Analysis

Timing, drag path, and interaction patterns are measured. Submissions that arrive in milliseconds or lack natural mouse movement are blocked.

Server-side verification

After the visitor solves the puzzle, verify the token on your server before processing the form. Works with any backend language.

// Node.js / Next.js example const res = await fetch('https://www.ucaptcha.site/api/token/verify', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ token: formData.captcha_token, site_key: process.env.CAPTCHA_SITE_KEY })), }); const { success } = await res.json(); if (!success) return res.status(400).json({ error: 'CAPTCHA failed' });

Ready to stop the spam?

Create a free account, add your site, and have the widget live in minutes.

Get started โ€” it's free