NeuroCaptcha

Task type

reCAPTCHA v2 Enterprise

RecaptchaV2EnterpriseTaskProxylessproxyless

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.

Enterprise variant: the site loads enterprise.js and may pass extra data in enterprisePayload — send it as is.

Proxyless: we solve from our own infrastructure. Best when the target does not bind the token to an IP.

Price

$1.50per 1,000 tasks

$0.0015 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
typestringrequiredRecaptchaV2EnterpriseTaskProxyless
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).
enterprisePayloadobjectoptionalExtra Enterprise parameters, for example s, as an object.
apiDomainstringoptionalDomain the widget loads from: google.com or recaptcha.net.
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.

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": "RecaptchaV2EnterpriseTaskProxyless",
        "websiteURL": "https://example.com/login",
        "websiteKey": "6Le-SITE-KEY",
    },
}).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