Size a proxy pool for CAPTCHA solves

By solvethree3 min read

Size the pool around overlapping solve-and-submit flows, not application threads. Keep each flow’s proxy pinned through target submission; a ready token isn’t the point to release or rotate it.

On this page

Start with four pinned assignments

For four active logical flows, start with four proxy-session assignments. Each job uses its assigned session for both solving and target submission, then submits promptly with the returned browser identity.

Example · four active logical flows
[
  {
    "job": 1,
    "proxyEnvironmentVariable": "PROXY_SESSION_1",
    "reuseFor": "solve and target submission",
    "resultHandling": "submit promptly with returned browser identity"
  },
  {
    "job": 2,
    "proxyEnvironmentVariable": "PROXY_SESSION_2",
    "reuseFor": "solve and target submission",
    "resultHandling": "submit promptly with returned browser identity"
  },
  {
    "job": 3,
    "proxyEnvironmentVariable": "PROXY_SESSION_3",
    "reuseFor": "solve and target submission",
    "resultHandling": "submit promptly with returned browser identity"
  },
  {
    "job": 4,
    "proxyEnvironmentVariable": "PROXY_SESSION_4",
    "reuseFor": "solve and target submission",
    "resultHandling": "submit promptly with returned browser identity"
  }
]

This maps four jobs to four sessions—not necessarily four distinct IPs. It isn’t a universal one-IP-per-thread rule or a measured capacity limit. A thread that isn’t running a solve-and-submit flow doesn’t need its own assignment.

If your proxy vendor rotates exits, use its session or pinning feature so the solver and submission share the same exit. Four environment variables alone don’t establish that. Submit with the successful proxy and the solution’s userAgent and secChUa, rather than substituting your application’s usual browser headers.

Candidates are alternatives, not extra solve slots

A reCAPTCHA request takes exactly one of proxy or proxyCandidates. The candidate list accepts up to six distinct HTTP or HTTPS proxy URLs without a path, query, or fragment. Those are alternative exits for one task, not a parallel batch: four jobs with six candidates each still represent four logical flows, not 24 solves.

With candidates, retain the original array. For reCAPTCHA, solution.egressAttempts identifies the successful candidate by its one-based index. Validate that it’s an integer from 1 through the array length before selecting the proxy for submission. If it’s missing or invalid, stop rather than guess.

A candidate limit isn’t a pool-size recommendation, and fallback doesn’t guarantee a working exit. Session tasks require a single proxy, so don’t apply candidate lists to those tasks.

Test the four-flow layout before adding IPs

Run the actual target workflow. Record a non-secret proxy-session label, the terminal task state, and the target’s response for each job. Keep solver readiness separate from target acceptance; otherwise a pool can appear healthy while every submission fails.

Ready tokens wait before submission.

Can the application submit results as quickly as the four active flows produce them?

Try this: Reduce overlapping solves to what the application can consume promptly. More proxy sessions won’t fix delayed submission.

The target rejects a ready solution.

Did submission use the successful exit, returned browser identity, and intended target?

Try this: Correct mismatches before buying more IPs. If those match, compare proxy options using the same target workflow; residential, mobile, or datacenter labels don’t establish acceptance.

The proxy returns HTTP 407.

Check proxy authentication, including reserved characters in the username or password.

Try this: Fix the credentials and percent-encode their components, not the entire proxy URL. Adding candidates won’t repair the same authentication mistake.

If the four-flow run performs worse than a lower-overlap run, investigate that difference before expanding. Increase pinned assignments when you need more overlapping flows, then compare end-to-end results again. Neither a working proxy connection nor a larger pool establishes a CAPTCHA score.

Budget solves and proxy traffic separately

At current pay-as-you-go rates, 10,000 ready reCAPTCHA tasks cost $20 before account credit or applicable bonuses. Failed solves are refunded. A target rejection does not automatically refund a ready solve.

Keep proxy spending as a separate line item. Use your provider’s billing terms and traffic measured during the same solve-and-submit trial; the number of configured sessions or candidates doesn’t tell you the traffic bill.

Run your first task.

Start with $5 in workspace credit.

Create a workspace