Skip to content
NexCaptcha

Product

Captcha solving API

The Captcha Solving API takes a challenge description and returns the answer: g-recaptcha-response, cf-turnstile-response, a cf_clearance cookie, coordinates, text. Your request never leaves your infrastructure — you keep the session, the cookies and the exit IP, and you post the token with the form yourself. 33 challenge types run on this endpoint.

You get back

A token you submit yourself

See the other product

[ 01 ]How a request travels

How a request travels

The whole difference between our two products is where your request stops.

  1. 01

    createTask with what you can see

    A JSON POST carrying clientKey and a task object: the type name, the page URL, the site key, and a proxy only where the challenge is bound to an IP. You get back { errorId, taskId }.

  2. 02

    Poll getTaskResult, or take the callback

    getTaskResult returns { errorId, status, solution } and flips from processing to ready. Set callbackUrl instead and the same body is POSTed to you, so there is nothing to poll.

  3. 03

    Read the solution

    solution.gRecaptchaResponse for reCAPTCHA and hCaptcha, the token field for Turnstile, cf_clearance plus the user agent it was solved with for a Cloudflare interstitial, coordinates or text for the image families.

  4. 04

    You submit it yourself

    The token goes into your own form POST or XHR, from your session, your cookies and your IP. Nothing about your request path changes, which is the point: the solve is a subroutine, not a detour.

[ 02 ]What it gets through

What it gets through

  • reCAPTCHA v2, v3 and EnterpriseReturns g-recaptcha-response; v3 tasks take the action name and target the score you ask for.
  • Cloudflare TurnstileManaged, non-interactive and invisible modes on one task type, returning cf-turnstile-response inside its 300-second window.
  • Cloudflare ChallengeThe full interstitial, returning a cf_clearance cookie issued through your proxy, with the user agent to pin beside it.
  • hCaptcha and hCaptcha EnterpriseStandard tokens, and Enterprise tasks that carry signed rqdata through the solve.
  • FunCaptcha / Arkose LabsReturns the session token for the rotating game variants, including the harder public keys.
  • DataDome, AWS WAF, ImpervaSlider and interstitial flows that answer with a cookie rather than a form field.
  • GeeTest, Tencent, NetEase Yidun, AlibabaThe Chinese widget families: slide, click-in-order and icon selection, returning validate and seccode pairs.
  • Image, rotate, slider, click and audioSend the image or clip and get text, an angle, a distance or coordinates back.

[ 03 ]What you get

What you get

33

types on the API

Challenge types

One endpoint, one balance, from image OCR up to Arkose and the Chinese widget families. Nothing is a separate subscription.

4.8s

median, p95 11.2s

Solve time

Across all types on live traffic. Image OCR lands near 1.9s; a Cloudflare interstitial pulls the tail out to 19.5s.

99.4%

acceptance

Accepted solves

Share of tasks that returned a token the target then accepted. Failed and timed-out tasks are not billed.

Balance does not expire

Pay per solve against a balance, with no dated package and no monthly minimum. The same balance pays for gateway requests.

[ 04 ]Five lines, any language

Five lines, any language

solve.sh
# 1. Submit the challenge.
curl -s https://api.nexcaptcha.net/createTask \
  -H "Content-Type: application/json" \
  -d '{
    "clientKey": "YOUR_API_KEY",
    "task": {
      "type": "RecaptchaV2TaskProxyless",
      "websiteURL": "https://shop.example.com/login",
      "websiteKey": "6Lc..."
    }
  }'
# -> {"errorId":0,"taskId":"9f2c1d..."}

# 2. Poll until status is ready, then read the token.
curl -s https://api.nexcaptcha.net/getTaskResult \
  -H "Content-Type: application/json" \
  -d '{"clientKey":"YOUR_API_KEY","taskId":"9f2c1d..."}'
# -> {"errorId":0,"status":"ready",
#     "solution":{"gRecaptchaResponse":"03AGdBq2..."}}

[ 05 ]What it costs

What it costs

Both products bill from one rate card, per 1,000 successful solves, priced by the challenge type: $0.75 image-to-text, $1.50 reCAPTCHA v2, $2.18 reCAPTCHA v3, Turnstile, hCaptcha, Arkose and DataDome, $4.49 Cloudflare Challenge, GeeTest v4, Akamai, Kasada and PerimeterX. A task that fails or times out is not billed, and the price does not change if you later decide you would rather have the gateway fetch the page for you.

The full rate card

[ 06 ]Which one fits

Which one fits

Pick this one when

  • The captcha sits inside a form you are submitting with your own session, and the POST has to come from your own IP.
  • You already load the page fine and only one widget is in the way — reCAPTCHA, GeeTest, an image field, a slider.
  • Something other than your scraper owns the HTTP call: a mobile client, a worker queue, an internal service that just needs the token string.
  • You are migrating off another solver and want the createTask/getTaskResult calls to keep working with the base URL changed.

Pick the other one when

  • You get a 403 or an interstitial before your form ever renders, so there is no widget to point a task at.
  • Matching a token to the fingerprint, cookie jar and user agent that will be accepted is turning into more code than the scrape itself.
  • You are crawling many pages behind one challenge and want the cleared session reused instead of re-solved per URL.
  • Your browser automation should route through an upstream proxy and never see the shield at all.
Automation API

[ 07 ]Questions about this one

Questions about this one

If the page loads and a widget blocks the form, you want this one: you get the token and submit it from your own session. If a shield blocks the page before your form exists, you want the Automation API, which returns the page itself. Same engine, same rate card, different stopping point.

No, and that is deliberate. Both are priced per 1,000 successful results by the challenge encountered, from the same rate card, so the interface you pick is a design decision rather than a cost decision. Turnstile is $2.18 per 1,000 either way; a Cloudflare interstitial is $4.49 either way.

Yes. The token is a string: solve the widget through the API, then set it on the page and fire the form, which is the usual pattern for a browser-driven flow that owns its own session. If the browser is being stopped by a full interstitial before your script can run, that is the Automation API's job instead.

They are two separate tasks here, in order: a Cloudflare Challenge task returns cf_clearance and the matching user agent, you pin both to your session, then the widget inside the page is a second task returning its token. If you would rather not orchestrate that, the Automation API does both inside one request.

Nothing — failed and timed-out tasks are not billed, and balance does not expire, so there is no package to burn down before a retry. Median solve time is 4.8s and p95 is 11.2s across all types, with 99.4% of returned tokens accepted by the target. New accounts get free test credit to run a type end to end before topping up.

Solve your first thousand on us.

Create a key, paste it into the sample above, and watch a real token come back. No card, no sales call.