Skip to content

CAPTCHA Solving

CAPTCHAs are challenges designed specifically to stop bots. They present puzzles that humans can solve easily but automated systems struggle with. RTILA X integrates with 2Captcha, a service where real humans solve CAPTCHAs on your behalf, allowing your automation to breeze through CAPTCHA-protected pages.

RTILA X can detect and solve the following CAPTCHA types:

CAPTCHA Type Detection Method Description
reCAPTCHA v2 iframe with google.com/recaptcha/api2/anchor Google’s image-based CAPTCHA with “I’m not a robot” checkbox
reCAPTCHA v3 iframe with google.com/recaptcha/enterprise/anchor Google’s invisible, score-based CAPTCHA
reCAPTCHA Enterprise iframe with google.com/recaptcha/enterprise/anchor Enterprise version of reCAPTCHA
hCaptcha iframe with hcaptcha.com/ Image-based CAPTCHA alternative to reCAPTCHA
Cloudflare Turnstile .cf-turnstile class Cloudflare’s JavaScript challenge
PerimeterX / DataDome #px-captcha or iframe with perimeterx/datadome Advanced bot detection with press-and-hold challenges

Before you can use CAPTCHA solving, you need:

  1. A 2Captcha account with a positive balance.
  2. Your 2Captcha API key.
  3. CAPTCHA solving enabled in RTILA X.
  1. Go to 2captcha.com.
  2. Click Sign Up and create an account.
  3. Add funds to your account. 2Captcha charges per CAPTCHA solved (typically $1–3 per 1,000 CAPTCHAs).
  4. Go to your Account Settings or API section.
  5. Copy your API Key. It’s a long alphanumeric string.

Tip: 2Captcha offers a small free trial balance for new accounts. Use this to test before adding funds.

  1. Go to Preferences → Stealth & Proxies.
  2. Toggle Enable CAPTCHA Solving to On.
  3. Set CAPTCHA Provider to 2Captcha (currently the only supported provider).
  4. Paste your 2Captcha API key into the API Key field.
  5. Click Test API Key to verify your key works.
  6. Save your settings.

If you want different CAPTCHA settings for different projects:

  1. Go to Browser Profiles in the sidebar.
  2. Create or edit a profile.
  3. Enable CAPTCHA Solving and enter your API key.
  4. Assign this profile to your project.

Before running your automation, verify your 2Captcha API key:

  1. In Preferences → Stealth & Proxies, enter your API key.
  2. Click Test API Key.
  3. RTILA X sends a balance check request to 2Captcha.
Result Meaning
✅ Valid API Key! Current balance: $X.XX Your key works and shows your current balance.
❌ Invalid API Key: … Your key is incorrect or expired. Double-check it.
❌ Connection error: … RTILA X couldn’t reach 2Captcha. Check your internet connection.

Tip: Always test your API key before running a long automation. If your balance is zero or your key is invalid, your automation will fail when it encounters a CAPTCHA.

Here’s the step-by-step process when RTILA X encounters a CAPTCHA:

