Skip to content
Programmatic guide

GeeTest v4 solver for Playwright Node.js

GeeTest v4 is harder to fingerprint than v3 — the unified captchaId is site-specific and bound to the issuing origin. Sonic returns a complete token quadruple ready to drop into the v4 callback.

Node.js · Playwright

Runnable example

import { chromium } from 'playwright'
import { CaptchaSonic } from 'captchasonic'

const browser = await chromium.launch()
const page = await browser.newPage()
await page.goto('https://target.example.com/login')

const sonic = new CaptchaSonic('YOUR_API_KEY')
const result = await sonic.solve({
  type: 'GeeTestTaskProxyless',
  websiteURL: page.url(),
  version: 4,
  initParameters: { captchaId: 'e3922bba93b748c7a8a3b9a3e1a8a1e3' },
})

await page.evaluate((r) => {
  window.geetest4_result = r
}, result)
await page.click('form button[type=submit]')

Replace YOUR_API_KEY with a real key from your dashboard. The token is good for one form submission.

FAQ

Where do I find the GeeTest v4 captchaId?
Search the page source for "captchaId" — it's a hex string that's site-specific and stable. v4 uses one captchaId instead of v3's gt+challenge pair.
Which puzzle variants does Sonic solve?
All four: slide, icon, space, and gobang. The same task endpoint handles them — we detect the variant from the captchaId response and route accordingly.
How do I hand the result back to the v4 widget?
Capture the four returned fields (lot_number, pass_token, gen_time, captcha_output) and pass them to the widget's callback. The page library validates them as if a human solved the puzzle.

How CaptchaSonic compares for this captcha

Feature-by-feature against the four most-mentioned alternatives. Independently benchmarked; numbers refresh quarterly.

FeatureCaptchaSonic2CaptchaCapSolverAnti-CaptchaCapMonster Cloud
AI / ML solver (no human relay)
GeeTest v3 / v4
Success rate (trailing 30d)99.9%~95%~98%~95%~97%
Proxy + proxyless modes
Free trial credits
SDK languages (Py, Node, Go, C#, Java, PHP)66454
Selenium / Puppeteer / Playwright examples
Browser extension
Webhook callbacks
99.9% uptime SLA

Yes / No / Partial reflect publicly documented support. Pricing and solve-time figures snapshot the published rate at the time this page was last updated.

Related guides