Spam protection that just works.

Apexia Captcha stops bots flooding your website's forms. There are no traffic-light puzzles and no tracking, and your visitors barely notice it's there.

Try it nowLive
Your name
Email address
How can we help?
Tick the box to see it verify.
One tickNo puzzles, images or riddles
Always onForms keep working, whatever happens
Self-hostedRun by Apexia, with no tracking or ad networks

Expensive for bots.
Effortless for people.

Instead of asking visitors to prove they're human, Apexia Captcha asks their device to do a little work. That costs a person nothing, but it adds up fast for a bot sending thousands of messages.

01

Tick the box

The visitor ticks "Verify you're human", and Apexia Captcha sends their browser a small cryptographic challenge.

02

Solved in the background

Their device solves it in a second or two, with nothing to read, click or type.

03

Checked on submit

Your website checks the one-time token with Apexia Captcha before accepting the form. Spam is turned away.

Built for the websites
we look after.

Apexia Captcha protects the contact forms, quote requests and sign-ups on websites designed, built and hosted by Apexia.

No puzzles

No picking out buses or crosswalks, so nobody gives up on your form halfway through.

Privacy first

No tracking cookies or profiling. Your visitors' data is never sold or shared with ad platforms.

Never blocks enquiries

If the service is ever unreachable, forms still go through, so you never lose a genuine lead.

Fast and light

A tiny script that won't slow your pages or affect your search rankings.

Two lines of HTML.
One server check.

Add the script and the widget to any form. Then, on submit, verify the token server-side with the site's secret key. There are drop-in examples for plain PHP and Laravel.

Every website gets its own keys and allowed domains, set up by the Apexia team.

<!-- 1. Load the widget -->
<script async
  src="https://api.apexiacaptcha.com/assets/widget.js"></script>

<!-- 2. Drop it into your form -->
<form method="post">
  …
  <cap-widget
    data-cap-api-endpoint="https://api.apexiacaptcha.com/SITE_KEY/">
  </cap-widget>
  <button>Send</button>
</form>

// 3. Verify on the server
POST https://api.apexiacaptcha.com/SITE_KEY/siteverify
{ "secret": "…", "response": "<cap-token>" }
// → { "success": true }