Hosted ALTCHA, compared with self-hosting
Updated
Bot403 uses the ALTCHA protocol. The question is who runs the server: you, ALTCHA Cloud or Bot403.
Where ALTCHA is better
Self-hosted ALTCHA is free. It is MIT licensed, it has no usage limits, and it shares no data with third parties. ALTCHA has server libraries for more than ten programming languages, a widget in more than 50 languages and a WordPress plugin. Its Sentinel product adds a spam classifier, real-time IP blocking and rate limiters. If one more endpoint on your server is fine for you, self-host ALTCHA and pay nothing.
Where Bot403 is better
The protocol is the same, but Bot403 runs the server. You do not write a challenge endpoint, keep a list of solved challenges or add rate limits. Bot403 does that work and shows failures by reason in a dashboard. You can leave at any time. If you use the ALTCHA widget with Bot403, the widget works with self-hosted ALTCHA after you change its challenge URL. 50,000 checks cost €3 a month, VAT included, and ALTCHA Cloud starts at €47 a month before tax.
Side by side
The facts come from the public pages of ALTCHA (https://altcha.org/pricing/, https://altcha.org/open-source-captcha/, https://altcha.org/docs/integration/server/, https://altcha.org/docs/integration/security-recommendations/, https://github.com/altcha-org/altcha), checked on 2026-10-23. "Not stated" means the page does not say. If something changed, email me. Then I will correct it.
| Capability | Bot403 | ALTCHA |
|---|---|---|
| Protocol | ALTCHA | ALTCHA |
| Price | free for 5,000 a month, then €3 a month for 50,000, VAT included | self-hosted: free, MIT. ALTCHA Cloud: from €47 a month, plus tax |
| Server you run | none | your own challenge endpoint, with an ALTCHA library |
| Replay protection | built in | you keep a list of solved challenges |
| Rate limits | built in | you add them |
| Browser script | 6 KB, invisible | widget, 34 kB gzipped. Standard, floating, invisible and other modes |
| Cookies | none | none |
| Where it runs | one server in Germany | self-hosted: where you run it. Cloud: the EU |
| Extra spam filters | none | Sentinel, from €99 a month, self-hosted |
Switch in 10 minutes
Keep the ALTCHA widget. Set its challengeurl to https://bot403.com/api/v1/challenge?pk= followed by your public key. Or replace the widget with the 6 KB Bot403 script. On the server, replace the local check with a post to /api/v1/verify. Bot403 accepts the altcha field. The script page and the verify page have the details. To go back, set challengeurl to your own endpoint again.