Skip to main content
verifyngo supports three CAPTCHA providers: Cap, Cloudflare Turnstile, and hCaptcha. You pick one as the default by setting the provider field in your config.json, then fill in the matching configuration block. If you configure more than one provider at the same time, visitors will see a “switch provider” link on the challenge page — letting them move to a different provider if the first one isn’t working for them.

Available providers

  • cap — a self-hosted CAPTCHA server; you run it on your own infrastructure.
  • turnstile — Cloudflare Turnstile; requires a Cloudflare account.
  • hcaptcha — hCaptcha; requires an hCaptcha account.

Choosing your provider

Set the provider field to the name of the provider you want to use by default. Then fill in the configuration block that matches that provider name. The sections below show the exact fields for each option.
Cap is a self-hosted CAPTCHA server. You install and run it yourself, so challenge traffic goes through your own infrastructure.
string
required
The public URL of your Cap instance. The visitor’s browser loads the widget script and submits the challenge from this address, so it must be reachable from the internet.
string
The URL verifyngo uses internally to verify a submitted token. Because this call happens server-side, you can point it at a local or internal address (e.g. "http://127.0.0.1:3000") to avoid an extra round-trip through the internet. If left empty, verifyngo falls back to api_url.
string
required
The site key for your Cap instance. You’ll find this in your Cap server’s admin panel.
string
required
The secret key for your Cap instance. Keep this value private — it is used to verify tokens server-side.
string
An optional URL to load the Cap widget script from. Leave it empty to use the default Cap CDN (https://cdn.jsdelivr.net/npm/@cap.js/widget). Set this if you self-host the widget script alongside your Cap server.

Configuring multiple providers

You can fill in more than one provider block in the same config.json. The provider field controls which one is shown first — the others act as alternatives. When verifyngo detects that more than one provider is fully configured, it displays a “switch provider” link on the challenge page. Visitors can click it to switch to a different provider if the current one is unavailable or blocked for them.