API Reference

Complete API documentation for CapBypass

API Reference

Full reference for all CapBypass API endpoints.

Base URL: https://api.capbypass.pro

Endpoints

MethodEndpointAuthDescription
POST/createTaskYesCreate a new solving task
POST/getTaskResultYesGet task result
POST/getBalanceYesCheck account balance
GET/pricingNoGet task type pricing
GET/healthNoHealth check

POST /createTask

Create a new task for solving.

Request Body

{
  "clientKey": "YOUR_API_KEY",
  "developerKey": "OPTIONAL_DEV_KEY",
  "task": {
    "type": "ReCaptchaV3TaskProxyLess",
    "websiteURL": "https://example.com",
    "websiteKey": "6LdyC2cUAAAAACGuDKpXeDorzUDWXmdqeg-xy696",
    "pageAction": "login"
  }
}

Common Parameters

ParameterTypeRequiredDescription
clientKeyStringYesYour API key
developerKeyStringNoDeveloper affiliate key for commission attribution
task.typeStringYesTask type — see Supported Challenges
task.websiteURLStringYesTarget page URL
task.proxyStringConditionalRequired for non-ProxyLess types. See Proxy Format
task.userAgentStringNoUser agent for the solver to match your client fingerprint

reCAPTCHA Parameters

Applies to ReCaptchaV2Task*, ReCaptchaV3Task*, ReCaptchaV3EnterpriseTask*.

ParameterTypeRequiredDescription
websiteKeyStringYesreCAPTCHA site key from the target page
pageActionStringNoAction name from grecaptcha.execute() (v3)
isInvisibleBooleanNoSet true for reCAPTCHA v2 invisible mode (no checkbox)
isSessionBooleanNoCapture and return the recaptcha-ca-t session cookie in the solution (v3 only)
enterprisePayloadObjectNoExtra options passed to grecaptcha.enterprise.execute() (Enterprise)
apiDomainStringNoOverride the reCAPTCHA API domain (e.g. recaptcha.net)

See the reCAPTCHA v3 guide for details.

AWS WAF Parameters

Applies to AntiAwsWafTask / AntiAwsWafTaskProxyLess.

ParameterTypeDescription
awsChallengeJSStringchallenge.js URL (PoW flow)
awsApiJsStringjsapi.js URL (CAPTCHA flow)
awsKeyStringAES key from gokuProps
awsIvStringAES iv from gokuProps
awsContextStringChallenge context from gokuProps
awsProblemUrlStringProblem endpoint URL for visual CAPTCHA
awsApiKeyStringAPI key value from the WAF config
awsExistingTokenStringPrevious aws-waf-token for refresh/upgrade

See the AWS WAF guide for details.

GeeTest Parameters

Applies to GeetestTask / GeetestTaskProxyLess (v3 and v4).

ParameterTypeDescription
gtStringv3 captcha_id (with challenge) or v4 captcha_id alias
challengeStringv3 challenge (32-hex). Its presence selects the v3 flow
captchaIdStringv4 captcha_id (leave empty for v3)
captchaHostStringv3 enterprise proxy host (e.g. captcha-api.pingan.com)
geetestApiServerSubdomainStringCustom v4 API subdomain (default gcaptcha4.geetest.com)

See the GeeTest guide for details.

Response

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

Proxy Format

For task types that require a proxy (non-ProxyLess variants), provide the proxy as a string in the task.proxy field.

Both the URL form and the colon-delimited form are accepted. Supported protocols: http, https, socks4, socks5 (defaults to http when omitted).

FormPattern
URLprotocol://user:pass@host:port
Colonhost:port:user:pass or host:port
Protocol + colonprotocol:host:port:user:pass or protocol:host:port

Examples:

http://1.2.3.4:8080
http://user:[email protected]:8080
socks5://user:[email protected]:1080
1.2.3.4:8080:myuser:mypass
socks5:1.2.3.4:1080:myuser:mypass

ProxyLess Task Types

If you use a ProxyLess task type (e.g., ReCaptchaV2TaskProxyLess), you do not need to provide a proxy. Our infrastructure handles it automatically.


POST /getTaskResult

Poll for task completion.

Request Body

{
  "clientKey": "string (required)",
  "taskId": "string (required)"
}

Response (Processing)

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

Response (Ready - reCAPTCHA)

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "gRecaptchaResponse": "03AGdBq24PBCb...",
    "userAgent": "Mozilla/5.0 ...",
    "secChUa": "\"Chromium\";v=\"136\", ..."
  }
}

Response (Ready - AWS WAF)

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "cookie": "aws-waf-token=xxxxxxxx...",
    "token": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:...",
    "captchaVoucher": "eyJ...",
    "userAgent": "Mozilla/5.0 ..."
  }
}

