Passing browser cookies to CaptchaAI can significantly improve solve rates and token validity. Sites use cookies to track sessions, and mismatched cookies trigger harder CAPTCHAs.
Why Cookies Matter
When CaptchaAI solves a CAPTCHA, the solved token must match the session context. If the site has set cookies during your browsing session, those cookies define the context. Sending old or missing cookies can result in:
- Lower solve accuracy
- Tokens rejected by the target site
- CAPTCHA difficulty escalation
Passing Cookies to CaptchaAI
Include cookies in your submit request using the cookies parameter:
Python
import requests
API_KEY = "YOUR_API_KEY"
# First, get cookies from the target site
session = requests.Session()
page = session.get("https://example.com/login")
site_cookies = session.cookies.get_dict()
# Format cookies for CaptchaAI
cookie_string = "; ".join(f"{k}={v}" for k, v in site_cookies.items())
# Submit with cookies
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": "6Le-wvkS...",
"pageurl": "https://example.com/login",
"cookies": cookie_string,
})
task_id = resp.text.split("|")[1]
Node.js
const axios = require("axios");
// Get cookies from target site
const pageResp = await axios.get("https://example.com/login", {
withCredentials: true,
});
// Extract Set-Cookie headers
const cookies = pageResp.headers["set-cookie"]
.map((c) => c.split(";")[0])
.join("; ");
// Submit with cookies
const resp = await axios.get("https://ocr.captchaai.com/in.php", {
params: {
key: API_KEY,
method: "userrecaptcha",
googlekey: "6Le-wvkS...",
pageurl: "https://example.com/login",
cookies: cookies,
},
});
Browser Cookie Extraction
From Selenium
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com")
# Extract cookies
selenium_cookies = driver.get_cookies()
cookie_string = "; ".join(
f"{c['name']}={c['value']}" for c in selenium_cookies
)
# Use with CaptchaAI
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": site_key,
"pageurl": "https://example.com",
"cookies": cookie_string,
})
From Puppeteer
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// Extract cookies
const cookies = await page.cookies();
const cookieString = cookies.map((c) => `${c.name}=${c.value}`).join("; ");
// Use with CaptchaAI
const resp = await axios.get("https://ocr.captchaai.com/in.php", {
params: {
key: API_KEY,
method: "userrecaptcha",
googlekey: siteKey,
pageurl: "https://example.com",
cookies: cookieString,
},
});
From Playwright
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
cookies = page.context.cookies()
cookie_string = "; ".join(
f"{c['name']}={c['value']}" for c in cookies
)
# Use cookie_string with CaptchaAI
Important Cookies to Include
| Cookie | Purpose | Sites |
|---|---|---|
__cf_bm |
Cloudflare bot management | Cloudflare-protected |
cf_clearance |
Cloudflare challenge clearance | Cloudflare-protected |
_ga, _gid |
Google Analytics | Many sites |
NID, SID |
Google session | Google properties |
| Session cookies | Server session tracking | Most sites |
Best Practices
- Capture cookies right before solving — Cookies expire. Don't cache them too long.
- Include all cookies — Don't filter. Let CaptchaAI use what it needs.
- Match User-Agent — Use the same User-Agent in your requests and in the CaptchaAI
userAgentparameter. - Use session continuity — After solving, use the same cookies for subsequent requests.
Workflow: Full Session with Cookies
import requests
import time
API_KEY = "YOUR_API_KEY"
def solve_with_session(target_url):
session = requests.Session()
session.headers["User-Agent"] = (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/120.0.0.0 Safari/537.36"
)
# Step 1: Visit page to get cookies
page = session.get(target_url)
cookies = "; ".join(
f"{k}={v}" for k, v in session.cookies.get_dict().items()
)
# Step 2: Solve CAPTCHA with cookies
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": "6Le-wvkS...",
"pageurl": target_url,
"cookies": cookies,
})
task_id = resp.text.split("|")[1]
while True:
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY, "action": "get", "id": task_id,
})
if result.text.startswith("OK|"):
token = result.text.split("|", 1)[1]
break
# Step 3: Submit with token using the SAME session
resp = session.post(target_url, data={
"g-recaptcha-response": token,
})
return resp
FAQ
Do all CAPTCHA types benefit from cookies?
Token-based CAPTCHAs (reCAPTCHA, Turnstile) benefit the most. Image CAPTCHAs rarely use session context.
Will passing cookies guarantee a solve?
No, but it significantly improves accuracy and reduces the chance of token rejection.
How long are cookies valid?
It depends on the site. Session cookies expire when the browser closes. cf_clearance typically lasts 30 minutes.
Discussions (0)
Join the conversation
Sign in to share your opinion.
Sign InNo comments yet.