Official Python SDK for CaptchaSolv.com - Fast captcha solving API
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
|