# API Endpoints

CaptchaSolv API endpoints. Submit captcha tasks and retrieve solutions.

# Health Check

GET /health

No authentication required. Returns {"status": "ok", "service": "CaptchaSolv", "time": 1706100000}.


# Get Supported Types

GET /supportedTypes

No authentication required. Returns {"errorId": 0, "types": ["RecaptchaV2TaskProxyless", ...]}.


# Create Task (Async)

Creates a task and returns a taskId for polling with Get Task Result.

Request
Response
POST /createTask
Content-Type: application/json

{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "RecaptchaV2TaskProxyless",
    "websiteURL": "https://example.com",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq1bi0DJwx_mJ-"
  }
}
{
  "errorId": 0,
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

# Parameters

Parameter Type Required Description
clientKey string ✅ Your API key
task.type string ✅ Captcha type (see Supported Types)
task.websiteURL string ✅ Target website URL
task.websiteKey string ⚠️ Site key (required for most types)
task.proxy string ❌ Proxy for *Task types — protocol://user:pass@host:port
task.userAgent string ❌ Custom User-Agent for the browser session
task.captchaJs string ✅ GeeTest JS library URL (GeeTest v4 only)
task.apiServers string ❌ GeeTest API server URL (GeeTest v4 only)
task.staticServers string ❌ GeeTest static server URL (GeeTest v4 only)
task.score string ❌ Score mode for v3/v3e: normal (default) or high
waitForSlot boolean ❌ If true, waits up to 300s for a free slot instead of returning ERROR_LIMIT_EXCEEDED

# Get Task Result

Poll for the result of a created task.

Request
Response (Processing)
Response (Ready)
POST /getTaskResult
Content-Type: application/json

{
  "clientKey": "YOUR_API_KEY",
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
{
  "errorId": 0,
  "status": "processing"
}
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "token": "03AGdBq24PBCbwiDRaS_MJ...",
    "userAgent": "Mozilla/5.0 ..."
  },
  "cost": "0.00100",
  "createTime": 1706100000,
  "endTime": 1706100015,
  "solveCount": 1
}

# Status Values

Status Description
processing Task is being solved, poll again in 3-5 seconds
ready Task completed, solution available

# Solve (Sync)

Synchronous solving - waits for result (up to 120 seconds timeout).

Same request body as /createTask, including waitForSlot support.

Request
Response
POST /solve
Content-Type: application/json

{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "RecaptchaV2TaskProxyless",
    "websiteURL": "https://example.com",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq1bi0DJwx_mJ-"
  }
}
{
  "errorId": 0,
  "solution": {
    "token": "03AGdBq24PBCbwiDRaS_MJ...",
    "userAgent": "Mozilla/5.0 ..."
  },
  "cost": "0.00100",
  "createTime": 1706100000,
  "endTime": 1706100015,
  "solveCount": 1
}

# Get Balance

Request
Response
POST /getBalance
Content-Type: application/json

{
  "clientKey": "YOUR_API_KEY"
}
{
  "errorId": 0,
  "balance": 10.50
}