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.
When to use GeeTest
- Your audience is in China — Google reCAPTCHA is completely blocked in mainland China. Cloudflare Turnstile may also be unreliable. GeeTest works natively because its servers are hosted in China.
- Corporate networks block Google — some organizations block Google domains at the firewall level. GeeTest uses its own CDN (
static.geetest.com) and API (gcaptcha4.geetest.com). - You want interactive challenges — GeeTest's slide and click challenges are more engaging than checkbox captchas and can have higher solve rates for legitimate users.
- You serve a mixed global audience — GeeTest has edge nodes worldwide, so it works outside China too. It is a valid choice even for western audiences.
Step 1: Create a GeeTest account
- Go to geetest.com/en/Register_en and create an account. The international English site is at
geetest.com/en/. The Chinese site is atgeetest.com. - After registration, you will be taken to the GeeTest dashboard.
- Click New Captcha (or the equivalent in the Chinese interface).
- Select GeeTest v4 as the version.
- Enter your domain name (e.g.,
formblade.comor your own domain where the form is hosted). - 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.
Step 2: Add keys to FormBlade
- Open your form in the FormBlade dashboard.
- Go to the Designer tab or Security section.
- Under Captcha, select GeeTest v4.
- Paste your Captcha ID into the Site Key field.
- Paste your Captcha Key into the Secret Key field.
- Click Save.
How verification works
GeeTest v4 uses a different verification flow from reCAPTCHA or Turnstile:
- The GeeTest JavaScript library (
gt4.js) loads and presents a challenge to the user. - After the user completes the challenge, the library produces four fields:
geetest_lot_number,geetest_captcha_output,geetest_pass_token, andgeetest_gen_time. - These fields are submitted with the form data.
- 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. - 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):
| Plan | Monthly verifications | Price | Credit card |
|---|---|---|---|
| Free trial | 300,000 | $0 | Not required |
| Standard | 1,000,000 | ~$250/month | Required |
| Professional | 5,000,000 | ~$500/month | Required |
| Enterprise | Custom | Custom | Required |
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:
- reCAPTCHA — completely blocked. Google domains (
google.com,gstatic.com) are inaccessible without a VPN. - Cloudflare Turnstile — may work but relies on Cloudflare's challenge CDN which can be slow or unreliable behind the Great Firewall.
- hCaptcha — partially blocked. The widget may load but verification can fail due to network issues.
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:
- Slide — drag a puzzle piece to complete an image. The most common challenge type.
- Click — click on specific icons or characters in order.
- Icon match — select icons that match a given prompt.
- Smart mode — low-risk users may pass with minimal or no visible challenge (similar to reCAPTCHA v3 scoring).
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
- Configure GeeTest on your form and save.
- Open the hosted form (
/f/example) or your self-hosted page. - Complete the GeeTest challenge and submit a test form entry.
- Check the submission in your FormBlade dashboard — it should appear without a spam flag.
- 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
- Best for China-facing forms — if your primary audience is in mainland China, GeeTest is the only reliable CAPTCHA option. All others are at least partially blocked.
- Combine with FormShield — FormBlade's FormShield protection runs alongside GeeTest for layered defense. FormShield catches basic bots before they even reach the CAPTCHA.
- Mobile-friendly — GeeTest v4 challenges are optimized for touch screens. The slide challenge works well on mobile devices.
- Consider Turnstile for non-China traffic — if your audience is primarily outside China, Cloudflare Turnstile offers a better user experience (invisible, free, unlimited). Use GeeTest specifically for forms that need to work in China.
Troubleshooting
Widget not loading
- Check that
static.geetest.comis not blocked by your ad blocker or content security policy. - Verify your Captcha ID is correct and the captcha is set to v4 in the GeeTest dashboard.
- If you are testing from China, ensure your captcha is configured for the Chinese region in the GeeTest dashboard.
Verification failing on submit
- Double-check that you pasted the Captcha Key (Secret Key), not the Captcha ID, into the Secret Key field in FormBlade.
- Ensure all four GeeTest fields (
geetest_lot_number,geetest_captcha_output,geetest_pass_token,geetest_gen_time) are being submitted with the form. Check the browser's Network tab for the POST request body. - GeeTest tokens expire quickly. If a user leaves the form open for a long time after completing the challenge, the token may expire before submission.
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.