Skip to content

Captcha Solving

Fresh Source: docs.airtop.ai

Airtop provides two approaches for handling captchas: the built-in solver and Chrome extension-based solvers.

Built-in Captcha Solver

The simplest approach. Enable it in session configuration and Airtop handles captchas automatically.

typescript
const session = await client.sessions.create({
  configuration: {
    solveCaptcha: true,
    timeoutMinutes: 15,
  },
});
python
session = client.sessions.create(
    configuration={
        "solveCaptcha": True,
        "timeoutMinutes": 15,
    }
)

When solveCaptcha is true, Airtop will automatically detect and attempt to solve captchas encountered during browsing.

Chrome Extension Approach

For more control or specialized captcha types, install a captcha-solving Chrome extension into the browser profile.

Supported Extensions

ExtensionDescription
NopeCHAFree tier available, supports reCAPTCHA, hCaptcha, FunCaptcha
CapSolverPaid service, broad captcha type support
2CaptchaPaid service, human-assisted solving

Setup Steps

  1. Create a profile with the captcha extension installed
  2. Configure the extension with your API key (via Live View or programmatically)
  3. Save the profile so the extension persists
  4. Restore the profile in future sessions
typescript
// Step 1: Create session with profile for extension setup
const setupSession = await client.sessions.create({
  configuration: {
    persistProfile: true,
    timeoutMinutes: 15,
  },
});

// Step 2: Use Live View to install and configure the extension
const windowInfo = await client.windows.getWindowInfo(
  setupSession.data.id,
  windowId
);
console.log('Live View URL:', windowInfo.data.liveViewUrl);
// Navigate to chrome://extensions and install the solver

// Step 3: Save profile with extension
await client.sessions.terminate(setupSession.data.id, {
  saveProfileOnTermination: 'captcha-solver-profile',
});

// Step 4: Use in future sessions
const session = await client.sessions.create({
  configuration: {
    profileName: 'captcha-solver-profile',
    timeoutMinutes: 10,
  },
});
python
# Step 1: Create session with profile for extension setup
setup_session = client.sessions.create(
    configuration={
        "persistProfile": True,
        "timeoutMinutes": 15,
    }
)

# Step 2: Use Live View to install and configure the extension
window_info = client.windows.get_window_info(
    setup_session.data.id, window_id
)
print(f"Live View URL: {window_info.data.live_view_url}")

# Step 3: Save profile with extension
client.sessions.terminate(
    setup_session.data.id,
    save_profile_on_termination="captcha-solver-profile"
)

# Step 4: Use in future sessions
session = client.sessions.create(
    configuration={
        "profileName": "captcha-solver-profile",
        "timeoutMinutes": 10,
    }
)

Built-in vs Extension

FeatureBuilt-in (solveCaptcha)Chrome Extension
SetupOne config flagProfile setup required
reCAPTCHAYesYes
hCaptchaYesDepends on extension
CostIncluded in creditsExtension subscription + credits
ReliabilityGood for common typesMay handle edge cases better
ControlAutomaticConfigurable per extension

Best Practices

  1. Start with built-insolveCaptcha: true is the easiest approach
  2. Fall back to extensions if the built-in solver can't handle specific captcha types
  3. Increase timeout — captcha solving can take 10-30 seconds
  4. Combine with proxies — some captchas are IP-sensitive
  5. Test thoroughly — captcha behavior varies by site and region

Unofficial SOP documentation for Airtop