Skip to content

How to Use NoneCap With Residential Proxies to Solve hCaptcha

NoneCap solves hCaptcha through the proxy you pass with each solve. A sticky residential line keeps the solve and the submit on one IP.

HProxy TeamOctober 22, 2026Updated October 22, 20268 min read

How to Use NoneCap With Residential Proxies to Solve hCaptcha

NoneCap solves hCaptcha through any proxy you pass with the solve request, so the reliable way to use it is to give it a sticky residential line and then submit the token from that same line. NoneCap's documentation says that on enterprise sitekeys the token must reach the site from the address the solve used, and that the page load, the solve and the submit should all leave from one exit. The token itself lives about 120 seconds and works once. This guide sets that up with an HProxy Residential Premium line, shows the requests in Python, and explains which NoneCap error codes ask you to change the exit.

NoneCap is a partner of HProxy. Every link to NoneCap on this page goes to its own site and documentation.

What NoneCap does

NoneCap is a hosted hCaptcha solver API. You send the sitekey and the page URL, and it returns a P1_ token, the same string hCaptcha issues after a person passes a challenge. It charges per challenge round, from 1 credit per round, and a failed solve is never charged. A new account gets 1,300 free credits with no card, which is enough to wire up everything in this guide before you spend anything.

Two details of its answer matter later. The solve returns the browser user agent it presented while earning the token, and you send the token with that user agent. Without a proxy in the request, the solve leaves from NoneCap's own pool of addresses.

Why the IP decides whether the token works

hCaptcha scores a visitor before it decides whether to show a puzzle, and NoneCap's explainer on why hCaptcha appears names IP reputation as the heaviest input. Datacenter ranges are challenged almost by default, and the same page warns that heavily resold proxy pools get flagged as well, so the word "residential" on a pool proves little until you test it.

The address counts a second time when the site checks the token. hCaptcha's developer documentation tells site owners to verify every token on their server and recommends sending the visitor's IP with that check, because it improves accuracy. A token expires about 120 seconds after it is issued, and a second use of the same token returns already-seen-response, as NoneCap's token explainer sets out.

Enterprise sitekeys tighten the rule. NoneCap's page on enterprise hCaptcha and rqdata lists the IP binding on enterprise as tight, with the solve IP required to match the submit IP, and reports that in its own testing a token submitted from a different address was refused as invalid-response.

One sticky exit for the whole exchange
  1. Load the page

    through your sticky line

  2. Solve

    NoneCap uses the same line

  3. Submit

    same line, solve's user agent

  4. Report

    refused tokens to /v1/feedback

Source: NoneCap API reference and token explainer: one exit, inside the token's ~120 seconds · hproxy.comProxy.

Set it up in four steps

1. Create a sticky residential line

In the HProxy dashboard, create a Residential Premium line. Set the country the target site serves, and the state or city when the site cares, then choose a sticky session and HTTP or SOCKS5. Premium sticky sessions run from 3 minutes to 24 hours with no limit on how many you open, so pick a length that covers the page load, the solve and the submit with room to spare. The line looks like this, with your own login and password in place of the placeholders:

premium.hproxy.com:10000:YOUR-LOGIN:YOUR-PASSWORD

The login carries the country and the session, so every request you send through this line leaves from the same residential IP until the session ends. NoneCap needs a proxy on a public host, and premium.hproxy.com is one.

2. Load the page through that line

Open the target page through the line and read the sitekey from the hCaptcha widget. Keep the User-Agent of the client that loaded the page. On an enterprise sitekey, also capture the rqdata value from that render: it is single-use and belongs to that one challenge.

import os
import requests

PROXY = "http://YOUR-LOGIN:YOUR-PASSWORD@premium.hproxy.com:10000"
TARGET = "https://target.example/login"
UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0 Safari/537.36"

site = requests.Session()
site.proxies = {"http": PROXY, "https": PROXY}
site.headers["User-Agent"] = UA

page = site.get(TARGET, timeout=30)
# Read the sitekey (and rqdata on enterprise) from page.text here.
SITEKEY = "SITEKEY-FROM-THE-PAGE"

3. Send the solve with the same proxy

Post the solve to NoneCap with the line from step 1. NoneCap accepts the proxy as a URL with the scheme http, https, socks5, socks5h or socks4. The query ?wait=90 makes the call block until the solve finishes, up to 90 seconds.

solve = requests.post(
    "https://api.nonecap.com/v1/solves?wait=90",
    headers={"Authorization": f"Bearer {os.environ['NONECAP_KEY']}"},
    json={
        "type": "hcaptcha",          # "hcaptcha_enterprise" on enterprise sitekeys
        "sitekey": SITEKEY,
        "url": TARGET,
        "proxy": PROXY,
        "user_agent": UA,
        # "rqdata": RQDATA,          # enterprise only, fresh for each challenge
    },
    timeout=100,
).json()

On an enterprise sitekey, set the type to hcaptcha_enterprise and send the rqdata you captured in step 2.

4. Submit from the same line inside two minutes

Put the token into the form's h-captcha-response field and into g-recaptcha-response, which the widget fills with the same value, then submit through the same session. Send it with the user agent that NoneCap returned as your User-Agent header, because some sites refuse a token sent from a different browser version.

site.headers["User-Agent"] = solve["user_agent"] or UA
result = site.post(TARGET, data={
    # your form's own fields go here
    "h-captcha-response": solve["token"],
    "g-recaptcha-response": solve["token"],
}, timeout=30)

if not form_accepted(result):  # your own check of the site's answer
    requests.post(
        "https://api.nonecap.com/v1/feedback",
        headers={"Authorization": f"Bearer {os.environ['NONECAP_KEY']}"},
        json={"feedback": [{"solve_id": solve["id"], "outcome": "rejected"}]},
        timeout=30,
    )

