Standard createTask / getTaskResult. Base URL: https://landing.eysi.net/api
{
"clientKey": "ac-xxxxxxxxxxxxxxxx",
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://target.com/login",
"websiteKey": "6Lc..."
}
}
{
"errorId": 0,
"taskId": "9f1c2b7e-...-a91f",
"status": "idle",
"balance": 49.9992
}
{
"clientKey": "ac-xxxxxxxxxxxxxxxx",
"taskId": "9f1c2b7e-...-a91f"
}
Poll again every 2–3 seconds until status = ready.
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "03AGdBq25...",
"userAgent": "Mozilla/5.0 ..."
},
"cost": 0.0008,
"solveMs": 3480
}
{ "clientKey": "ac-xxxxxxxxxxxxxxxx" }
{ "errorId": 0, "balance": 49.9992, "currency": "USD" }
curl -X POST https://landing.eysi.net/api/createTask \ -H "Content-Type: application/json" \ -d '{"clientKey":"ac-xxxx","task":{"type":"AntiTurnstileTaskProxyLess","websiteURL":"https://target.com","websiteKey":"0x4AAA..."}}' curl -X POST https://landing.eysi.net/api/getTaskResult \ -H "Content-Type: application/json" \ -d '{"clientKey":"ac-xxxx","taskId":"9f1c2b7e-..."}'
Field names inside task follow the international standard, so your existing code only needs a new endpoint and clientKey.
| Task type | Services | Required parameters | Note | Price / 1,000 |
|---|---|---|---|---|
|
reCAPTCHA v2
|
websiteURL, websiteKey | $1.60 | ||
|
reCAPTCHA v2 (own proxy)
|
websiteURL, websiteKey, proxy | proxy required | $1.60 | |
|
reCAPTCHA v2 Enterprise
|
websiteURL, websiteKey | $2.40 | ||
|
reCAPTCHA v2 Enterprise (own proxy)
|
websiteURL, websiteKey, proxy | proxy required | $2.40 | |
|
reCAPTCHA v3
|
websiteURL, websiteKey, pageAction | $2.00 | ||
|
reCAPTCHA v3 (own proxy)
|
websiteURL, websiteKey, pageAction, proxy | proxy required | $2.00 | |
|
reCAPTCHA v3 Enterprise
|
websiteURL, websiteKey, pageAction | $6.00 | ||
|
reCAPTCHA v3 Enterprise (own proxy)
|
websiteURL, websiteKey, pageAction, proxy | proxy required | $6.00 | |
|
Cloudflare Turnstile
|
websiteURL, websiteKey | $2.00 | ||
|
Cloudflare Challenge
|
websiteURL, proxy | proxy required | $3.00 | |
|
GeeTest
|
websiteURL, gt, challenge | $2.40 | ||
|
GeeTest v4
|
websiteURL, captchaId | $2.40 | ||
|
GeeTest v4 (own proxy)
|
websiteURL, captchaId, proxy | proxy required | $2.40 | |
|
GeeTest (own proxy)
|
websiteURL, gt, challenge, proxy | proxy required | $2.40 | |
|
MTCaptcha
|
websiteURL, websiteKey | $2.40 | ||
|
MTCaptcha (own proxy)
|
websiteURL, websiteKey, proxy | proxy required | $2.40 | |
|
DataDome
|
captchaUrl, userAgent, proxy | proxy required | $4.00 | |
|
AWS WAF
|
websiteURL | $3.00 | ||
|
AWS WAF (own proxy)
|
websiteURL, proxy | proxy required | $3.00 | |
|
Botdeflector
|
websiteURL, domain, flowToken | $3.00 | ||
|
Image to Text (OCR)
|
body | instant result | $0.80 | |
|
AWS WAF grid recognition
|
images, question | instant result | $0.80 | |
|
Vision Engine
|
module, image, imageBackground | instant result | $1.20 |
{
"type": "ReCaptchaV3TaskProxyLess",
"websiteURL": "https://target.com/login",
"websiteKey": "6Lc...",
"pageAction": "login", // v3
"isInvisible": false, // v2 invisible
"enterprisePayload": { "s": "..." },
"apiDomain": "recaptcha.net"
}
solution: gRecaptchaResponse, userAgent
{
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": "https://target.com",
"websiteKey": "0x4AAA...",
"metadata": {
"action": "data-action of the widget",
"cdata": "data-cdata of the widget"
}
}
What you get back: token · type · userAgent
| What you see on the target page | Use this type | You get back |
|---|---|---|
| The page loads normally and only shows a single Cloudflare widget in the form (an element whose data-sitekey starts with 0x4) | AntiTurnstileTaskProxyLess | token |
| The whole page is blocked, showing "Just a moment…" with a 403 — you never reach the content | AntiCloudflareTask proxy required | cookies.cf_clearance |
Picking the wrong one always fails: Turnstile needs the widget sitekey, while a Challenge page has no sitekey at all.
{
"type": "AntiCloudflareTask",
"websiteURL": "https://target.com", // required
"proxy": "http:1.2.3.4:8080:user:pass", // required
"userAgent": "Mozilla/5.0 ... Chrome/141.0.0.0 ...", // recommended
"html": "<!DOCTYPE html>...Just a moment..." // recommended
}
What you get back:
{
"cookies": { "cf_clearance": "Bcg6jNLz..." },
"token": "Bcg6jNLz...",
"userAgent": "Mozilla/5.0 ..."
}
{
"type": "DatadomeSliderTask",
"captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=...",
"userAgent": "Mozilla/5.0 ...",
"proxy": "http:1.2.3.4:8080:user:pass"
}
solution: cookie (datadome=…). the userAgent must match the UA you use to request the target page; if captchaUrl contains t=bv your IP is blocked.
// v3 — take gt and challenge from the target page { "type": "GeeTestTaskProxyLess", "websiteURL": "https://target.com", "gt": "...", "challenge": "...", "geetestApiServerSubdomain": "api.geetest.com" } // optional // v4 — uses captchaId, NO gt/challenge { "type": "GeeTestV4TaskProxyLess", "websiteURL": "https://target.com", "captchaId": "...", "riskType": "slide" } // optional
{ "type": "AntiAwsWafTaskProxyLess",
"websiteURL": "https://target.com" }
// for stubborn pages, also send the values from window.gokuProps
{ "type": "AntiAwsWafTaskProxyLess",
"websiteURL": "https://target.com",
"awsKey": "AQID...",
"awsIv": "A6we...",
"awsContext": "rGXm...",
"awsChallengeJS": "https://....../challenge.js" }
Returns cookie (aws-waf-token). The key / iv / context values live in window.gokuProps on the captcha page — re-read them for every call, they expire fast.
{ "type": "MtCaptchaTaskProxyLess",
"websiteURL": "https://target.com",
"websiteKey": "MTPublic-..." }
{ "type": "AntiBotdeflectorTaskProxyLess",
"websiteURL": "https://target.com",
"domain": "target.com",
"flowToken": "..." }
Returns token. MTCaptcha sitekeys always start with MTPublic-.
{ "type": "ImageToTextTask",
"body": "<base64 no data: prefix>",
"module": "common" }
{ "type": "VisionEngine",
"module": "slider_1",
"image": "<base64>",
"imageBackground": "<base64>" }
"proxy": "http:1.2.3.4:8080:username:password" // with authentication "proxy": "socks5:1.2.3.4:1080:username:password" // socks4 / socks5 / http / https "proxy": "1.2.3.4:8080:username:password" // no prefix = http "proxy": "1.2.3.4:8080" // no authentication "proxy": "http://username:[email protected]:8080" // URL form
A malformed value is rejected immediately with ERROR_BAD_PROXY — you are not charged. For IP-authenticated proxies, contact support for the list of IPs to whitelist.
Only the types marked proxy required need this field; the rest use our infrastructure, so you do not need a proxy.
| errorCode | Meaning | How to fix |
|---|---|---|
| ERROR_KEY_DOES_NOT_EXIST | invalid or missing clientKey | Check your API key in the dashboard |
| ERROR_ZERO_BALANCE | Insufficient USD balance | Deposit more USDT |
| ERROR_TASK_NOT_SUPPORTED | task.type does not exist | Check the task type table above |
| ERROR_TASKID_INVALID | taskId does not belong to this account | Use the taskId you just created |
| ERROR_TIMEOUT | The task timed out | Coins refunded, send the task again |
| ERROR_TASK_TIMEOUT | The solver took too long | Coins refunded, send the task again |
| ERROR_SOLVE_FAILED | Captcha could not be solved | Coins refunded, try again or change proxy |
| ERROR_CAPTCHA_UNSOLVABLE | Captcha could not be recognised | Coins refunded, please try again |
| ERROR_INVALID_TASK_DATA | Missing / invalid parameters in the task | Check the "Parameters by type" section (no charge) |
| ERROR_PROXY_REQUIRED | This task type requires a proxy | Add the proxy field (no charge) |
| ERROR_PROXY_BANNED | Proxy blocked by the target site | Use a different proxy |
| ERROR_INVALID_IMAGE | Image size / format is invalid | Send clean base64, without the data: prefix |
| ERROR_SERVICE_UNAVAILABLE | The system is overloaded | Coins refunded, try again in a few minutes |
| ERROR_ACCOUNT_SUSPENDED | Account suspended | Contact support |