2Captcha Solver avatar

2Captcha Solver

Pricing

Pay per usage

Go to Apify Store
2Captcha Solver

2Captcha Solver

Solves Turnstile, reCAPTCHA v2, reCAPTCHA v3, reCAPTCHA Enterprise and normal image captchas via the official 2Captcha API.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Mark

Mark

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Share

Official Apify Actor wrapper around the 2Captcha API. Solve Cloudflare Turnstile, reCAPTCHA v2 / v3 / Enterprise and normal image (text) captchas directly from your scrapers, automations, and workflows running on the Apify platform — no SDK integration required.

This Actor is maintained by 2Captcha, the original captcha-solving service.

What it does

You give the Actor:

  • Your 2Captcha API key (created in the 2Captcha dashboard),
  • The captcha type you want to solve,
  • The relevant parameters for that type (URL + sitekey, or a base64 image),
  • Optionally a proxy configuration (Apify Proxy or your own list).

The Actor sends the task to 2Captcha's createTask endpoint, polls getTaskResult every 5 seconds, and stores the resulting token / text in the default dataset together with the task metadata. Total wait time is capped at 5 minutes per run.

Supported captcha types

captchaType2Captcha task typeWhat goes into token
turnstileTurnstileTaskProxyless / TurnstileTaskCloudflare Turnstile token
recaptchaV2RecaptchaV2TaskProxyless / RecaptchaV2Taskg-recaptcha-response
recaptchaV3RecaptchaV3TaskProxyless (always proxyless)g-recaptcha-response
recaptchaEnterpriseRecaptchaV2EnterpriseTaskProxyless / RecaptchaV2EnterpriseTaskg-recaptcha-response
normalImageToTextTaskThe text recognized in the image

Input

All input fields are configured through a clean UI on the Apify console.

FieldTypeRequiredDescription
apiKeystring (secret)yesYour 2Captcha API key. Encrypted on the platform.
captchaTypeenumyesOne of turnstile, recaptchaV2, recaptchaV3, recaptchaEnterprise, normal.
urlstringfor non-normalFull URL of the page where the captcha appears.
sitekeystringfor non-normalThe captcha sitekey rendered on that page.
actionstringoptionalUsed for recaptchaV3 / recaptchaEnterprise. Defaults to verify.
minScorestringoptionalreCAPTCHA v3 minimum score, 0.10.9. Defaults to 0.3.
base64stringfor normalBase64-encoded captcha image.
proxyConfigurationobjectoptionalApify Proxy or a custom proxy list. Forwarded to 2Captcha so the captcha is solved from your IP. Ignored for recaptchaV3 and normal.

Output

A single record is pushed to the default dataset on success:

{
"taskId": 82540839253,
"captchaType": "recaptchaV2",
"token": "0cAFcWeA7eb...rAvhcSPdb0N6mv1CeaPkbPDeQqaNM4Glu...",
"cost": "0.16",
"ip": "171.97.52.200",
"solveCount": 3,
"createTime": 1777352791,
"endTime": 1777352832,
"solvedAt": "2026-04-28T05:07:13.294Z"
}

If 2Captcha returns an error (errorId !== 0) or the task is still processing after 300 seconds, the run finishes with a clear failure message in the run status.

Pricing

  • You pay 2Captcha for every successfully solved captcha. See 2Captcha pricing — typical rates are around $2.99/1000 for reCAPTCHA v2 and $0.50/1000 for normal image captchas. Failed solves are not charged.
  • You also pay Apify for the compute units used by this Actor (very small — most runs finish in 5–60 seconds).

Examples

reCAPTCHA v2

{
"apiKey": "YOUR_2CAPTCHA_API_KEY",
"captchaType": "recaptchaV2",
"url": "https://www.google.com/recaptcha/api2/demo",
"sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
}

Cloudflare Turnstile

{
"apiKey": "YOUR_2CAPTCHA_API_KEY",
"captchaType": "turnstile",
"url": "https://target-site.example/login",
"sitekey": "0xABCDEFGH..."
}

reCAPTCHA v3

{
"apiKey": "YOUR_2CAPTCHA_API_KEY",
"captchaType": "recaptchaV3",
"url": "https://target-site.example/checkout",
"sitekey": "6Lc...",
"action": "checkout",
"minScore": "0.7"
}

Normal image captcha

{
"apiKey": "YOUR_2CAPTCHA_API_KEY",
"captchaType": "normal",
"base64": "iVBORw0KGgoAAAANSUhEUgAAA..."
}

With Apify Proxy (for IP-bound captchas)

{
"apiKey": "YOUR_2CAPTCHA_API_KEY",
"captchaType": "recaptchaV2",
"url": "https://target-site.example/login",
"sitekey": "6Lc...",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

When a proxy is supplied for non-recaptchaV3 / non-normal captchas, the Actor parses the proxy URL and forwards proxyType / proxyAddress / proxyPort / proxyLogin / proxyPassword to 2Captcha, switching the task type from *Proxyless to the proxied variant automatically.

Calling this Actor from your own scraper

The standard Apify pattern: call this Actor from any Apify SDK / API client and read its dataset.

import { Actor } from 'apify';
const run = await Actor.call('two-captcha/two-captcha-solver', {
apiKey: process.env.TWOCAPTCHA_API_KEY,
captchaType: 'recaptchaV2',
url: 'https://target-site.example/login',
sitekey: '6Lc...',
});
const { items } = await Actor.openDataset(run.defaultDatasetId).then(d => d.getData());
const token = items[0].token;

Limits and notes

  • Each run solves one captcha. For high-volume usage, call the Actor in parallel from your scraper.
  • The polling timeout is 300 seconds per task. Most reCAPTCHA v2 / Turnstile / normal captchas resolve in well under 60 seconds.
  • The softId of every request is set to 5656 (2Captcha partner ID).
  • The full source is open and runs as a transparent thin wrapper — no captured input data, no proxying through third-party services.

Support

  • 2Captcha service questions, billing, balance: support@2captcha.com / Telegram
  • Issues with this Actor: open an issue on the Actor's GitHub or contact us through the Apify console.