Image captchas in Python today — reCAPTCHA & hCaptcha planned — updated August 2026
CaptchaKings enables seamless captcha recognition in Python 3.8+ using simple requests or async aiohttp without heavy external SDK dependencies:
Support status: Live today via the API: image/text captchas ($0.80 per 1,000, ~1.2s median) plus GeeTest, Tencent, xCaptcha, MTCaptcha and Amazon WAF ($1.00 per 1,000) — measured numbers at /benchmarks. reCAPTCHA, hCaptcha and Cloudflare Turnstile are planned, not yet available — see /supported-captchas.
The simplest path for image captcha solving — a single multipart POST with requests (official SDKs are on the roadmap; you don't need one):
pip install requests
import requests
API_KEY = "your_api_key_here"
with open("captcha.jpg", "rb") as f:
response = requests.post(
"https://captchakings.com/api/process.php",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"captcha": f}
)
data = response.json()
if data.get("success"):
print(data["data"]["prediction"]) # solved text
print(data["data"]["confidence"]) # 0-100
print(data["billing"]["balance_remaining"])
else:
print("Error:", data["error"]["message"])
Your API key is in Dashboard → API Keys after signing up.
reCAPTCHA v2/v3 and hCaptcha will be solved as token tasks: you submit the page URL and site key, and you receive a token to inject. This flow goes live when reCAPTCHA support launches — the exact endpoint and request format will be announced on the changelog; see /recaptcha-solver. The image-captcha flow above works today. The outline below is a preview of the planned pipeline:
import requests
API_KEY = "your_api_key_here"
def solve_recaptcha_v2(page_url, site_key):
# The final reCAPTCHA endpoint and request format will be
# announced on the CaptchaKings changelog at launch.
# Planned flow:
# 1. POST your API key + page URL + site key to the solver endpoint
# 2. Receive the g-recaptcha-response token in the API response
# 3. Return the token for injection into the target form
raise NotImplementedError("reCAPTCHA support is coming soon to CaptchaKings")
Once reCAPTCHA support launches and you have the gRecaptchaResponse token, inject it into the hidden textarea and submit — the standard flow for Python captcha automation (preview):
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com/signup")
token = solve_recaptcha_v2(driver.current_url, "SITE_KEY_FROM_PAGE")
driver.execute_script(
'document.getElementById("g-recaptcha-response").innerHTML = arguments[0];',
token
)
driver.find_element("css selector", "form").submit()
Solving thousands of images? Don't block on one request at a time. The image API supports concurrent requests, so async clients scale linearly:
import aiohttp
import asyncio
API_KEY = "your_api_key_here"
API_URL = "https://captchakings.com/api/process.php"
async def solve_one(session, path):
with open(path, "rb") as f:
form = aiohttp.FormData()
form.add_field("captcha", f, filename=path)
async with session.post(
API_URL,
headers={"Authorization": f"Bearer {API_KEY}"},
data=form
) as resp:
data = await resp.json()
return data["data"]["prediction"] if data.get("success") else None
async def main():
files = ["cap1.jpg", "cap2.jpg", "cap3.jpg"]
async with aiohttp.ClientSession() as session:
results = await asyncio.gather(*[solve_one(session, f) for f in files])
print(results)
asyncio.run(main())
| Captcha Type | Endpoint | Result |
|---|---|---|
| Image captcha | captchakings.com/api/process.php | Solved text (synchronous) — live |
| GeeTest, Tencent, xCaptcha, MTCaptcha, Amazon WAF | captchakings.com/api/geetest.php, tencent.php, xcaptcha.php, mtcaptcha.php, amazon.php | Coordinates / solution (synchronous) — live |
| reCAPTCHA v2/v3, hCaptcha | Announced at launch | Planned — preview only, not yet available |
| 2Captcha-compatible | captchakings.com/in.php / res.php | Drop-in migration format (xCaptcha only) |
requests.Session in long-running workers to keep connections alive.confidence on image solves; resubmit when it's below your threshold instead of accepting garbage.No official library yet — SDKs are on the roadmap and will be announced on the changelog. You don't need one: a plain requests multipart POST covers image captchas in a handful of lines, and that works today. reCAPTCHA/hCaptcha support is planned (see /supported-captchas and /recaptcha-solver); the preview above shows the flow that will apply at launch.
reCAPTCHA support is planned, not yet available via the API — see /supported-captchas and /recaptcha-solver. At launch, you will POST the page URL and site key to the CaptchaKings solver endpoint (exact request format announced on the changelog), then inject the returned gRecaptchaResponse token into the form. The image-captcha flow on this page works today.
Yes. The image-captcha API fits any Selenium/Playwright workflow today. For reCAPTCHA (planned), the API will return a token your browser automation injects into g-recaptcha-response and submits — the solving happens on our side, so your browser never runs the challenge.
Image captchas: $0.80 per 1,000 solves via the generic image API. Token types (GeeTest, Tencent, xCaptcha, MTCaptcha, Amazon WAF): $1.00 per 1,000. Pay-as-you-go, no subscription. $0.50 free balance on signup, no credit card. See the full price comparison against other services.
$0.50 free balance on signup — test with your own captchas.
Get Your API Key