API Reference
Complete API documentation for CapBypass
API Reference
Full reference for all CapBypass API endpoints.
Base URL: https://api.capbypass.pro
Endpoints
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| POST | /createTask | Yes | Create a new solving task |
| POST | /getTaskResult | Yes | Get task result |
| POST | /getBalance | Yes | Check account balance |
| GET | /pricing | No | Get task type pricing |
| GET | /health | No | Health 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
| Parameter | Type | Required | Description |
|---|---|---|---|
clientKey | String | Yes | Your API key |
developerKey | String | No | Developer affiliate key for commission attribution |
task.type | String | Yes | Task type — see Supported Challenges |
task.websiteURL | String | Yes | Target page URL |
task.proxy | String | Conditional | Required for non-ProxyLess types. See Proxy Format |
task.userAgent | String | No | User agent for the solver to match your client fingerprint |
reCAPTCHA Parameters
Applies to ReCaptchaV2Task*, ReCaptchaV3Task*, ReCaptchaV3EnterpriseTask*.
| Parameter | Type | Required | Description |
|---|---|---|---|
websiteKey | String | Yes | reCAPTCHA site key from the target page |
pageAction | String | No | Action name from grecaptcha.execute() (v3) |
isInvisible | Boolean | No | Set true for reCAPTCHA v2 invisible mode (no checkbox) |
isSession | Boolean | No | Capture and return the recaptcha-ca-t session cookie in the solution (v3 only) |
enterprisePayload | Object | No | Extra options passed to grecaptcha.enterprise.execute() (Enterprise) |
apiDomain | String | No | Override the reCAPTCHA API domain (e.g. recaptcha.net) |
See the reCAPTCHA v3 guide for details.
AWS WAF Parameters
Applies to AntiAwsWafTask / AntiAwsWafTaskProxyLess.
| Parameter | Type | Description |
|---|---|---|
awsChallengeJS | String | challenge.js URL (PoW flow) |
awsApiJs | String | jsapi.js URL (CAPTCHA flow) |
awsKey | String | AES key from gokuProps |
awsIv | String | AES iv from gokuProps |
awsContext | String | Challenge context from gokuProps |
awsProblemUrl | String | Problem endpoint URL for visual CAPTCHA |
awsApiKey | String | API key value from the WAF config |
awsExistingToken | String | Previous aws-waf-token for refresh/upgrade |
See the AWS WAF guide for details.
GeeTest Parameters
Applies to GeetestTask / GeetestTaskProxyLess (v3 and v4).
| Parameter | Type | Description |
|---|---|---|
gt | String | v3 captcha_id (with challenge) or v4 captcha_id alias |
challenge | String | v3 challenge (32-hex). Its presence selects the v3 flow |
captchaId | String | v4 captcha_id (leave empty for v3) |
captchaHost | String | v3 enterprise proxy host (e.g. captcha-api.pingan.com) |
geetestApiServerSubdomain | String | Custom 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).
| Form | Pattern |
|---|---|
| URL | protocol://user:pass@host:port |
| Colon | host:port:user:pass or host:port |
| Protocol + colon | protocol: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:mypassProxyLess 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 Code | Description |
|---|---|
ERROR_KEY_DOES_NOT_EXIST | Invalid API key |
ERROR_ZERO_BALANCE | Insufficient balance |
ERROR_CAPTCHA_UNSOLVABLE | Challenge could not be solved |
ERROR_TASK_NOT_FOUND | Task ID not found |
ERROR_INVALID_TASK_DATA | Missing or invalid parameters |
ERROR_PROXY_NOT_DEFINED | Proxy required for a non-ProxyLess task type — use the ProxyLess variant or supply task.proxy |
ERROR_PROXY_CONNECTION_FAILED | Could not connect through your proxy (refused, unreachable, or bad credentials) - check the proxy is alive and reachable |
ERROR_PROXY_BANNED | The target blocked your proxy IP (datacenter or flagged) - use a residential or mobile proxy |
ERROR_INVALID_DEVELOPER_KEY | The provided developerKey is invalid or disabled |
ERROR_WRONG_TASK_TYPE | Wrong task type for this site (e.g., standard vs enterprise) |
ERROR_TIMEOUT | Task exceeded timeout |
ERROR_TASK_QUEUE_FULL | Server is at capacity — retry in a few seconds |
ERROR_TASK_TYPE_COMING_SOON | Task type is not yet available |
ERROR_TASK_TYPE_INACTIVE | Task type is currently disabled |
ERROR_WORKER_CRASHED | Solver process exited mid-solve — balance refunded, safe to retry |
ERROR_INTERNAL | Internal server error |