API ডকুমেন্টেশন
অনুরোধ JSON-এ, ঠিকানা একটিই (https://gatesolver.com)। অ্যাকাউন্ট স্ক্রিনে তৈরি API কী clientKey হিসেবে পাঠান। টাস্ক তৈরি করুন (createTask), কয়েক সেকেন্ড পরে ফলাফল নিন (getTaskResult)।
- মূল ঠিকানা
- https://gatesolver.com
- প্রমাণীকরণ
- বডির clientKey
- অনুরোধের সীমা
- প্রতি কী 1 মিনিটে 600টি
- ফরম্যাট
- JSON (POST)
শুরু করুন
- সাইন আপ করে ব্যালান্স টপ-আপ করুন।
- অ্যাকাউন্ট স্ক্রিনের API কী মেনু থেকে কী তৈরি করুন। কী তৈরির সময় একবারই দেখানো হয়।
- createTask দিয়ে টাস্ক তৈরি করুন, পাওয়া taskId দিয়ে কয়েক সেকেন্ড পরপর getTaskResult কল করুন।
- status ready হলে solution পেজে বসান।
createTask ফরম্যাটে তৈরি ক্লায়েন্ট শুধু API ঠিকানা বদলে যেমন আছে তেমন ব্যবহার করুন। নতুন ঠিকানা: https://gatesolver.com
createTask
POST https://gatesolver.com/createTask
টাস্ক তৈরি করে taskId ফেরত দেয়। এই সময় টাকা কাটা হয় না।
| ঘর | ফরম্যাট | আবশ্যক | বিবরণ |
|---|---|---|---|
| clientKey | string | হ্যাঁ | API কী |
| task | object | হ্যাঁ | টাস্কের বিবরণ। type ও ধরন অনুযায়ী ঘর (নিচের টাস্ক type টেবিল ও প্রতিটি ধরনের পেজ) |
| callbackUrl | string | না | গ্রহণ করি না। getTaskResult দিয়ে ফলাফল নিন। |
অনুরোধ
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
}
}রেসপন্স
{ "errorId": 0, "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" }getTaskResult
POST https://gatesolver.com/getTaskResult
টাস্কের ফলাফল ফেরত দেয়। টোকেন ধরনে 3 সেকেন্ড, ছবি শনাক্তকরণে 1 সেকেন্ড পরপর জিজ্ঞেস করা ভালো। উত্তর আসার মুহূর্তে 1টির দাম ব্যালান্স থেকে কাটা হয়।
| ঘর | বিবরণ |
|---|---|
| status | processing (অপেক্ষমাণ), ready (উত্তর এসেছে), failed (ব্যর্থ, টাকা কাটা হয় না) |
| solution | উত্তর। ধরন অনুযায়ী ঘর আলাদা (gRecaptchaResponse, token, cookie, text ইত্যাদি) |
| cost | এই টাস্কে কাটা পরিমাণ (ডলার) |
| createTime / endTime | তৈরির সময় ও শেষের সময় (মিলিসেকেন্ড) |
{
"errorId": 0,
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006",
"status": "ready",
"solution": { "gRecaptchaResponse": "03AFcWeA6...", "userAgent": "Mozilla/5.0 ..." },
"cost": "0.000560"
}getBalance
POST https://gatesolver.com/getBalance
ব্যালান্স ডলারে ফেরত দেয়।
{ "clientKey": "YOUR_API_KEY" }
{ "errorId": 0, "balance": 42.5 }টাস্ক type
type নামে ছোট-বড় হাতের অক্ষর আলাদা ধরা হয় না। প্রতিটি ধরনের ঘর ও উদাহরণ সেই ধরনের পেজে আছে।
| type | ধরন | 1,000টি |
|---|---|---|
| ReCaptchaV2TaskProxyLess | reCAPTCHA v2 | $0.56 |
| ReCaptchaV2Task | reCAPTCHA v2 | $0.56 |
| ReCaptchaV2EnterpriseTaskProxyLess | reCAPTCHA v2 Enterprise | $0.70 |
| ReCaptchaV2EnterpriseTask | reCAPTCHA v2 Enterprise | $0.70 |
| ReCaptchaV3TaskProxyLess | reCAPTCHA v3 | $0.70 |
| ReCaptchaV3Task | reCAPTCHA v3 | $0.70 |
| ReCaptchaV3EnterpriseTaskProxyLess | reCAPTCHA v3 Enterprise | $2.10 |
| ReCaptchaV3EnterpriseTask | reCAPTCHA v3 Enterprise | $2.10 |
| AntiTurnstileTaskProxyLess | Cloudflare Turnstile | $0.84 |
| TurnstileTaskProxyless | Cloudflare Turnstile | $0.84 |
| AntiCloudflareTask | Cloudflare Challenge | $0.84 |
| AntiAwsWafTaskProxyLess | AWS WAF | $1.40 |
| AntiAwsWafTask | AWS WAF | $1.40 |
| GeeTestTaskProxyLess | GeeTest v3 / v4 | $0.84 |
| GeeTestTask | GeeTest v3 / v4 | $0.84 |
| MtCaptchaTaskProxyLess | MTCaptcha | $2.10 |
| MtCaptchaTask | MTCaptcha | $2.10 |
| DatadomeSliderTask | DataDome Slider | $1.75 |
| ImageToTextTask | Image to Text | $0.28 |
| ReCaptchaV2Classification | reCAPTCHA Image Classification | $0.28 |
| AwsWafClassification | AWS WAF Image Classification | $0.42 |
| VisionEngine | Vision Engine | $1.05 |
ত্রুটি কোড
ত্রুটি হলে errorId হয় 1, সঙ্গে errorCode ও errorDescription আসে। ত্রুটির উত্তরে টাকা কাটা হয় না।
| errorCode | অর্থ |
|---|---|
| ERROR_KEY_DENIED_ACCESS | clientKey নেই বা ভুল। |
| ERROR_ZERO_BALANCE | ব্যালান্স কম। টপ-আপ করে আবার অনুরোধ করুন। |
| ERROR_TASK_NOT_SUPPORTED | এই টাস্ক type সমর্থিত নয়। |
| ERROR_INVALID_TASK_DATA | প্রয়োজনীয় ঘর বাদ পড়েছে। errorDescription-এ বাদ পড়া ঘরের নাম আছে। |
| ERROR_TASKID_INVALID | taskId এই কী দিয়ে তৈরি নয় অথবা এমন taskId নেই। |
| ERROR_CAPTCHA_UNSOLVABLE | সমাধান করা যায়নি। টাকা কাটা হয়নি। আবার অনুরোধ করুন। |
| ERROR_SERVICE_UNAVAILABLE | নেটওয়ার্ক ত্রুটি। টাকা কাটা হয়নি। একটু পরে আবার অনুরোধ করুন। |
| ERROR_RATE_LIMIT | 1 মিনিটে 600টির বেশি অনুরোধ হয়েছে। অনুরোধের মাঝে বিরতি বাড়ান। |
| ERROR_ACCOUNT_SUSPENDED | এটি একটি স্থগিত অ্যাকাউন্ট। |
in.php সামঞ্জস্যপূর্ণ
in.php-স্টাইলের প্রোগ্রামে শুধু ঠিকানা বদলালেই হবে। সমর্থিত method: userrecaptcha (reCAPTCHA v2), turnstile, geetest, base64 এবং post (ছবির লেখা)।
GET https://gatesolver.com/in.php?key=YOUR_API_KEY&method=userrecaptcha&googlekey=6Le...&pageurl=https://example.com
OK|61138bb6-19fb-11ec-a9c8-0242ac110006
GET https://gatesolver.com/res.php?key=YOUR_API_KEY&action=get&id=61138bb6-19fb-11ec-a9c8-0242ac110006
CAPCHA_NOT_READY
OK|03AFcWeA6...
GET https://gatesolver.com/res.php?key=YOUR_API_KEY&action=getbalance
42.50000json=1 যোগ করলে {"status":1,"request":"..."} আকারে উত্তর দেয়।
উদাহরণ
import requests, time
API, KEY = "https://gatesolver.com", "YOUR_API_KEY"
def solve(task, wait=3, timeout=120):
r = requests.post(f"{API}/createTask", json={"clientKey": KEY, "task": task}, timeout=30).json()
if r.get("errorId"):
raise RuntimeError(r["errorCode"])
end = time.time() + timeout
while time.time() < end:
time.sleep(wait)
res = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": r["taskId"]}, timeout=30).json()
if res.get("errorId"):
raise RuntimeError(res["errorCode"])
if res["status"] == "ready":
return res["solution"]
raise TimeoutError("task timed out")
print(solve({"type": "ReCaptchaV2TaskProxyLess", "websiteURL": "https://example.com", "websiteKey": "6Le..."}))const API = "https://gatesolver.com", KEY = "YOUR_API_KEY";
const post = (p, b) => fetch(API + p, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(b) }).then((r) => r.json());
export async function solve(task, wait = 3000) {
const r = await post("/createTask", { clientKey: KEY, task });
if (r.errorId) throw new Error(r.errorCode);
for (;;) {
await new Promise((s) => setTimeout(s, wait));
const res = await post("/getTaskResult", { clientKey: KEY, taskId: r.taskId });
if (res.errorId) throw new Error(res.errorCode);
if (res.status === "ready") return res.solution;
}
}body, _ := json.Marshal(map[string]any{"clientKey": "YOUR_API_KEY", "task": map[string]any{
"type": "AntiTurnstileTaskProxyLess", "websiteURL": "https://example.com", "websiteKey": "0x4AAAAAAA..."}})
res, err := http.Post("https://gatesolver.com/createTask", "application/json", bytes.NewReader(body))$ch = curl_init("https://gatesolver.com/createTask");
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode(["clientKey" => "YOUR_API_KEY", "task" => [
"type" => "ReCaptchaV3TaskProxyLess", "websiteURL" => "https://example.com", "websiteKey" => "6Lc...", "pageAction" => "login"]])]);
$task = json_decode(curl_exec($ch), true);curl -X POST https://gatesolver.com/createTask -H "Content-Type: application/json" \
-d '{"clientKey":"YOUR_API_KEY","task":{"type":"ImageToTextTask","body":"iVBORw0KGgo..."}}'