NeuroCaptcha

Task type

reCAPTCHA v2

RecaptchaV2Taskyour proxy

reCAPTCHA v2 is the "I'm not a robot" checkbox and its invisible variant. The API returns a gRecaptchaResponse token that you submit with the page form.

With your proxy: the task is solved through the proxy you pass, so the token matches your IP. Proxy credentials are deleted after solving.

Price

$0.60per 1,000 tasks

$0.0006 per task

Get an API key

Live metrics, 24 h

Live metrics for this type will appear on the status page after launch.

Task parameters

ParameterTyperequiredTask parameters
typestringrequiredRecaptchaV2Task
websiteURLstringrequiredFull URL of the page with the captcha.
websiteKeystringrequiredSite key (data-sitekey or the k parameter of the anchor request).
isInvisiblebooleanoptionaltrue for the invisible reCAPTCHA v2 (no checkbox).
recaptchaDataSValuestringoptionalValue of data-s, if the page uses it (some Google services).
userAgentstringoptionalUser-Agent to solve with; use the same one when submitting the token.
cookiesstringoptionalCookies for the target site in the key1=value1; key2=value2 format.
proxyTypestringrequiredhttp, socks4 or socks5.
proxyAddressstringrequiredProxy IP address or host (public addresses only).
proxyPortintegerrequiredProxy port.
proxyLoginstringoptionalProxy login, if the proxy requires authorisation.
proxyPasswordstringoptionalProxy password. Deleted after the task is solved.

Example

import time
import requests

API = "https://"
KEY = "YOUR_API_KEY"

# 1. create a task: the price is held, not charged
task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
        "type": "RecaptchaV2Task",
        "websiteURL": "https://example.com/login",
        "websiteKey": "6Le-SITE-KEY",
        "proxyType": "http",
        "proxyAddress": "203.0.113.10",
        "proxyPort": 8080,
        "proxyLogin": "user",
        "proxyPassword": "pass",
    },
}).json()
if task["errorId"]:
    raise RuntimeError(task["errorCode"])

# 2. poll the result (or pass "callbackUrl" and get a signed webhook)
while True:
    time.sleep(3)
    res = requests.post(f"{API}/getTaskResult",
                        json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if res["errorId"]:
        raise RuntimeError(res["errorCode"])
    if res["status"] == "ready":
        print(res["solution"]["gRecaptchaResponse"])
        break

Other task types