Send the captcha parameters and get a ready token back. The format is compatible with anti-captcha and 2captcha: in an existing client you only change the address and the key.
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "HCaptchaTask",
"websiteURL": "https://store.steampowered.com/join/",
"websiteKey": "e18a349a-46c2-46a0-87a8-74be79345c92",
"data": "14233456855421534"
}
}{ "errorId": 0, "taskId": 407533072 }No sign-up needed: everything is managed from the Telegram bot.
Open the bot, press Start, then “My key”.
Choose an amount and pay. The bot confirms the credit.
Call createTask and fetch the result with getTaskResult.
You pay only for solved tasks. If no token is issued, the price is refunded to your balance.
per one hCaptcha solve
per 1000 solves
per 10 000 solves
on ERROR_CAPTCHA_UNSOLVABLE or ERROR_SERVICE_UNAVAILABLE
Create a task and poll for the result every 3 seconds.
curl -X POST https://api.tokenwave.org/createTask \
-H "Content-Type: application/json" \
-d '{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "HCaptchaTask",
"websiteURL": "https://store.steampowered.com/join/",
"websiteKey": "e18a349a-46c2-46a0-87a8-74be79345c92",
"data": "5224351428758667",
"isInvisible": true,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) …",
"cookies": "sessionid=…; browserid=…"
}
}'
# then, every 3 seconds while status = processing:
curl -X POST https://api.tokenwave.org/getTaskResult \
-H "Content-Type: application/json" \
-d '{"clientKey": "YOUR_API_KEY", "taskId": 7654321}'import time
import requests
API = "https://api.tokenwave.org"
KEY = "YOUR_API_KEY"
task = requests.post(f"{API}/createTask", json={
"clientKey": KEY,
"task": {
"type": "HCaptchaTask",
"websiteURL": "https://store.steampowered.com/join/",
"websiteKey": "e18a349a-46c2-46a0-87a8-74be79345c92",
"data": "5224351428758667",
"isInvisible": True,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) …",
"cookies": "sessionid=…; browserid=…",
},
}).json()
if task["errorId"]:
raise SystemExit(task["errorCode"])
while True:
time.sleep(3)
r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
if r["errorId"]:
raise SystemExit(r["errorCode"])
if r["status"] == "ready":
print(r["solution"]["gRecaptchaResponse"])
breakconst API = "https://api.tokenwave.org";
const KEY = "YOUR_API_KEY";
const post = (path, body) =>
fetch(`${API}/${path}`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(body),
}).then((r) => r.json());
const task = await post("createTask", {
clientKey: KEY,
task: {
type: "HCaptchaTask",
websiteURL: "https://store.steampowered.com/join/",
websiteKey: "e18a349a-46c2-46a0-87a8-74be79345c92",
data: "5224351428758667",
isInvisible: true,
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) …",
cookies: "sessionid=…; browserid=…",
},
});
if (task.errorId) throw new Error(task.errorCode);
for (;;) {
await new Promise((r) => setTimeout(r, 3000));
const res = await post("getTaskResult", { clientKey: KEY, taskId: task.taskId });
if (res.errorId) throw new Error(res.errorCode);
if (res.status === "ready") { console.log(res.solution.gRecaptchaResponse); break; }
}Everything you need to integrate.
Key, balance, top-ups and stats — directly in the Telegram bot and Mini App.