A NoCaptchaAI alternative for hCaptcha.
NoCaptchaAI and NoneCap end in the same place: a real token your page submits as
h-captcha-response. What differs is scope, how you integrate, and how much of
the price you can read before you sign up. NoCaptchaAI is a multi-captcha service with a
task API and a set of in-browser tools around it. NoneCap does hCaptcha and nothing else,
over one REST endpoint, at a rate printed on the pricing page.
NoneCap vs NoCaptchaAI at a glance
| NoneCap | NoCaptchaAI | |
|---|---|---|
| Captcha focus | hCaptcha only: regular, invisible, enterprise rqdata | hCaptcha, reCAPTCHA, GeeTest, Turnstile and image/text captchas, per their docs |
| Integration surface | REST token API | Task API, plus a browser extension, a Tampermonkey userscript, a Firefox add-on and a Puppeteer package |
| Billing model | Prepaid credits, from 1 credit per challenge round, no subscription | “Pay-as-you-go pricing. Per 1,000 solves. No subscriptions, no rate caps.” |
| Published price | $0.20-$0.50 per 1,000 credits, printed on the pricing page | Per-1,000 rates shown in their dashboard, not on a page we could read |
| Free tier | 1,300 credits on signup | 6,000 solves a month on signup, per their repo descriptions |
| Failed solves | Never charged | Not stated in the material we could read |
Enterprise rqdata | Fully supported; tokens enterprise sitekeys accept | Not addressed in their public material |
| API shape | POST /v1/solves, then read token | “Create a task, poll for the result.” |
Most of the decision sits in the first four rows. Scope is the first fork, because they cover many captcha types and NoneCap covers one. Integration surface is the second, since a task API and a browser extension are different amounts of work depending on what you have already built. The pricing rows are where the two are hardest to line up directly, so the rest of this page spends its time there.
Token API vs in-browser recognition
The two products overlap, but they are sold in two different shapes, and the shape decides how much of the work stays on your side.
In-browser recognition means you run the browser and the challenge
yourself. Your extension, userscript or Puppeteer script loads the page, hCaptcha renders
its widget, and the service is asked what the images show. The answer comes back, your
automation performs it, and hCaptcha issues the token to the session that earned it.
NoCaptchaAI ships that surface publicly: their
GitHub organisation holds a
Chrome extension, a Tampermonkey userscript, a Firefox add-on, a
nocaptchaai-puppeteer package, and a pip package described as “for qCaptcha
token, OCR”. Their projects now refer to the hCaptcha products as “qCaptcha”. The browser
extension README lists reCAPTCHA v2 and v3, “popularCaptcha”, GeeTest v3 and v4, AWS WAF,
Tencent, TikTok, Binance, BLS, MTCaptcha, Prosopo, Lemin and OCR captchas, along with HTTP
and SOCKS4/5 proxy support with rotation, User-Agent spoofing and a site blacklist. It
needs an API key from their dashboard to run.
A token API takes the browser off your side of the integration. You send the sitekey and the page
URL, a token comes back, and you post it with the form. Nothing renders on your side, so
there is no widget or viewport to manage and no click to perform. NoCaptchaAI
offers this shape too, described in their docs as “Create a task, poll for the result.”
NoneCap offers only this shape: POST /v1/solves with the sitekey and URL, and
the response carries id, status, token and
credits_charged.
Which one fits depends on where your automation already lives. If you are driving a real browser anyway, in-browser hCaptcha recognition keeps the whole flow inside that one session, and it is the only option when the page is doing something you cannot reproduce from outside it. If your job is a request-level scraper, a queue worker, or a backend flow with no browser in it at all, a token API is the smaller integration: one HTTP call and a token in the response, with no browser process on your side.
The shapes also differ in what you have to keep working. A recognition setup has moving parts on your own machine: the browser, the extension or script that drives it, and the version of the page you are automating, any of which can change under you. A token API moves all of that behind an HTTP call, and what you watch instead is whether the token you were handed is accepted when your form posts it.
Pricing you can read before you sign up
NoneCap publishes the whole ladder. $5 buys 10,000 credits, which is $0.50 per 1,000. $100 buys 400,000 credits, or $0.25 per 1,000. A $500 pack lands at $0.20 per 1,000. Billing starts at one credit per hCaptcha challenge round, and hCaptcha decides how many rounds a sitekey throws (often one, sometimes two or three). Credits are prepaid and never expire, there is no monthly fee, and failed solves are never charged. Concurrency is 5 on the free trial and up to 100 on paid packs.
NoCaptchaAI states its model plainly in their docs: “Pay-as-you-go pricing. Per 1,000 solves. No subscriptions, no rate caps.” The per-1,000 figures themselves are not on a page we could read, because the site renders them in-app once you have a key, so check your dashboard for the current line before you compare.
On free volume, theirs is the bigger offer. Their repository descriptions advertise 6,000 free solves a month on signup. NoneCap grants 1,300 credits once, when the account is created. If you want a few thousand hCaptchas a month for free, they win on that. NoneCap’s free credits exist for a narrower purpose: proving the tokens pass on your own sitekey before you put money in.
The units are not identical either, which matters as soon as you put the two numbers side by side. A rate quoted per 1,000 solves counts finished solves. NoneCap counts hCaptcha challenge rounds, from one credit each, so a sitekey that throws two rounds on the way to a token spends two credits. On sitekeys that hand over a token after a single round the two units line up; on harder ones they do not, and the only way to know which kind you have is to run your own traffic.
Past the free tier, price both against your real traffic. Round counts move the effective rate, so does whether a failure costs you anything, and so does the pack you buy into. A published ladder makes that arithmetic something you can do before signing up rather than after the first invoice.
Same token, one call to rewrite
Both services hand back a real hCaptcha token, so everything downstream of the solver, the
code that submits h-captcha-response, stays exactly as it is. What changes is
the solver call. NoneCap has its own format: POST /v1/solves, optionally
blocking for the result with ?wait=N, then read the token field.
One call usually carries the token back.
curl "https://api.nonecap.com/v1/solves?wait=90" \
-H "Authorization: Bearer $NONECAP_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "hcaptcha",
"sitekey": "f5ab1c2d-7e8f-4a9b-b1c2-d3e4f5a6b7c8",
"url": "https://target.example/login"
}' {
"id": "solve_01HQF7K3JKWZX",
"object": "solve",
"type": "hcaptcha",
"status": "solved",
"token": "P1_eyJ0eXAi...UV8w",
"credits_charged": 1
} Dropped into a Python helper, the whole flow is a few lines:
import os, time, requests
BASE = "https://api.nonecap.com/v1/solves"
HEADERS = {"Authorization": f"Bearer {os.environ['NONECAP_KEY']}"}
def solve_hcaptcha(sitekey: str, url: str) -> str:
r = requests.post(
BASE, headers=HEADERS,
params={"wait": 90}, # block up to 90s for the token
json={"type": "hcaptcha", "sitekey": sitekey, "url": url},
timeout=120,
)
r.raise_for_status()
solve = r.json()
# 202 = still in flight when the wait window closed, and token is null.
while solve["status"] in ("pending", "solving"):
time.sleep(2)
p = requests.get(f"{BASE}/{solve['id']}", headers=HEADERS, timeout=30)
p.raise_for_status()
solve = p.json()
if solve["status"] != "solved":
raise RuntimeError(solve["error"]) # not charged: no token, no credits
return solve["token"] # a real P1_… hCaptcha token
# Submit the returned token as the form's h-captcha-response field. ?wait is a long poll with a deadline. A solve still in flight when the window
closes comes back as a 202 with a null token, and you poll
GET /v1/solves/{id} from there, which is also what you want for
long-running jobs. See the API reference for the full solve
object and every language example.
Enterprise hCaptcha (rqdata)
Enterprise hCaptcha binds each challenge to a fresh rqdata blob issued by the
site, and a token minted without it will not verify against an enterprise sitekey. NoneCap
supports it: pass type: "hcaptcha_enterprise" with the rqdata
value and the token comes back the same way as a regular solve.
Enterprise rqdata is not addressed in any NoCaptchaAI material we could read,
not in their docs homepage, not in the browser extension README, and not in the repository
descriptions on their GitHub organisation. That is an absence of information rather than a
statement about what they support, so ask them directly if enterprise is your case. If
enterprise rqdata is the reason you are shopping for an alternative at all,
it is the part of NoneCap to test first, on your own sitekey, with the signup credits.
When NoCaptchaAI is the better fit
Scope decides this one. If you need reCAPTCHA, GeeTest, Cloudflare Turnstile, AWS WAF or the rest of the list their extension covers, NoCaptchaAI covers them and NoneCap does not; reCAPTCHA, Turnstile and FunCaptcha are on our roadmap, not in the product today. If your workflow is an extension or a userscript inside a browser you already drive, they ship those for many captcha types, while NoneCap’s extension is hCaptcha only. And if free monthly volume is what you are optimising for, 6,000 solves a month beats 1,300 signup credits. NoneCap is the better pick when the job is hCaptcha tokens and you want a price per 1,000 you can read up front, no charge on failures, credits that never expire, and enterprise
rqdatathat verifies.
Last updated August 2026.
Frequently asked
Can I point a NoCaptchaAI client at NoneCap?
/v1, and it does not implement NoCaptchaAI’s task wire format. Rewrite the solver call as POST /v1/solves with {"type": "hcaptcha", "sitekey": ..., "url": ...} and read the token field, or poll GET /v1/solves/{id} for it. Everything downstream stays as it is, because both services hand back a real hCaptcha token. NoneCap covers hCaptcha only, so any other captcha types keep their current solver.Is NoneCap cheaper than NoCaptchaAI?
Does NoneCap have a browser extension too?
Can NoneCap handle enterprise hCaptcha?
rqdata) sitekeys. Pass type: "hcaptcha_enterprise" with the rqdata blob the page issued, and NoneCap returns a token that enterprise sitekeys accept. See the API reference for the enterprise fields.