The Thyroxn API is a single REST endpoint. Authenticate with your API key from the dashboard.
https://thyroxnsolver.comAll requests require an API key passed via one of the following methods:
X-API-Key: txn_your_key_hereAuthorization: Bearer txn_your_key_here"api_key": "txn_your_key_here"Solves an hCaptcha challenge and returns a valid token.
| Field | Type | Required | Description |
|---|---|---|---|
| sitekey | string | Yes | hCaptcha sitekey from target site |
| url | string | Yes | Page URL where captcha appears |
| invisible | boolean | No | Set true for invisible hCaptcha (default: false) |
| rqdata | string | No | Extra rqdata for enterprise hCaptcha |
| ua | string | No | User-Agent string to use |
| proxy | string | No | Proxy in format http://user:pass@host:port |
| Status | Meaning |
|---|---|
| 200 | Success — { "token": "P0_eyJ..." } |
| 401 | No API key / invalid key |
| 402 | Insufficient balance |
| 422 | Invalid input (missing sitekey/url) |
| 500 | Solver error |
| 502 | Solver returned empty token |
| 504 | Solver timeout |
Copy-paste these into your project. Replace YOUR_API_KEY with your key from the dashboard.
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://thyroxnsolver.com"
def solve_hcaptcha(sitekey: str, url: str, invisible: bool = False, rqdata: str = "", proxy: str = None):
"""Solve an hCaptcha challenge and return the token."""
payload = {
"sitekey": sitekey,
"url": url,
"invisible": invisible,
}
if rqdata:
payload["rqdata"] = rqdata
if proxy:
payload["proxy"] = proxy
response = requests.post(
f"{BASE_URL}/api/solve",
json=payload,
headers={"X-API-Key": API_KEY}
)
response.raise_for_status()
data = response.json()
return data["token"]
# ─── Usage ───
if __name__ == "__main__":
token = solve_hcaptcha(
sitekey="10000000-ffff-ffff-ffff-000000000001",
url="https://example.com/login"
)
print(f"Solved! Token: {token[:50]}...")No per-account rate limit. Concurrency is bound only by your balance. Send as many parallel requests as you need.
$4.00 per 1,000 successful solves ($0.004 each). Failed solves are never charged. Balance never expires.