The easiest Cloudflare Challenge CAPTCHA solving API
GateSolver solves Cloudflare Challenge CAPTCHAs automatically with AI. $0.84 per 1,000 tasks, answers usually within 10s, and you only pay for successful tasks.
What is the Cloudflare Challenge CAPTCHA?
Cloudflare Challenge is the 'Just a moment' check screen shown before you enter a site. Pass it and you get a cf_clearance cookie to keep browsing that site.
Use the cf_clearance cookie and userAgent you receive together, from the same IP as the proxy used in the request.
Cloudflare Challenge
< 10s · $0.84 / 1k
Why use GateSolver for Cloudflare Challenge
Reliable solving
We keep improving our Cloudflare Challenge solving model, so it stays reliable even as the challenges change.
Pay only for successful tasks
You only pay for solved tasks. Failed or expired tasks are never charged.
AI-powered solving
AI solves it instantly, with no waiting for humans. Answers usually arrive within 10s.
Connect from anywhere
It is a REST API, so it works the same way from any language or automation tool.
in.php compatible
Programs using the in.php and res.php format only need a new address.
High volume
Up to 600 requests per minute per key, with no limit on concurrent tasks.
Price and speed
How to solve Cloudflare Challenge: API guide
Just two requests: create a task with createTask and get the answer with getTaskResult.
Step 1: Create a task
POST https://gatesolver.com/createTask
| Field | Required | Description |
|---|---|---|
| type | Yes | AntiCloudflareTask |
| websiteURL | Yes | URL where the check screen appears |
| proxy | Yes | Your proxy (the cookie only works from this IP) |
| userAgent | No | Browser User-Agent to use |
Request
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AntiCloudflareTask",
"websiteURL": "https://example.com/login",
"proxy": "http://user:pass@1.2.3.4:8080"
}
}Response
{
"errorId": 0,
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}Step 2: Get the result
POST https://gatesolver.com/getTaskResult
Poll for the result with the taskId every 3 seconds. If status is processing, wait; when it is ready, use the solution.
Request
{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}Response
{
"errorId": 0,
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006",
"status": "ready",
"solution": {
"cookies": {
"cf_clearance": "Bcg6jNLz..."
},
"token": "Bcg6jNLz...",
"userAgent": "Mozilla/5.0 ..."
}
}Use the cf_clearance cookie and userAgent you receive together, from the same IP as the proxy used in the request.
Code examples
import requests, time
API = "https://gatesolver.com"
KEY = "YOUR_API_KEY"
task = {
"type": "AntiCloudflareTask",
"websiteURL": "https://example.com/login",
"proxy": "http://user:pass@1.2.3.4:8080"
}
r = requests.post(f"{API}/createTask", json={"clientKey": KEY, "task": task}).json()
task_id = r["taskId"]
while True:
time.sleep(3)
res = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task_id}).json()
if res.get("status") == "ready":
print(res["solution"])
break
if res.get("errorId"):
raise RuntimeError(res["errorCode"])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());
const { taskId } = await post("/createTask", { clientKey: KEY, task: {"type":"AntiCloudflareTask","websiteURL":"https://example.com/login","proxy":"http://user:pass@1.2.3.4:8080"} });
let res;
do {
await new Promise((s) => setTimeout(s, 3000));
res = await post("/getTaskResult", { clientKey: KEY, taskId });
} while (res.status === "processing");
console.log(res.solution);curl -X POST https://gatesolver.com/createTask \
-H "Content-Type: application/json" \
-d '{"clientKey":"YOUR_API_KEY","task":{"type":"AntiCloudflareTask","websiteURL":"https://example.com/login","proxy":"http://user:pass@1.2.3.4:8080"}}'Cloudflare Challenge FAQ
How much do 1,000 Cloudflare Challenge tasks cost?
Cloudflare Challenge price: $0.84 per 1,000 tasks. Each task is deducted from your balance, and you only pay for solved tasks.
How fast are Cloudflare Challenge answers?
Usually within 10s. Call getTaskResult every few seconds and use the answer when status becomes ready.
Which task type do I use for Cloudflare Challenge?
Default type: AntiCloudflareTask. Other names (such as proxy versions) are accepted at the same price.
Am I charged if a task fails?
No. Unsolved and expired tasks are not charged.