captchaVoucher is only returned for the visual-CAPTCHA flow — submit it to the Amazon CVF endpoint /aaut/verify/cvf/{jwt}.

Response (Ready - GeeTest v4)

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "captcha_id": "fcd636b4514bf7ac4143922550b3008b",
    "lot_number": "354ab6dd4e594fd...",
    "pass_token": "f5c8...",
    "gen_time": "1716950400",
    "captcha_output": "Hk2x...",
    "userAgent": "Mozilla/5.0 ..."
  }
}

Submit lot_number, pass_token, gen_time, and captcha_output as the verification form params.

Response (Ready - GeeTest v3)

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "challenge": "3c1b...ab",
    "validate": "5e2f...",
    "seccode": "5e2f...|jordan",
    "userAgent": "Mozilla/5.0 ..."
  }
}

Submit challenge, validate, and seccode as the verification form params.

Response (Failed)

{
  "errorId": 1,
  "status": "failed",
  "errorCode": "ERROR_CAPTCHA_UNSOLVABLE",
  "errorDescription": "Unable to solve the challenge"
}

POST /getBalance

Check your account balance.

Request Body

{
  "clientKey": "string (required)"
}

Response

{
  "errorId": 0,
  "balance": 123.45
}

GET /pricing

Get current pricing for all task types. No authentication required.

user_cost is the price per single solve (multiply by 1000 for the per-1K figure).

Response

The example below is pulled live from the production /pricing endpoint:

{
  "pricing": [
    {
      "task_type": "AntiAwsWafMobileTask",
      "user_cost": 0.0013,
      "status": "active",
      "solver": "waf"
    },
    {
      "task_type": "AntiAwsWafTask",
      "user_cost": 0.0013,
      "status": "active",
      "solver": "waf"
    },
    {
      "task_type": "AntiAwsWafTaskProxyLess",
      "user_cost": 0.0013,
      "status": "active",
      "solver": "waf"
    },
    {
      "task_type": "CaptchaFoxTask",
      "user_cost": 0.003,
      "status": "active",
      "solver": "captchafox"
    },
    {
      "task_type": "CaptchaFoxTaskProxyLess",
      "user_cost": 0.003,
      "status": "active",
      "solver": "captchafox"
    },
    {
      "task_type": "GeetestTask",
      "user_cost": 0.00099,
      "status": "active",
      "solver": "geetest"
    },
    {
      "task_type": "GeetestTaskProxyLess",
      "user_cost": 0.00099,
      "status": "active",
      "solver": "geetest"
    },
    {
      "task_type": "ReCaptchaV3EnterpriseTask",
      "user_cost": 0.002,
      "status": "active",
      "solver": "recaptcha"
    },
    {
      "task_type": "ReCaptchaV3EnterpriseTaskProxyLess",
      "user_cost": 0.002,
      "status": "active",
      "solver": "recaptcha"
    },
    {
      "task_type": "ReCaptchaV3Task",
      "user_cost": 0.0006,
      "status": "active",
      "solver": "recaptcha"
    },
    {
      "task_type": "ReCaptchaV3TaskProxyLess",
      "user_cost": 0.0006,
      "status": "active",
      "solver": "recaptcha"
    }
  ]
}

GET /health

Health check endpoint. Returns 200 OK when the API is operational.

Response

{
  "status": "ok"
}

Error Codes

Error CodeDescription
ERROR_KEY_DOES_NOT_EXISTInvalid API key
ERROR_ZERO_BALANCEInsufficient balance
ERROR_CAPTCHA_UNSOLVABLEChallenge could not be solved
ERROR_TASK_NOT_FOUNDTask ID not found
ERROR_INVALID_TASK_DATAMissing or invalid parameters
ERROR_PROXY_NOT_DEFINEDProxy required for a non-ProxyLess task type — use the ProxyLess variant or supply task.proxy
ERROR_PROXY_CONNECTION_FAILEDCould not connect through your proxy (refused, unreachable, or bad credentials) - check the proxy is alive and reachable
ERROR_PROXY_BANNEDThe target blocked your proxy IP (datacenter or flagged) - use a residential or mobile proxy
ERROR_INVALID_DEVELOPER_KEYThe provided developerKey is invalid or disabled
ERROR_WRONG_TASK_TYPEWrong task type for this site (e.g., standard vs enterprise)
ERROR_TIMEOUTTask exceeded timeout
ERROR_TASK_QUEUE_FULLServer is at capacity — retry in a few seconds
ERROR_TASK_TYPE_COMING_SOONTask type is not yet available
ERROR_TASK_TYPE_INACTIVETask type is currently disabled
ERROR_WORKER_CRASHEDSolver process exited mid-solve — balance refunded, safe to retry
ERROR_INTERNALInternal server error

On this page