| isim | tip | Gerekli | Tanım |
|---|---|---|---|
| type | String | Evet | TurnstileTask |
| websiteURL | String | Evet | Cloudflare 403 koruma sayfasının tam URL'si |
| htmlPageBase64 | String | HAYIR | 403 sayfasının tam HTML içeriğinin Base64 kodlaması. İsteğe bağlı - sağlanmazsa, sistem sayfayı proxy'niz aracılığıyla otomatik olarak alır (Otomatik Alma modu). |
| proxyType | String | Evet | Proxy türü: "http", "socks4", "socks5" |
| proxyAddress | String | Evet | Proxy sunucusu IP adresi veya ana bilgisayar adı |
| proxyPort | Integer | Evet | proxy bağlantı noktası |
| proxyLogin | String | HAYIR | Temsilci girişi |
| proxyPassword | String | HAYIR | Temsilci şifresi |
API uç noktası: https://api.nextcaptcha.com/createTask
yöntem: POST
İçerik türü: application/json
{
"clientKey":"api key",
"task": {
"type":"TurnstileTask",
"websiteURL":"https://example.com",
"proxyType":"http",
"proxyAddress":"your_proxy_address",
"proxyPort":1234,
"proxyLogin":"your_proxy_login",
"proxyPassword":"your_proxy_password"
}
}{
"clientKey":"api key",
"task": {
"type":"TurnstileTask",
"websiteURL":"https://example.com",
"htmlPageBase64":"PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+...",
"proxyType":"http",
"proxyAddress":"your_proxy_address",
"proxyPort":1234,
"proxyLogin":"your_proxy_login",
"proxyPassword":"your_proxy_password"
}
}{
"errorId": 0,
"status": "ready",
"solution": {
"cf_clearance": "abc123def456...",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"
},
"createTime": 1701234567890,
"endTime": 1701234567890
}Önemli: cf_clearance çerezi, hedef web sitesine erişmek için çerezi kullanırken HEPSİ eşleşmesi gereken üç faktöre bağlıdır:
Bu üç faktörden (TLS parmak izi, IP adresi, User-Agent) herhangi biri eşleşmezse, hedef web sitesi hâlâ 403 Forbidden hatası döndürecektir.
- TLS Parmak İzi: Windows Chrome sürüm 136 veya daha yeni bir TLS parmak izi kullanmanız gerekir.
- IP Adresi: Çözüm sırasında kullanılan aynı proxy IP adresini kullanmanız gerekir.
- User-Agent: Çözüm yanıtında döndürülen tam user-agent dizesini kullanmanız gerekir.
import requests
import time
CLIENT_KEY = "YOUR_CLIENT_KEY"
WEBSITE_URL = "https://example.com"
PROXY_TYPE = "http"
PROXY_ADDRESS = "your_proxy_address"
PROXY_PORT = 1234
PROXY_LOGIN = "your_proxy_login"
PROXY_PASSWORD = "your_proxy_password"
# Step 1: Create task
# Auto Fetch Mode (without htmlPageBase64)
# For sites that always return 403 regardless of IP
task_data = {
"clientKey": CLIENT_KEY,
"task": {
"type": "TurnstileTask",
"websiteURL": WEBSITE_URL,
"proxyType": PROXY_TYPE,
"proxyAddress": PROXY_ADDRESS,
"proxyPort": PROXY_PORT,
"proxyLogin": PROXY_LOGIN,
"proxyPassword": PROXY_PASSWORD
}
}
# Manual Mode: add htmlPageBase64 to the task
# For sites that only return 403 for certain IPs
# task_data["task"]["htmlPageBase64"] = "PCFET0NUWVBFIGh0bWw+..."
response = requests.post(
"https://api.nextcaptcha.com/createTask",
json=task_data
)
result = response.json()
task_id = result["taskId"]
# Step 2: Poll for result
while True:
time.sleep(3)
response = requests.post(
"https://api.nextcaptcha.com/getTaskResult",
json={
"clientKey": CLIENT_KEY,
"taskId": task_id
}
)
result = response.json()
if result["status"] == "ready":
cf_clearance = result["solution"]["cf_clearance"]
user_agent = result["solution"]["userAagent"]
print(f"cf_clearance: {cf_clearance}")
print(f"userAagent: {userAgent}")
break
elif result["status"] == "failed":
print(f"Task failed: {result.get('errorDescription')}")
break
# Step 3: Use the cookie with matching TLS, IP, and User-Agent
# IMPORTANT: TLS fingerprint must be Chrome 136+
# IMPORTANT: Must use the same proxy IP and returned user-agent
session = requests.Session()
session.cookies.set("cf_clearance", cf_clearance, domain=".example.com")
session.headers.update({"User-Agent": user_agent})
session.proxies = {
"https": f"http://{PROXY_LOGIN}:{PROXY_PASSWORD}@{PROXY_ADDRESS}:{PROXY_PORT}"
}
response = session.get(WEBSITE_URL)
print(f"Status: {response.status_code}")package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"time"
)
const (
clientKey = "YOUR_CLIENT_KEY"
websiteURL = "https://example.com"
proxyType = "http"
proxyAddress = "your_proxy_address"
proxyPort = 1234
proxyLogin = "your_proxy_login"
proxyPassword = "your_proxy_password"
)
func main() {
// Step 1: Create task (Auto Fetch Mode)
// For sites that always return 403 regardless of IP
taskData := map[string]interface{}{
"clientKey": clientKey,
"task": map[string]interface{}{
"type": "TurnstileTask",
"websiteURL": websiteURL,
"proxyType": proxyType,
"proxyAddress": proxyAddress,
"proxyPort": proxyPort,
"proxyLogin": proxyLogin,
"proxyPassword": proxyPassword,
// Manual Mode: uncomment to send 403 page HTML
// "htmlPageBase64": "PCFET0NUWVBFIGh0bWw+...",
},
}
body, _ := json.Marshal(taskData)
resp, err := http.Post(
"https://api.nextcaptcha.com/createTask",
"application/json",
bytes.NewReader(body),
)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var createResult map[string]interface{}
json.NewDecoder(resp.Body).Decode(&createResult)
taskId := createResult["taskId"].(string)
// Step 2: Poll for result
for {
time.Sleep(3 * time.Second)
pollData, _ := json.Marshal(map[string]string{
"clientKey": clientKey,
"taskId": taskId,
})
resp, err := http.Post(
"https://api.nextcaptcha.com/getTaskResult",
"application/json",
bytes.NewReader(pollData),
)
if err != nil {
log.Fatal(err)
}
respBody, _ := io.ReadAll(resp.Body)
resp.Body.Close()
var result map[string]interface{}
json.Unmarshal(respBody, &result)
if result["status"] == "ready" {
solution := result["solution"].(map[string]interface{})
cfClearance := solution["cf_clearance"].(string)
userAgent := solution["user-agent"].(string)
fmt.Printf("cf_clearance: %s\n", cfClearance)
fmt.Printf("user-agent: %s\n", userAgent)
// IMPORTANT: Use the same proxy IP and returned user-agent
// TLS fingerprint must be Chrome 136+
break
} else if result["status"] == "failed" {
log.Fatalf("Task failed: %v", result["errorDescription"])
}
}
}