The API Learning Center is the hub for integrating CAPTCHA solving into your applications. Everything here teaches you how to call a solving service directly from code — no browser required — and how to build resilient, production-grade integrations.
What You Can Do With a CAPTCHA Solving API
A solving API converts CAPTCHA challenges into plain tokens. Your code sends the challenge details and receives a solution in seconds. Typical use cases:
- RPA robots that hit CAPTCHAs mid-workflow.
- Scrapers that collect public data behind reCAPTCHA.
- QA pipelines that test logins and signup flows.
- Any HTTP integration that needs to pass a challenge without a human.
The Basic Request Pattern
Every solving flow follows the same four steps:
- Authenticate — send your username and password (or API key).
- Submit the challenge — identify the type and send the site key plus any extra data.
- Poll for the answer — the service returns a CAPTCHA ID; poll until it is solved.
- Use the token — place the token back into your flow.
REST API Overview
The DeathByCaptcha API is a simple JSON-over-HTTPS interface. A minimal flow:
# 1. Submit a reCAPTCHA challenge
curl -s -X POST "https://api.dbcapi.me/api/captcha" -d "username=YOUR_USER&password=YOUR_PASS" -d "type=4&googlekey=SITE_KEY&pageurl=https://example.com"
# 2. Poll for the result
curl -s "https://api.dbcapi.me/api/captcha/CAPTCHA_ID" -u "YOUR_USER:YOUR_PASS"
The API returns JSON with a text field containing the token once solved.
Supported CAPTCHA Types
- Text CAPTCHAs — distorted text.
- Image CAPTCHAs — object selection.
- reCAPTCHA v2 — checkbox and invisible.
- reCAPTCHA v3 — score-based.
- hCaptcha — image challenges.
- GeeTest v3/v4 — sliding and behavioral.
- Turnstile — Cloudflare's challenge.
- Custom puzzles — any proprietary challenge.
Check the API reference for the exact type parameter for each provider.
Using Official SDKs
SDKs remove the boilerplate of HTTP calls and polling. They are available for Python, Java, PHP, Ruby, C#, and more.
Python example:
import deathbycaptcha
client = deathbycaptcha.SocketClient("USER", "PASSWORD")
captcha = client.decode(
sitekey="SITE_KEY",
pageurl="https://example.com",
type=4,
)
if captcha:
token = captcha["text"]
print("Solved:", token)
client.close()
The SDK handles retries and connection management, so your code stays clean.
Polling Strategy and Timeouts
Solving is asynchronous. A robust client should:
- Poll every 1-2 seconds.
- Cap the total wait (e.g., 60 seconds).
- Treat partial or empty responses as "not ready."
- Return a clear timeout error so the caller can retry the whole step.
Never block your main thread for the full solve; run it in a worker or an async task.
Error Handling and Retries
Treat solving like any external dependency:
- Network errors — retry with exponential backoff.
- Bad site key — fail fast and report a configuration error.
- Timeout — retry once, then surface a meaningful error.
- Rate limiting — respect the API's limits and add jitter.
Security Considerations
- Never log tokens or CAPTCHA IDs. They are short-lived secrets.
- Store credentials in environment variables or a secrets manager.
- Use a dedicated API user per environment to avoid cross-contamination.
- Rotate credentials on team changes.
Putting It Together
Here is a realistic Python flow that solves a challenge and continues an HTTP session:
import requests
import deathbycaptcha
client = deathbycaptcha.SocketClient("USER", "PASSWORD")
captcha = client.decode(sitekey="SITE_KEY", pageurl="https://example.com", type=4)
token = captcha["text"]
session = requests.Session()
session.headers["User-Agent"] = "your-app/1.0"
resp = session.post(
"https://example.com/api/login",
json={"email": "[email protected]", "password": "secret", "captchaToken": token},
)
print(resp.status_code)
client.close()
Next Steps
- CAPTCHA Guide — understand the challenge types you are solving.
- Browser Automation Guide — combine the API with Playwright or Selenium for full-page flows.
- Web Scraping Guide — apply these integrations inside resilient scrapers.
This is the hub for API integration content. Browse the tutorials below for provider-specific and language-specific guides.

English
Spanish
Russian
Chinese
French
Hindi
Arabic
Bengali
Indonesian
Portuguese
com, 