NeuroCaptcha

Migrate from Anti-Captcha, 2Captcha or CapSolver

Move an existing integration by changing the host: what stays the same and what to adjust for Anti-Captcha, 2Captcha and CapSolver.

本节内容以英文显示。

本页内容

The API speaks the Anti-Captcha JSON protocol and the 2Captcha in.php / res.php protocol. In most cases you replace the host and the key — and the rest of the code stays as it is.

Coming fromOld hostNew hostWhat else
Anti-Captchaapi.anti-captcha.comneurocaptcha.comnothing: same methods, fields and error ids
2Captcha, RuCaptcha2captcha.com, rucaptcha.comneurocaptcha.comin.php / res.php — see 2Captcha compatibility
CapSolverapi.capsolver.comneurocaptcha.comrename task types, split the proxy string — below

Anti-Captcha#

Replace https://api.anti-captcha.com with https://neurocaptcha.com. createTask, getTaskResult, getBalance, getQueueStats, getSpendingStats, reportIncorrectRecaptcha and reportCorrectRecaptcha take the same fields (clientKey, task, softId, callbackUrl) and return the same answers. Error ids follow the Anti-Captcha registry.

Before → after
https://api.anti-captcha.com/createTask
https://neurocaptcha.com/createTask
  • NoCaptchaTask and NoCaptchaTaskProxyless are accepted as aliases of RecaptchaV2Task and RecaptchaV2TaskProxyless.
  • languagePool is accepted and ignored.
  • reportIncorrectImageCaptcha answers ERROR_NO_SUCH_CAPCHA_ID: there are no image tasks.
  • getQueueStats knows queues 5, 6, 18, 19 and 20.
  • Webhooks to callbackUrl are signed — see Webhooks.
  • If an SDK keeps the host in a constant without a setting, call the HTTP API directly — it is two requests, see examples.

2Captcha and RuCaptcha#

Replace 2captcha.com (or rucaptcha.com) with neurocaptcha.com in the in.php and res.php addresses. Keep key, method=userrecaptcha and the other parameters.

Before → after
https://2captcha.com/in.php?key=…&method=userrecaptcha&googlekey=…&pageurl=…
https://neurocaptcha.com/in.php?key=…&method=userrecaptcha&googlekey=…&pageurl=…

Many client libraries let you set the host — for example, the official 2Captcha Python library takes it as server:

Python, 2captcha-python
from twocaptcha import TwoCaptcha

solver = TwoCaptcha("YOUR_API_KEY", server="neurocaptcha.com")
result = solver.recaptcha(sitekey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", url="https://www.google.com/recaptcha/api2/demo")
print(result["code"])

Only reCAPTCHA is supported (method=userrecaptcha: v2, invisible v2, v3, Enterprise). Other methods answer ERROR_BAD_PARAMETERS.

CapSolver#

CapSolver uses the same createTask → getTaskResult flow. Change api.capsolver.com to neurocaptcha.com and adjust a few details. Task type names differ in letter case:

CapSolverNeuroCaptcha
ReCaptchaV2TaskProxyLessRecaptchaV2TaskProxyless
ReCaptchaV2TaskRecaptchaV2Task
ReCaptchaV2EnterpriseTaskProxyLessRecaptchaV2EnterpriseTaskProxyless
ReCaptchaV2EnterpriseTaskRecaptchaV2EnterpriseTask
ReCaptchaV3TaskProxyLessRecaptchaV3TaskProxyless
ReCaptchaV3EnterpriseTaskProxyLessRecaptchaV3EnterpriseTaskProxyless
ReCaptchaV3EnterpriseTaskRecaptchaV3EnterpriseTask
ReCaptchaV3TaskRecaptchaV3TaskProxyless (without proxy) or RecaptchaV3EnterpriseTask
  • Proxy: instead of one proxy string (type:host:port:login:password) pass proxyType, proxyAddress, proxyPort, proxyLogin and proxyPassword.
  • Errors: every answer is HTTP 200 — check errorId != 0 and errorCode, not the HTTP status.
  • taskId is an integer. Send it back as a number, not as a string.
  • appId → softId (an integer from the developer program).
  • feedbackTask → reportIncorrectRecaptcha / reportCorrectRecaptcha.
  • getToken (synchronous) is not available: use createTask + getTaskResult or a webhook.

Checklist#

  1. Create a test key and run your integration against https://neurocaptcha.com — test tasks are free.
  2. Check the task type names against the list.
  3. Make sure any errorId other than 0 is handled as an error, and ERROR_NO_SLOT_AVAILABLE / ERROR_TOO_MUCH_REQUESTS are retried with a pause.
  4. Switch to a live key and top up the balance.