✨ NoCaptcha v2 is here — fresh look, API v2 & agentic solving.Read the changelog →
Image Tasks

GeeTest V4

Solve GeeTest v4 image challenges with the NoCaptchaAI API.

Create a task

POST https://api.nocaptchaai.com/createTask

The task type is always GeetestClassification. The question field determines the sub-type.

Slide captcha

{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GeetestClassification",
    "websiteURL": "https://example.com",
    "images": ["base64-background-image"],
    "slice": ["base64-slider-piece"],
    "question": "slide"
  }
}

Grid (nine-piece) captcha

{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GeetestClassification",
    "websiteURL": "https://example.com",
    "images": ["base64-slice-0", "...", "base64-slice-8"],
    "slice": ["base64-question-image"],
    "question": "grid:Select all images containing cars"
  }
}

Click captcha

{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GeetestClassification",
    "websiteURL": "https://example.com",
    "images": ["base64-background-image"],
    "slice": ["base64-example-0", "base64-example-1"],
    "question": "click:Select the same characters"
  }
}

Match (icon-crush) captcha

{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GeetestClassification",
    "websiteURL": "https://example.com",
    "numbers": [3, 1, 2]
  }
}

GoBang captcha

{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GeetestClassification",
    "websiteURL": "https://example.com",
    "numbers": [1, 2, 3]
  }
}

Get the result

// Slide — drag target:
{ "errorId": 0, "solution": { "slide": [120, 45] } }

// Grid / Click — cell indexes or click points:
{ "errorId": 0, "solution": { "objects": [0, 4, 8] } }

// Match / GoBang — swap coordinates:
{ "errorId": 0, "solution": { "valid_swaps": [[0, 0], [1, 1]] } }
  • slide[x, y] drag target coordinates.
  • objects → indexes to click (grid) or {x, y} point groups (click).
  • valid_swaps → two [row, col] coordinates for matching/swapping.

Code example

import requests
API_KEY = "YOUR_API_KEY"; BASE = "https://api.nocaptchaai.com"
res = requests.post(f"{BASE}/createTask", json={
    "clientKey": API_KEY,
    "task": {
        "type": "GeetestClassification",
        "websiteURL": "https://example.com",
        "images": ["base64-background-image"],
        "slice": ["base64-slider-piece"],
        "question": "slide"
    }
}).json()
print(res)
const API_KEY = "YOUR_API_KEY", BASE = "https://api.nocaptchaai.com";
const res = await fetch(`${BASE}/createTask`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    clientKey: API_KEY,
    task: {
      type: "GeetestClassification",
      websiteURL: "https://example.com",
      images: ["base64-background-image"],
      slice: ["base64-slider-piece"],
      question: "slide"
    }
  })
}).then(r => r.json());
console.log(res);
curl -X POST https://api.nocaptchaai.com/createTask \
  -H "Content-Type: application/json" \
  -d '{
    "clientKey": "YOUR_API_KEY",
    "task": {
      "type": "GeetestClassification",
      "websiteURL": "https://example.com",
      "images": ["base64-background-image"],
      "slice": ["base64-slider-piece"],
      "question": "slide"
    }
  }'

Next steps

On this page

Content-Length: 0