Skip to main content
The point of verifyngo is to add a little friction upon a human’s visit, so any random bot has to do the same, which many don’t. verifyngo allows the setting of several captcha providers.

Available providers

  • cap
  • turnstile
  • hcaptcha
  • slider

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.