API Documentation

CapMonster-compatible REST API. Base URL: http://localhost:5000

Quick Start

Get up and running in under 5 minutes:

  1. Create a free account
  2. Copy your API key from the API Keys page
  3. Top up your balance via Billing
  4. Make your first API call below

Python example

import requests

r = requests.post('http://localhost:5000/createTask', json={
    'clientKey': 'fx-your-api-key',
    'task': {
        'type':       'TurnstileTask',
        'websiteURL': 'https://example.com',
        'websiteKey': '0x4AAAAAAA...'
    }
})
print(r.json())

Authentication

All API requests require your clientKey (API key). Find it on the API Keys page. Keys start with fx-.

FieldTypeDescription
clientKeystringYour unique API key — required in every request

POST /createTask

Submit a CAPTCHA task for solving. The task is processed asynchronously — poll /getTaskResult for the result.

Request body

FieldTypeRequiredDescription
clientKeystringYour API key
taskobjectTask object (see Task Types)
task.typestringOne of the supported task type IDs

Success response

{ "errorId": 0, "taskId": 123456 }

Example — Cloudflare Turnstile

{
  "clientKey": "fx-your-api-key",
  "task": {
    "type":       "TurnstileTask",
    "websiteURL": "https://example.com/page",
    "websiteKey": "0x4AAAAAAA..."
  }
}

Example — Cloudflare WAF

{
  "clientKey": "fx-your-api-key",
  "task": {
    "type": "CloudflareWAF",
    "url":  "https://target.com"
  }
}

Example — Altcha

{
  "clientKey": "fx-your-api-key",
  "task": {
    "type":       "AltchaTask",
    "websiteURL": "https://example.com/page"
  }
}

POST /getTaskResult

Poll this endpoint after /createTask to retrieve the solved token. Retry every 2–3 seconds until status is "ready".

Request body

FieldTypeRequiredDescription
clientKeystringYour API key
taskIdintegerTask ID returned by /createTask

Response when ready

{
  "errorId": 0,
  "status":  "ready",
  "solution": "token_string_here..."
}

Response when still processing

{ "errorId": 0, "status": "processing" }

POST /getBalance

Check your current account balance.

# Request
{ "clientKey": "fx-your-api-key" }

# Response
{ "errorId": 0, "balance": 5.2341 }

GET / POST /getUserAgent

Returns a recommended User-Agent string to use in your solver requests. No authentication required.

Response

{
  "errorId":   0,
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ..."
}

Example

import requests

r = requests.get('http://localhost:5000/getUserAgent')
ua = r.json()['userAgent']
print(ua)
# Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ...

Task Types

typeCaptchaPrice / 1KSuccess
RecaptchaV2 reCAPTCHA v2 $0.60 99%
RecaptchaV3 reCAPTCHA v3 $0.90 99%
RecaptchaV2Enterprise reCAPTCHA v2 Enterprise $1.00 97%
RecaptchaV3Enterprise reCAPTCHA v3 Enterprise $1.50 98%
TurnstileTask Cloudflare Turnstile $1.30 99%
CloudflareWAF Cloudflare WAF $1.30 99%
GeeTestTask GeeTest $1.20 98%
FunCaptchaTask FunCaptcha $1.20 97%
AltchaTask Altcha $0.20 99%
AmazonWAF Amazon WAF $1.40 99%
DataDomeTask DataDome $2.20 97%

Error Codes

errorIderrorCodeDescription
0Success
1ERROR_KEY_DOES_NOT_EXISTInvalid or missing API key
2ERROR_ZERO_BALANCEInsufficient balance
3ERROR_NO_SUCH_CAPTCHA_TYPEUnknown task type
4ERROR_NO_SUCH_TASK_IDTask not found or not yours
5ERROR_CAPTCHA_UNSOLVABLESolver failed or unavailable