Skip to content

Proxies

Some captchas are tied to the IP address that loads them. For those types you can (or, for some, must) give the proxy the solver should use. Each task type page says whether a proxy is optional, required or not used.

Add proxy to params:

Field
type http, https, socks4 or socks5
host IP address or host name; private and loopback addresses are rejected
port 1–65535
login, password optional
Terminal window
export NOPTCHA_KEY=nop_test_... # your test or live key
curl -s -X POST "https://api.noptcha.com/v1/tasks" \
-H "Authorization: Bearer $NOPTCHA_KEY" \
-H 'Content-Type: application/json' \
-d @- <<EOF
{
"type": "recaptcha.v2",
"params": {
"website_url": "https://example.com/login",
"website_key": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"proxy": {
"type": "http",
"host": "203.0.113.7",
"port": 8080,
"login": "proxyuser",
"password": "proxypass"
}
}
}
EOF

A task with proxy uses the type’s proxy variant, which can have a different price (GET /v1/types lists the price of each variant).

Use the name without Proxyless (for example RecaptchaV2Task instead of RecaptchaV2TaskProxyless) and add proxyType, proxyAddress, proxyPort and optionally proxyLogin and proxyPassword. proxyPort may be a number or a string. Names ending in Proxyless ignore proxy fields.

Terminal window
export NOPTCHA_KEY=nop_test_... # your test or live key
curl -s -X POST "https://api.noptcha.com/createTask" \
-H 'Content-Type: application/json' \
-d @- <<EOF
{
"clientKey": "$NOPTCHA_KEY",
"task": {
"type": "RecaptchaV2Task",
"websiteURL": "https://example.com/login",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"proxyType": "http",
"proxyAddress": "203.0.113.7",
"proxyPort": 8080,
"proxyLogin": "proxyuser",
"proxyPassword": "proxypass"
}
}
EOF

proxy=login:password@host:port (or host:port) and proxytype=HTTP|HTTPS|SOCKS4|SOCKS5.

Proxy logins and passwords are used in memory only: they are never stored, logged or returned. Task responses show params without them.

If the solver cannot use the proxy, the task fails with proxy_error (v1), ERROR_PROXY_CONNECT_REFUSED or another ERROR_PROXY_… code (compatibility API), or ERROR_PROXY_CONNECTION_FAILED (2captcha legacy API). Failed tasks are not charged. Check that the proxy is reachable from the internet and accepts the credentials.