GeeTest v4

Behavioral CAPTCHA with slide, click, and icon challenges. Works in China and regions where Google services are blocked.

What is GeeTest?

GeeTest is a Chinese behavioral CAPTCHA provider founded in Wuhan, China. It uses interactive challenges — sliding a puzzle piece, clicking icons in order, or matching shapes — instead of the image selection puzzles used by reCAPTCHA. The challenges are designed to be quick (under 2 seconds for most users) while being difficult for bots to solve programmatically.

GeeTest is one of the most widely used CAPTCHA services in Asia, protecting over 320,000 websites globally. It is the go-to option when you need CAPTCHA that works without any Google infrastructure.

Pro feature: GeeTest v4 is available on Pro and Business plans.

When to use GeeTest

Step 1: Create a GeeTest account

  1. Go to geetest.com/en/Register_en and create an account. The international English site is at geetest.com/en/. The Chinese site is at geetest.com.
  2. After registration, you will be taken to the GeeTest dashboard.
  3. Click New Captcha (or the equivalent in the Chinese interface).
  4. Select GeeTest v4 as the version.
  5. Enter your domain name (e.g., formblade.com or your own domain where the form is hosted).
  6. After creation, you will see two keys:
    • Captcha ID (also called "ID") — this is your public Site Key. It is embedded in the page HTML.
    • Captcha Key (also called "Key" or "Secret") — this is your Secret Key. It is used for server-side verification only.
v4 only: FormBlade supports GeeTest v4 (the current version). Older versions (v2, v3) use a different API and are not supported. Make sure you select v4 when creating your captcha in the GeeTest dashboard.

Step 2: Add keys to FormBlade

  1. Open your form in the FormBlade dashboard.
  2. Go to the Designer tab or Security section.
  3. Under Captcha, select GeeTest v4.
  4. Paste your Captcha ID into the Site Key field.
  5. Paste your Captcha Key into the Secret Key field.
  6. Click Save.

How verification works

GeeTest v4 uses a different verification flow from reCAPTCHA or Turnstile:

  1. The GeeTest JavaScript library (gt4.js) loads and presents a challenge to the user.
  2. After the user completes the challenge, the library produces four fields: geetest_lot_number, geetest_captcha_output, geetest_pass_token, and geetest_gen_time.
  3. These fields are submitted with the form data.
  4. FormBlade's server computes an HMAC-SHA256 signature using your Secret Key and the lot number, then sends a verification request to gcaptcha4.geetest.com/validate.
  5. If the validation succeeds, the submission is accepted. If it fails, the submission is flagged as spam (not rejected — FormBlade uses soft-fail for all captcha providers).

Hosted forms

If you use FormBlade's hosted form pages (/f/example), the GeeTest widget is injected automatically after you configure the keys. No code changes needed.

The widget uses bind mode, meaning it appears as a button that triggers the challenge when clicked. The challenge appears as an overlay on top of the form.

Self-hosted forms

For forms on your own website, add the GeeTest v4 script and initialize the widget:

<div id="geetest-captcha"></div>

<script src="https://static.geetest.com/v4/gt4.js"></script>
<script>
initGeetest4({
  captchaId: 'YOUR_CAPTCHA_ID',
  product: 'bind'
}, function(captchaObj) {
  captchaObj.appendTo('#geetest-captcha');
  captchaObj.onSuccess(function() {
    var result = captchaObj.getValidate();
    var form = document.querySelector('form');
    Object.keys(result).forEach(function(key) {
      var input = document.createElement('input');
      input.type = 'hidden';
      input.name = 'geetest_' + key;
      input.value = result[key];
      form.appendChild(input);
    });
  });
});
</script>

Replace YOUR_CAPTCHA_ID with your Captcha ID from the GeeTest dashboard.

The onSuccess callback adds the four verification fields as hidden inputs to your form. These are sent with the POST request and verified by FormBlade's server.

Pricing and limits

GeeTest uses a tiered pricing model (as of April 2026):

PlanMonthly verificationsPriceCredit card
Free trial300,000$0Not required
Standard1,000,000~$250/monthRequired
Professional5,000,000~$500/monthRequired
EnterpriseCustomCustomRequired

The free trial tier is generous enough for most small to medium websites. Pricing is approximate and may vary — contact GeeTest directly for exact quotes, especially for the Chinese market where pricing structures may differ from the international site.

China-specific considerations

Why GeeTest works in China

Google reCAPTCHA, Cloudflare Turnstile, and hCaptcha all rely on infrastructure that is partially or fully blocked in mainland China:

GeeTest's infrastructure is hosted in China with CDN nodes across Chinese ISPs. The JavaScript library loads from static.geetest.com and verification calls go to gcaptcha4.geetest.com, both of which resolve to Chinese servers for Chinese visitors.

Language and localization

GeeTest v4 automatically detects the user's browser language and displays challenges in the appropriate language, including Simplified Chinese, Traditional Chinese, Japanese, Korean, and English. No configuration needed.

Compliance

If your forms collect data from Chinese users, be aware that GeeTest stores behavioral data (mouse movements, interaction patterns) on Chinese servers. This is necessary for its bot detection to work but may be relevant for your privacy policy disclosures, especially under China's PIPL.

Challenge types

GeeTest v4 supports multiple challenge types. The system automatically selects the challenge based on the user's risk profile:

You cannot force a specific challenge type — GeeTest's AI selects it dynamically. This is by design: it prevents bots from being trained against a single challenge format.

Testing

Test in the GeeTest dashboard

The GeeTest dashboard includes a built-in test page where you can preview the widget and verify it works with your keys before deploying to your form.

Test on your form

  1. Configure GeeTest on your form and save.
  2. Open the hosted form (/f/example) or your self-hosted page.
  3. Complete the GeeTest challenge and submit a test form entry.
  4. Check the submission in your FormBlade dashboard — it should appear without a spam flag.
  5. To test the failure path, open the browser console and submit the form without completing the challenge (remove the hidden fields manually). The submission should appear with a "Captcha failed" spam flag.

Test keys

GeeTest does not provide official test keys like reCAPTCHA does. You must use your own account keys for testing. The free trial tier (300,000 verifications/month) is sufficient for development and testing.

Tips

Troubleshooting

Widget not loading

Verification failing on submit

Challenge appearing in wrong language

GeeTest uses the browser's Accept-Language header to determine the display language. If the wrong language appears, the user's browser language setting is the cause — GeeTest does not support a manual language override in v4.

Slow loading outside China

GeeTest's CDN is optimized for Asian networks. Users in Europe or the Americas may experience slightly slower widget loading (1-2 seconds) compared to Turnstile or reCAPTCHA. This is a trade-off for China compatibility. If load speed is critical for non-China audiences, consider Cloudflare Turnstile instead.