RTILA X scans the page for CAPTCHA elements:

  • Looks for reCAPTCHA iframes (google.com/recaptcha/)
  • Looks for hCaptcha iframes (hcaptcha.com/)
  • Looks for Turnstile elements (.cf-turnstile)
  • Looks for PerimeterX/DataDome elements (#px-captcha)

Before attempting to solve, RTILA X checks your 2Captcha balance:

  • If your balance is below $0.001, solving is skipped and an error is logged.
  • If your balance is sufficient, solving proceeds.

Step 3: Humanoid Pre-Interaction (If Enabled)

Section titled “Step 3: Humanoid Pre-Interaction (If Enabled)”

If humanoid behavior is enabled, RTILA X performs natural mouse movements before interacting with the CAPTCHA:

  • Moves the mouse to the CAPTCHA area using Bezier curves.
  • Adds random delays to simulate human hesitation.
  • This helps avoid detection by behavioral analysis.

RTILA X sends the CAPTCHA to 2Captcha’s API:

  • For reCAPTCHA: Sends the site key and page URL.
  • For hCaptcha: Sends the site key and page URL.
  • For Turnstile: Sends the site key and page URL.

A real human at 2Captcha solves the CAPTCHA. This typically takes 10–30 seconds.

RTILA X receives the solution and injects it into the page:

  • For reCAPTCHA: Fills the g-recaptcha-response field and triggers the callback.
  • For hCaptcha: Fills the h-captcha-response field.
  • For Turnstile: Fills the response field.

After the solution is injected:

  • RTILA X waits for the page to process the solution.
  • If the page navigates to a new page, RTILA X waits for the navigation.
  • The automation continues from where it left off.
CAPTCHA Detected
│
▼
Balance Check ──(insufficient)──→ Skip & Log Error
│
│ (sufficient)
▼
Humanoid Pre-Interaction (if enabled)
│
▼
Send to 2Captcha API
│
▼
Human Solves CAPTCHA (10-30 seconds)
│
▼
Solution Received
│
▼
Inject Solution into Page
│
▼
Wait for Page to Process
│
▼
Automation Continues

Sometimes a CAPTCHA solution is rejected by the website, and the CAPTCHA reappears. RTILA X detects this and takes action:

  1. RTILA X tracks how many times each CAPTCHA type appears during a run.
  2. If the same CAPTCHA type appears 2 or 3 times, RTILA X performs a hard reset:
    • Clears all cookies and local storage.
    • Jitters the viewport size slightly (changes width/height by a few pixels).
    • Performs a realistic scroll up and down.
    • Reloads the page.
  3. If the CAPTCHA appears more than 3 times, RTILA X throws a CAPTCHA_LOOP_DETECTED error and stops the automation.

The hard reset is designed to break the CAPTCHA loop by making your browser look like a fresh session:

Action Purpose
Clear cookies and local storage Removes any tracking that links you to previous failed attempts
Jitter viewport size Makes the browser fingerprint slightly different
Realistic scroll Simulates human behavior to avoid behavioral detection
Page reload Starts fresh with a clean state

If the CAPTCHA loop persists after the hard reset attempts, RTILA X stops with:

CAPTCHA_LOOP_DETECTED: Stuck in [captcha_type] loop on [url]

What to do:

  • Check your 2Captcha balance.
  • Try different proxies.
  • Increase humanoid sensitivity to “High”.
  • The website may have very aggressive anti-bot protection that requires manual intervention.

PerimeterX and DataDome are advanced bot detection systems that use a “press and hold” challenge instead of traditional CAPTCHAs.

  1. RTILA X detects the PerimeterX/DataDome element.
  2. If humanoid behavior is enabled, RTILA X:
    • Moves the mouse to the challenge element using Bezier curves.
    • Presses and holds the mouse button for 10–15 seconds.
    • Releases the mouse button.
  3. RTILA X waits for the page to process the challenge.

Note: PerimeterX/DataDome handling requires humanoid behavior to be enabled. If humanoid is disabled, RTILA X cannot solve these challenges.

Tip Why It Matters
Always test your API key before running An invalid key or zero balance will cause your automation to fail at the first CAPTCHA.
Keep your 2Captcha balance topped up If your balance runs out mid-automation, CAPTCHA solving will fail.
Enable humanoid behavior with CAPTCHA solving Humanoid pre-interaction helps avoid behavioral detection before the CAPTCHA is even solved.
Use proxies with CAPTCHA solving Some websites tie CAPTCHAs to IP addresses. Using proxies helps avoid repeated CAPTCHAs.
Increase sensitivity for stubborn CAPTCHAs If CAPTCHAs keep reappearing, increase humanoid sensitivity to “High”.
Monitor your 2Captcha spending CAPTCHA solving costs money per solve. Monitor your spending to avoid surprises.
Don’t disable humanoid for PerimeterX/DataDome These challenges require humanoid behavior to solve. Disabling humanoid makes them unsolvable.
CAPTCHA solving adds time Each CAPTCHA solve takes 10–30 seconds. Factor this into your automation timing.
Some CAPTCHAs can’t be solved Very advanced or custom CAPTCHAs may not be solvable. In these cases, manual intervention may be needed.
Combine with other stealth features CAPTCHA solving works best when combined with proxies, humanoid behavior, and fingerprint alignment.