The Captcha solving API
Submit a captcha, poll for the token. Built for scrapers, automation, and account flows that need a real solve at scale.
POST /solve → { task_id }
POST /solution → 200 completed
P0_eyJ0eXAiOiJKV1QiLCJhbGci…
$0.005 / solve
Pay only for what you solve — no daily cap, no minimum.
~5–15s
Typical end-to-end solve time per task.
Unlimited volume
Solve as many captchas as you need — pay per solve.
Endpoints
POST/solve
Submit captcha details and create a solving task. Each solve costs $0.005.
POST/solution
Retrieve the solved captcha token for a task ID.
Usage examples
1
Create a solving task
solve.py
import requests resp = requests.post("https://solver.detroid.in/solve", json={ "sitekey": "f9d2202b-8e0f-4ccd-9c64-9e04c0b326bd", "url": "https://discord.com/channels/@me", "key": "examplekey", "rqdata": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", "proxy": { "server": "proxy.example.com:8080", "username": "user123", "password": "pass123", }, }) task_id = resp.json()["task_id"] print(task_id)
200 — Task created
{
"task_id": "3fb4d159-fb70-4bbd-86ca-1d64785daa28",
"status": "pending",
"message": "Task created successfully",
"balance_remaining": 1.995
}2
Get the solution
solution.py
import requests, time while True: resp = requests.post("https://solver.detroid.in/solution", json={ "task_id": task_id, "key": "examplekey", }) data = resp.json() if data["status"] == "completed": print(data["solution"]) break time.sleep(3) # still solving — poll again
200 — Solved
{
"task_id": "3fb4d159-fb70-4bbd-86ca-1d64785daa28",
"solution": "P0_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"status": "completed"
}Still solving — poll again
{
"task_id": "3fb4d159-fb70-4bbd-86ca-1d64785daa28",
"status": "pending",
"message": "Task is still being processed"
}Request parameters
POST /solve
| Parameter | Type | Required | Description |
|---|---|---|---|
| sitekey | string | required | Captcha site key from the target website |
| url | string | required | Target URL where the captcha appears |
| key | string | required | Your API key, used to verify balance |
| rqdata | string | optional | RQ data for Captcha, when the site requires it |
| proxy | object | optional | Proxy with server, username, password |
POST /solution
| Parameter | Type | Required | Description |
|---|---|---|---|
| task_id | string | required | Task ID returned by /solve |
| key | string | required | Same API key used to create the task |
Error responses
Invalid key
{ "error": "Invalid key - Key does not exist in system" }Insufficient balance
{ "error": "Insufficient balance - Add funds to continue solving" }Missing parameters
{ "error": "Missing required fields: sitekey, url, key" }Invalid task ID
{ "error": "Invalid task ID" }Pricing & access
| Item | Cost |
|---|---|
| Per-solve cost | $0.005 / solve (no daily minimum) |
| Daily access | Pay-as-you-go — no daily fee |
| Volume | Unlimited solves, billed per task |
Simple per-solve pricing
Each captcha solve costs $0.005 — no daily fees, no minimums, no expiry. Need a key or credits? Message chorus_og on Discord.
Check balance
Paste your API key to see your current credit balance and solve history.
Live balance
Your balance is debited $0.005 per solve. What you see here is your remaining credit and how many solves that covers.
Quick start
Get a key
Message
chorus_og on Discord to get an API key and add credits at $0.005/solve.Create a task
POST your captcha details to
/solve.Wait for the solve
The solver typically returns in 5–15 seconds.
Fetch the solution
POST your task ID to
/solution to get the token.Use the token
Pass the returned token wherever the Captcha response is expected.