Skip to main content
CAPTCHA — bring-your-own-keys or Managed — requires the Starter plan or above. Toggling it on below a Starter plan returns a 403.
Raykoi only supports v3 — the invisible, score-based version. v2 (the “I’m not a robot” checkbox) isn’t supported; use Turnstile or hCaptcha if you specifically want a visible checkbox challenge.
1

Open the reCAPTCHA admin console

Go to google.com/recaptcha/admin/create, signed in with the Google account you want to own this site.
2

Register a site

Give it a label (for your own reference), select reCAPTCHA v3, and enter the domain(s) it’ll run on.
3

Accept the terms and submit

Accept the reCAPTCHA Terms of Service, then click Submit.
4

Copy your keys

The next page shows your Site Key and Secret Key.
The Secret Key authenticates server-side verification calls — never put it in client-side code. Only the Site Key belongs in your frontend (and Raykoi doesn’t even need that from you directly — see below).
5

Connect it to Raykoi

In your form’s Spam Protection settings, choose reCAPTCHA, and paste in both keys. Raykoi stores the secret server-side and resolves the site key to your frontend automatically via Get a Form’s Schema’s captcha field — you never hardcode either value into your integration.

About the score

reCAPTCHA v3 never blocks a visitor itself — it returns a score from 0.0 (very likely a bot) to 1.0 (very likely human). Raykoi maps a low score onto the same captchaFailed signal a v2/Turnstile/hCaptcha rejection produces, which alone is enough to block the submission outright — it’s the one signal that never needs corroborating evidence from anything else.

Verifying it’s working

Submit a test entry through your actual integration. If the token never reaches Raykoi (check the Activity tab or your browser’s network inspector for a captcha_token in the request body), the most common cause is the widget script being blocked — an ad blocker, a strict Content Security Policy, or a domain mismatch between what you entered in step 2 and where the form is actually embedded.