The feedback call matters more than it looks. NoneCap describes it as the only signal it gets when a token passes hCaptcha and still fails your target, and it uses those reports to tell you when a proxy session has gone bad.

When NoneCap asks you to change the exit

NoneCap's API reference words several errors in terms of your proxy. Read the code, then change the right thing:

  • challenge_not_loaded: hCaptcha served no challenge through your proxy, which NoneCap says usually means the IP has poor reputation. Open a new sticky session to get a new exit. The solve is not charged.
  • token_not_granted: the challenge was answered and no token came back. If it repeats, use an exit with better reputation. The solve is not charged.
  • proxy_rejected: your proxy refused the connection over the credentials or the source IP. Check the login and the password of the line.
  • proxy_tls: the proxy intercepts or rewrites TLS, so hCaptcha cannot be reached through it.
  • proxy_stalled: the proxy accepted the connection and did not answer before the solve's deadline. Start a new session.
  • proxy_session_refused, an advisory on a solve: the last tokens you reported from that session were rejected. NoneCap says a new session, meaning a new exit, is more likely to pass.

One more case catches people who target local sites. When hCaptcha refuses to serve a challenge before the solve starts, NoneCap names three causes, and one of them is a site that serves only visitors from its own country. The fix there is a proxy located in that country, which is the country setting of your Residential Premium line.

What a solve costs

NoneCap sells prepaid credit packs, and its credits never expire. One challenge round costs at least 1 credit, and one solve is often several rounds, so measure your own rounds per solve on your target before you budget. On the proxy side, every solve reports proxy_bytes, the traffic that left through your line, so you can price both halves from your own numbers. Residential Premium starts at $1.00 per GB.

NoneCap, price per 1,000 credits by pack, October 21, 2026
Starter, 10,000 credits$5
$0.50
Builder, 50,000 credits$20
$0.40
Scale, 400,000 credits$100
$0.25
Max, 2,500,000 credits$500
$0.20
1,000 credits cost $0.50 in the smallest pack and $0.20 in the largest; a challenge round costs at least 1 credit.
Source: NoneCap's pricing page as it stood on October 21, 2026; the free trial adds 1,300 credits on signup · hproxy.comProxy.

Why we recommend HProxy for this

We sell the line this guide uses, so judge us by what you get and by the numbers below.

Residential Premium targets country, state, city, ISP and ASN. Its sticky sessions run from 3 minutes to 24 hours, it speaks HTTP, HTTPS and SOCKS5, and it relays UDP over SOCKS5 when you turn that on for a line. You pay per GB, from $1.00 per GB, and the GB balance has no expiry date; our Terms cover the pool behind a product for 30 days from purchase and explain what happens after.

Our free proxy list is checked around the clock, and every row shows its type, latency and a reliability label, so you can see what you are getting before you use it. On October 20, 2026 at 23:53 UTC it held 7,721 live proxies in 117 countries, and every one of them had been re-verified within the previous 30 minutes, 1,489 of them within 5. It is a good place to try the NoneCap API without spending a cent. It is the wrong place for production solving: 42.8 percent of those proxies sat in datacenter ranges, only 438 carried the label stable, and the median latency was 5.9 seconds per request, slow for a loop that has to load the page, solve and submit inside a token's 120 seconds.

HProxy free proxy list, minutes since each live proxy's last check
Under 5 minutes
1,489 proxies
5 to 15 minutes
4,277 proxies
15 to 30 minutes
1,955 proxies
All 7,721 live proxies had been re-verified within 30 minutes.
Source: HProxy's public proxy list API, read on October 20, 2026 at 23:53 UTC · hproxy.comProxy.

Use it where you are allowed

Run this only on sites and accounts you are authorized to automate. NoneCap draws the same line on its homepage: its tokens are for the testing, monitoring and automation you are authorized to run.

Sources

Frequently asked questions

Why does a solved hCaptcha token still get rejected?

Most often the token reached the site from a different IP than the one that solved it, it arrived after its roughly 120-second lifetime, or it was used a second time. On enterprise sitekeys the solve IP must match the submit IP; NoneCap reports that in its own testing such a token is refused as invalid-response. Pass a sticky proxy with the solve and submit through the same line.

Can rotating proxies solve hCaptcha?

A rotating line changes the exit between requests, which breaks the rule that the page load, the solve and the submit leave from one address. Use a sticky session for the whole exchange, and start a new session only when NoneCap tells you the exit has poor reputation.

Do I need a proxy with NoneCap at all?

Without a proxy, NoneCap solves from its own pool. A proxy matters when the site checks the address that submits the token, which NoneCap describes as the rule on enterprise sitekeys, or when the site serves only visitors from its own country.

Can I use free proxies with NoneCap?

For trying the API, yes. For production solving, no: on October 20, 2026, 42.8 percent of the 7,721 live proxies in our free list sat in datacenter ranges, which hCaptcha challenges almost by default, and the median latency was 5.9 seconds.

Is it legal to solve hCaptcha automatically?

Only on sites and accounts you are authorized to automate. NoneCap describes its own service as being for the testing, monitoring and automation you are authorized to run.

Proxies that don't die mid-job

Residential, ISP, datacenter and mobile, verified by the same engine that runs tens of millions of checks. They read as a real device and hold up under load. Pay as you go, and your balance never expires. $0.44/GB is the 2,000 GB+ rate; a single gigabyte is $0.50/GB, with no minimum order.

129M+ proxy checks run · 100+ countries · HTTP / HTTPS / SOCKS · re-checked every few minutes · no signup

HProxy.

Honest guides and comparisons on proxies, scraping and staying unblocked, from the team that runs the network.

RSS feed