CaptchaSolv Python SDK
Official Python library for CaptchaSolv.com - Fast and reliable captcha solving API.
Supported Captcha Types
- ReCaptcha V3
- Cloudflare Turnstile
- GeeTest V4
- Akamai Bot Manager
- Kasada
- DataDome
- AWS WAF
Installation
pip install captchasolv
For async support:
pip install captchasolv[async]
Quick Start
from captchasolv import CaptchaSolv
solver = CaptchaSolv("YOUR_API_KEY")
result = solver.turnstile(
website_url="https://example.com",
website_key="0x4AAAAAAABS7vwvV6VFfMcD"
)
print(result.solution.token)
Async Usage
import asyncio
from captchasolv import AsyncCaptchaSolv
async def main():
async with AsyncCaptchaSolv("YOUR_API_KEY") as solver:
result = await solver.turnstile(
website_url="https://example.com",
website_key="0x4AAAAAAABS7vwvV6VFfMcD"
)
print(result.solution.token)
asyncio.run(main())
Examples
ReCaptcha V3
result = solver.recaptcha_v3(
website_url="https://example.com",
website_key="6Le-wvkSAAAAAPBMRTvw0Q4Muexq1bi0DJwx_mJ-",
page_action="login"
)
Cloudflare Turnstile
result = solver.turnstile(
website_url="https://example.com",
website_key="0x4AAAAAAABS7vwvV6VFfMcD"
)
Akamai
result = solver.akamai(
website_url="https://example.com",
akamai_script="https://example.com/path/to/akamai/script.js", # or use website_key
data={
"_abck": "current_abck_cookie_value",
"bm_sz": "current_bm_sz_cookie_value"
}
)
print(result.solution.token) # Cookie string: "_abck=...; bm_sz=..."
print(result.solution.user_agent) # User-Agent to use in requests
Kasada
result = solver.kasada(
website_url="https://example.com",
pjs="https://example.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js",
v="optional_version" # optional
)
# Returns dict with Kasada headers (x-kpsdk-cd, x-kpsdk-ct, x-kpsdk-st, etc.)
print(result.solution.headers) # {'x-kpsdk-cd': '...', 'x-kpsdk-ct': '...', ...}
print(result.solution.user_agent)
# Use headers in your request
headers = {"User-Agent": result.solution.user_agent}
headers.update(result.solution.headers)
DataDome
result = solver.datadome(
website_url="https://example.com",
captcha_url="https://geo.captcha-delivery.com/captcha/?..."
)
print(result.solution.cookies)
AWS WAF
result = solver.aws_waf(
website_url="https://example.com",
aws_key="AQIDAHjcYu/GjX+QlghicBg..."
)
GeeTest V4
result = solver.geetest_v4(
website_url="https://example.com",
website_key="647f5ed2ed8acb4be36784e01556bb71"
)
Using Proxies
All convenience methods support an optional proxy parameter:
# Turnstile with proxy
result = solver.turnstile(
website_url="https://example.com",
website_key="0x4AAAAAAABS7vwvV6VFfMcD",
proxy="http://user:pass@proxy.example.com:8080"
)
# Akamai with proxy
result = solver.akamai(
website_url="https://example.com",
akamai_script="https://example.com/script.js",
proxy="socks5://user:pass@proxy.example.com:1080"
)
# Kasada with proxy
result = solver.kasada(
website_url="https://example.com",
pjs="https://example.com/ips.js",
proxy="http://proxy.example.com:8080"
)
Supported Proxy Formats
http://host:port
http://user:pass@host:port
https://user:pass@host:port
socks4://host:port
socks5://user:pass@host:port
Generic Solve Method
For advanced usage or custom task types:
from captchasolv import CaptchaSolv, TaskType
solver = CaptchaSolv("YOUR_API_KEY")
result = solver.solve(
task_type=TaskType.TURNSTILE,
website_url="https://example.com",
website_key="0x4AAAAAAABS7vwvV6VFfMcD",
user_agent="Mozilla/5.0 ...",
)
Async/Polling Mode
For long-running tasks, you can create a task and poll separately:
task_id = solver.create_task(
task_type=TaskType.TURNSTILE,
website_url="https://example.com",
website_key="0x4AAAAAAABS7vwvV6VFfMcD"
)
result = solver.wait_for_result(task_id, timeout=120)
print(result.solution.token)
Check Balance
balance = solver.get_balance()
print(f"Balance: ${balance}")
Error Handling
from captchasolv import (
CaptchaSolv,
CaptchaSolvError,
InvalidKeyError,
LimitExceededError,
CaptchaUnsolvableError,
)
try:
result = solver.turnstile(...)
except InvalidKeyError:
print("Invalid API key")
except LimitExceededError:
print("Balance exhausted or rate limit reached")
except CaptchaUnsolvableError:
print("Failed to solve captcha, retry")
except CaptchaSolvError as e:
print(f"Error {e.error_code}: {e.error_description}")
Configuration
solver = CaptchaSolv(
api_key="YOUR_API_KEY",
base_url="https://v1.captchasolv.com",
timeout=130.0,
poll_interval=3.0,
)
Response Object
result = solver.recaptcha_v2(...)
print(result.status)
print(result.solution.token)
print(result.solution.user_agent)
print(result.solution.cookies)
print(result.cost)
print(result.solve_count)
Links
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
captchasolv-1.0.3.tar.gz
(11.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file captchasolv-1.0.3.tar.gz.
File metadata
- Download URL: captchasolv-1.0.3.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9448d93bc3ceb1810a9767fc3c371ceacc1da86aab57311c07f4079b766d7396
|
|
| MD5 |
1731f43c837272fbcf352db4de7efdd6
|
|
| BLAKE2b-256 |
2ec288862a15424476852a3e599f5b7b61cd481cbc95f7f09018ee22585e2eb6
|
File details
Details for the file captchasolv-1.0.3-py3-none-any.whl.
File metadata
- Download URL: captchasolv-1.0.3-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efc1d9213118f6eb949eb9bc27b942f526dc54d39d582fb8a36cb2b438279034
|
|
| MD5 |
518677e60eefb8eaea11dded456715ca
|
|
| BLAKE2b-256 |
59aaff15e06d13949fd52d84837d21feadb05e29f9243b2ac6c88b9b31c466bc
|