No signup, no API key, no console — just real widgets calling the real backend. Solve any one of them and the response token gets verified server-side; the verification result shows up below the widget.
trustedcaptcha.com). When you complete a challenge, the page POSTs the response token to our /api/v1/siteverify endpoint and shows the raw JSON response.
These keys are bound to trustedcaptcha.com and www.trustedcaptcha.com. Anyone can use the sitekey on this domain. To use the captcha on your own site, sign up for your own keys.
0x5e843afee531b6361ffa3d7778b062cf200xdb9ac80121c50e361a4125534bdbe5da0dc8ece8d63c211fffdbd0723e3e0c52The frictionless one. A single checkbox that runs passive signals — pointer entropy, dwell time, browser hints. Most users pass without ever seeing a challenge.
A 4×4 selection grid. The category prompt asks for a specific type of object — "select all the boats" — and the user clicks tiles. Image URLs are HMAC-signed and single-use.
Server-generated arithmetic, never reused. Accepts digit answers and spelled-out variants, with Levenshtein tolerance for typos. Works on screen readers without any audio fallback.
A common-sense multiple choice question — "which of these is a vegetable?" — pulled from a moderated pool. Vetted to avoid cultural specificity and ambiguity.
A short spoken phrase synthesized via TTS. Type what you hear. Lenient matching for misspellings. Always available as a one-click fallback from any visual mode.
Zero user interaction. The browser solves a SHA-256 proof-of-work in a Web Worker (typically 200–500 ms on a modern phone, longer on bots running at scale). Best for low-stakes forms.
↓ Click the button to trigger the invisible challenge programmatically. There's no widget UI — you'll see the result below directly.
The widgets above use exactly the same loader and the same backend that your own integration would use. The complete integration is two snippets:
<!-- 1. On your page -->
<script src="https://cdn.trustedcaptcha.com/widget/v1/api.js" async defer></script>
<form action="/signup" method="POST">
<input name="email" type="email" required>
<div class="trustedcaptcha" data-sitekey="YOUR_SITEKEY"></div>
<button>Sign up</button>
</form>
// 2. On your server (PHP example)
$r = file_get_contents(
'https://challenges.trustedcaptcha.com/api/v1/siteverify'
. '?secret=' . urlencode($YOUR_SECRET)
. '&response=' . urlencode($_POST['trustedcaptcha-response'])
);
$result = json_decode($r, true);
if (!$result['success']) die('Captcha failed');