Region Selection
How to choose the appropriate service region
What is a Region?
Geelab has deployed verification services in multiple regions globally. You can choose the nearest service node based on your users' location to achieve optimal performance and compliance.
Available Regions
Global
For global users or Asia-Pacific region
cap-global.geelabapi.comEurope
For EU users (GDPR compliant)
cap-eu.geelabapi.comNorth America
For North American users
cap-na.geelabapi.comHow to Choose a Region?
Choose Based on User Location
Select the region closest to your primary user base:
| Primary User Location | Recommended Region | Reason |
|---|---|---|
| China, Southeast Asia, Japan, Korea | Global | Lowest latency |
| EU countries | Europe | GDPR compliance + low latency |
| USA, Canada | North America | Low latency |
| Globally distributed | Global | Widest coverage |
Choose Based on Compliance Requirements
GDPR Compliance: If your users include EU residents, it is recommended to choose the Europe region to ensure data is stored within the EU.
Data Localization: Data in different regions is stored in corresponding regional data centers and will not be transferred across borders.
Selecting Region in Console
- Log in to Geelab Console
- Create a new verification scenario
- Select the appropriate region from the "Region Selection" dropdown menu
- Save and obtain
captcha_idandcaptcha_key
Important: Once a region is selected, it cannot be changed. If you need to change regions, you must create a new verification scenario.
Using in Code
Frontend SDK
The frontend SDK needs to configure the apiServers parameter to specify the region:
// Configure the corresponding apiServers based on the region you selected in the console
initGeetest4({
captchaId: 'YOUR_CAPTCHA_ID',
apiServers: ['cap-global.geelabapi.com'] // Global region
// apiServers: ['cap-eu.geelabapi.com'] // Europe region
// apiServers: ['cap-na.geelabapi.com'] // North America region
}, callback);Important: The apiServers parameter must match the region you selected when creating the ID in the console.
Backend Verification
When verifying on the backend, you must use the regional domain corresponding to the captcha_id:
// ❌ Wrong: Using the wrong region
// captcha_id is Europe region, but using Global domain
const url = 'https://cap-global.geelabapi.com/validate';
// ✅ Correct: Using the corresponding regional domain
const url = 'https://cap-eu.geelabapi.com/validate';Complete Example
Best Practice: Manage region configuration as environment variables
// Configure based on the region you selected in the console
const REGION_URLS = {
global: 'https://cap-global.geelabapi.com/validate',
eu: 'https://cap-eu.geelabapi.com/validate',
na: 'https://cap-na.geelabapi.com/validate'
};
// Read from environment variables
const REGION = process.env.GEELAB_REGION || 'global';
const VERIFY_URL = REGION_URLS[REGION];
module.exports = { VERIFY_URL };const { VERIFY_URL } = require('./config');
// Use the configured region URL
const response = await axios.post(
`${VERIFY_URL}?captcha_id=${CAPTCHA_ID}`,
data
);Region Comparison
| Feature | Global | Europe | North America |
|---|---|---|---|
| Coverage | Global | EU | North America |
| GDPR Compliance | ❌ | ✅ | ❌ |
| Asia-Pacific Latency | 🟢 Low | 🟡 Medium | 🔴 High |
| Europe Latency | 🟡 Medium | 🟢 Low | 🟡 Medium |
| North America Latency | 🟡 Medium | 🟡 Medium | 🟢 Low |
FAQ
How do I know which region my captcha_id is in?
You can view the region information on the verification scenario details page in the console.
Can I use multiple regions simultaneously?
Yes. Create verification scenarios for different regions for users in different areas, and dynamically select the corresponding captcha_id based on user location in your code.
// Select different captcha_id based on user location
const captchaId = userInEU
? 'EU_CAPTCHA_ID'
: 'GLOBAL_CAPTCHA_ID';
initGeetest4({ captchaId }, callback);What happens if frontend and backend regions don't match?
Verification will fail. The captchaId and apiServers used on the frontend, as well as the domain used for backend verification, must all belong to the same region.
// ❌ Wrong example
// Frontend uses Europe region captcha_id and apiServers
initGeetest4({
captchaId: 'EU_CAPTCHA_ID',
apiServers: ['cap-eu.geelabapi.com']
}, callback);
// Backend uses Global region verification URL
POST https://cap-global.geelabapi.com/validate // Verification will fail!
// ✅ Correct example
// Frontend uses Europe region captcha_id and apiServers
initGeetest4({
captchaId: 'EU_CAPTCHA_ID',
apiServers: ['cap-eu.geelabapi.com']
}, callback);
// Backend also uses Europe region verification URL
POST https://cap-eu.geelabapi.com/validate // Verification succeedsWill changing regions affect existing users?
Yes. Changing regions requires:
- Creating a new verification scenario for the new region
- Updating
captcha_idandapiServersin frontend code - Updating verification URL in backend code
- Redeploying the application
It is recommended to switch regions during off-peak hours and implement gradual rollout.
Next Steps
- 📖 Quick Start - Start integration
- 🔧 Deployment Guide - View detailed integration steps
- 🛡️ Compliance & Privacy - Understand data compliance requirements