Browser APIAdvanced API Features
Captcha Solving
Bypass the Captcha challenges on highly protected websites.
Avoid getting your API requests blocked by using auto_solve=1 and enabling the automatic Captcha solving mechanism. Once activated, it requires a CSS selector to wait for, provided by the wait_for_css parameter. This way, all the intermediary page navigation are automatically handled.
Auto Solve Integration Examples
curl --request GET --url "https://api.webscrapingapi.com/v1?api_key=<YOUR_API_KEY>&url=https%3A%2F%2F2captcha.com%2Fdemo%2Frecaptcha-v2-callback&device=none&auto_solve=1&wait_for_css=p[class*=_successMessage]&timeout=60000"const response = await fetch("https://api.webscrapingapi.com/v1?api_key=<YOUR_API_KEY>&url=https%3A%2F%2F2captcha.com%2Fdemo%2Frecaptcha-v2-callback&device=none&auto_solve=1&wait_for_css=p[class*=_successMessage]&timeout=60000", {
method: "GET"
});
const data = await response.text();
console.log(data);import requests
API_KEY = '<YOUR_API_KEY>'
SCRAPER_URL = 'https://api.webscrapingapi.com/v1'
TARGET_URL = 'https%3A%2F%2F2captcha.com%2Fdemo%2Frecaptcha-v2-callback'
PARAMS = {
"api_key": API_KEY,
"url": TARGET_URL,
"device": "none",
"auto_solve": 1,
"wait_for_css": "p[class*=_successMessage]",
"timeout": 60000
}
response = requests.get(SCRAPER_URL, params=PARAMS)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.webscrapingapi.com/v1?api_key=<YOUR_API_KEY>&url=https%3A%2F%2F2captcha.com%2Fdemo%2Frecaptcha-v2-callback&device=none&auto_solve=1&wait_for_css=p[class*=_successMessage]&timeout=60000",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 60,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.webscrapingapi.com/v1?api_key=<YOUR_API_KEY>&url=https%3A%2F%2F2captcha.com%2Fdemo%2Frecaptcha-v2-callback&device=none&auto_solve=1&wait_for_css=p[class*=_successMessage]&timeout=60000"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.webscrapingapi.com/v1?api_key=<YOUR_API_KEY>&url=https%3A%2F%2F2captcha.com%2Fdemo%2Frecaptcha-v2-callback&device=none&auto_solve=1&wait_for_css=p[class*=_successMessage]&timeout=60000")
.asString();var client = new RestClient("https://api.webscrapingapi.com/v1?api_key=<YOUR_API_KEY>&url=https%3A%2F%2F2captcha.com%2Fdemo%2Frecaptcha-v2-callback&device=none&auto_solve=1&wait_for_css=p[class*=_successMessage]&timeout=60000");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.webscrapingapi.com/v1?api_key=<YOUR_API_KEY>&url=https%3A%2F%2F2captcha.com%2Fdemo%2Frecaptcha-v2-callback&device=none&auto_solve=1&wait_for_css=p[class*=_successMessage]&timeout=60000")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyImportant! The url parameter has to be encoded. (i.e. &url=https%3A%2F%2F2captcha.com%2Fdemo%2Frecaptcha-v2-callback)
Sometimes, the device emulation can break the CAPTCHA solving feature, resulting in request timeouts. For these cases, we recommend disabling the device emulation by using the device=none configuration.