serp·base API Documentation

Captcha: GeeTest v4

GeeTest v4 asks the user to slide a puzzle piece or select figures in order. Unlike v3 it is identified by a single captcha_id, and the solution comes back as five values you must submit together.

$15.00 / 1,000 POST /v1/query x402 · USDC on Base

Overview

Single endpoint, predictable JSON. Send POST /v1/query with the tool field set to captcha_geetest_v4.

curl -X POST https://api.serp-base.com/v1/query \
  -H "Content-Type: application/json" \
  -d '{"tool": "captcha_geetest_v4", "captcha_id": "e392e1d7fd421dc63325744d5a2b9c73", "url": "https://site.com/login"}'

Parameters

FieldTypeRequiredDescriptionExample
captcha_idstringyesGeeTest v4 captcha_id from the page script srce392e1d7fd421dc63325744d5a2b9c73
urlstringyesFull URL of the page with the captchahttps://gt4.geetest.com/demo

Code examples

cURL

curl -X POST https://api.serp-base.com/v1/query \
  -H "Content-Type: application/json" \
  -d '{"tool": "captcha_geetest_v4", "captcha_id": "e392e1d7fd421dc63325744d5a2b9c73", "url": "https://site.com/login"}'

Python

import requests

r = requests.post("https://api.serp-base.com/v1/query", json={
  "tool": "captcha_geetest_v4", "captcha_id": "e392e1d7fd421dc63325744d5a2b9c73", "url": "https://site.com/login"
})
print(r.json()["data"])

JavaScript

const r = await fetch('https://api.serp-base.com/v1/query', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "tool": "captcha_geetest_v4", "captcha_id": "e392e1d7fd421dc63325744d5a2b9c73", "url": "https://site.com/login"
})
});
const { data } = await r.json();

PHP

$ch = curl_init('https://api.serp-base.com/v1/query');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
  CURLOPT_POSTFIELDS => '{"tool": "captcha_geetest_v4", "captcha_id": "e392e1d7fd421dc63325744d5a2b9c73", "url": "https://site.com/login"}',
  CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);

Response

{
  "ok": true,
  "data": {
    "solution": {
      "captcha_id": "e392e1d7...",
      "lot_number": "523a4f73...",
      "pass_token": "dde1b921...",
      "gen_time": "1792456952",
      "captcha_output": "AoN_jUGy..."
    }
  }
}

Important: the response is a JSON object with five fields — submit all five to the target site. Sending only pass_token will not pass. You can find captcha_id in the page source, in the script tag: gcaptcha4.geetest.com/load?captcha_id=...

Payment

Pay per request with USDC on Base via the x402 protocol. Gas is paid by the facilitator — you only need USDC in your wallet.

No payment is taken when a service fails. We run the work first and settle afterwards.

Errors

CodeMeaningAction
402Payment requiredSign the payment and retry with X-PAYMENT
400Bad parametersCheck required fields above
422Data could not be producedNothing charged — retry later
429Rate limitedBack off and retry
503Tool temporarily unavailableRetry later — nothing charged

Related tools

Captcha: image to text · Captcha: reCAPTCHA V2 · Captcha: reCAPTCHA V3 · Captcha: hCaptcha · Captcha: Cloudflare Turnstile Captcha: Cloudflare Challenge · Captcha: Yandex SmartCaptcha

Pay-per-request data APIs. Built for agents and developers.