Smart AI Proxy
Единый ротирующий прокси-endpoint. Настройте его один раз в вашем HTTP-клиенте, и каждый запрос будет маршрутизироваться через сеть Crawlbase: без переписывания API, без специального SDK.
Endpoint
- Предпочтительнее использовать HTTPS-прокси на порту
8013(рекомендуется). HTTP-прокси на порту8012доступен для клиентов, которые могут общаться с вышестоящими прокси только по HTTP. - Аутентифицируйтесь, указав ваш token в качестве имени пользователя; поле пароля оставьте пустым.
- Оба порта работают с любым целевым URL, HTTP или HTTPS.
Быстрый старт
Укажите Smart AI Proxy в качестве прокси в вашем HTTP-клиенте. Это вся настройка.
Smart AI Proxy перехватывает TLS-соединения, чтобы добавить proxy-заголовки. Ваш клиент увидит сертификат Crawlbase вместо сертификата целевого сайта, поэтому укажите verify=False / InsecureSkipVerify: true / эквивалент. Соединение от Crawlbase к целевому сайту по-прежнему проверяется.
curl -x 'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013' \
-k 'https://httpbin.org/ip'import requests
proxies = {
'http': 'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013',
'https': 'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013',
}
res = requests.get('https://httpbin.org/ip', proxies=proxies, verify=False)
print(res.text)const { HttpsProxyAgent } = require('https-proxy-agent');
const agent = new HttpsProxyAgent(
'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013'
);
const res = await fetch('https://httpbin.org/ip', { agent });
console.log(await res.text());require 'net/http'
uri = URI('https://httpbin.org/ip')
proxy = Net::HTTP::Proxy('smartproxy.crawlbase.com', 8013, 'YOUR_TOKEN', '')
http = proxy.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
puts http.get(uri.request_uri).bodypackage main
import (
"crypto/tls"
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
proxyURL, _ := url.Parse("https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013")
client := &http.Client{Transport: &http.Transport{
Proxy: http.ProxyURL(proxyURL),
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}}
res, _ := client.Get("https://httpbin.org/ip")
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}POST-запросы
Smart AI Proxy пересылает POST-запросы к целевому ресурсу так же, как любой другой HTTP-метод. Настройте прокси в вашем клиенте и выполняйте POST как обычно: прокси сохраняет ваш метод, заголовки и body. Примеры ниже охватывают две формы тела запроса, которые используют большинство клиентов: form-encoded и JSON.
Form-encoded body
# HTTPS proxy on :8013 (use http:// + :8012 for HTTP-only clients)
curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-F 'param=value' \
-x 'https://[email protected]:8013' \
-k 'https://httpbin.org/anything'import requests
from urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)
proxies = {
'http': 'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013',
'https': 'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013',
}
res = requests.post(
'https://httpbin.org/anything',
data={'param': 'value'},
proxies=proxies,
verify=False,
)
print(res.status_code, res.text)const { HttpsProxyAgent } = require('https-proxy-agent');
const querystring = require('querystring');
const agent = new HttpsProxyAgent(
'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013'
);
const res = await fetch('https://httpbin.org/anything', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: querystring.stringify({ param: 'value' }),
agent,
});
console.log(res.status, await res.text());require 'net/http'
require 'openssl'
require 'uri'
uri = URI('https://httpbin.org/anything')
proxy = Net::HTTP::Proxy('smartproxy.crawlbase.com', 8013, 'YOUR_TOKEN', '')
http = proxy.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
req = Net::HTTP::Post.new(uri.request_uri)
req.set_form_data('param' => 'value')
res = http.request(req)
puts res.code, res.bodypackage main
import (
"crypto/tls"
"fmt"
"io"
"net/http"
"net/url"
"strings"
)
func main() {
proxyURL, _ := url.Parse("https://[email protected]:8013")
client := &http.Client{Transport: &http.Transport{
Proxy: http.ProxyURL(proxyURL),
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}}
data := url.Values{}
data.Set("param", "value")
req, _ := http.NewRequest("POST",
"https://httpbin.org/anything",
strings.NewReader(data.Encode()))
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
res, _ := client.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res.Status, string(body))
}JSON body
curl -X POST \
-H 'Content-Type: application/json' \
--data '{"key1":"value1","key2":"value2"}' \
-x 'https://[email protected]:8013' \
-k 'https://httpbin.org/anything'import requests
proxies = {
'http': 'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013',
'https': 'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013',
}
res = requests.post(
'https://httpbin.org/anything',
json={'key1': 'value1', 'key2': 'value2'},
proxies=proxies,
verify=False,
)
print(res.status_code, res.text)const { HttpsProxyAgent } = require('https-proxy-agent');
const agent = new HttpsProxyAgent(
'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013'
);
const res = await fetch('https://httpbin.org/anything', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ key1: 'value1', key2: 'value2' }),
agent,
});
console.log(res.status, await res.text());require 'net/http'
require 'json'
require 'openssl'
require 'uri'
uri = URI('https://httpbin.org/anything')
proxy = Net::HTTP::Proxy('smartproxy.crawlbase.com', 8013, 'YOUR_TOKEN', '')
http = proxy.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
req = Net::HTTP::Post.new(uri.request_uri,
'Content-Type' => 'application/json')
req.body = { key1: 'value1', key2: 'value2' }.to_json
puts http.request(req).bodyПередача заголовков и cookies
Smart AI Proxy передаёт большинство заголовков и cookies из вашего исходящего запроса целевому ресурсу, поэтому существующие клиенты продолжают работать без модификаций. Два заметных нюанса поведения:
- Ваш
User-Agentпередаётся как есть. Отправьте пустой — и прокси подставит реалистичный UA с ротацией. - Hop-by-hop и управляющие прокси-заголовки (
Host,Proxy-Authorization) удаляются: они описывают сам прокси, а не пересылаемый запрос.
curl -H 'Accept-Language: en-US,en;q=0.9' \
-H 'X-Custom-Header: My-Custom-Value' \
-H 'User-Agent: MyCustomBrowser/1.0' \
--cookie 'sid=abc123; cart=xyz789' \
-x 'https://[email protected]:8013' \
-k 'https://httpbin.org/anything'Пример выше приходит на целевой ресурс со всеми четырьмя пользовательскими заголовками и обоими cookies в неизменном виде. Чтобы переопределить поведение прокси (страна, устройство, сессия, JS-рендеринг, scrapers и т. д.), используйте заголовки CrawlbaseAPI-*: они интерпретируются прокси и никогда не достигают целевого ресурса.
Рендеринг через headless-браузер
Smart AI Proxy использует тот же парк headless-браузеров, что и Crawling API. Чтобы выполнять JavaScript, обрабатывать SPA с клиентским рендерингом или применять возможности Crawling API, требующие реального браузера (скриншоты, прокрутка, click-селекторы, autoparse), передавайте CrawlbaseAPI-Parameters: javascript=true как заголовок в вашем исходящем запросе.
# Render with a headless browser, force a 2s wait, scroll to load lazy content
curl -H 'CrawlbaseAPI-Parameters: javascript=true&page_wait=2000&scroll=true' \
-x 'https://[email protected]:8013' \
-k 'https://spa.example.com/feed'Используйте ваш JavaScript token (а не Normal token), когда установлено javascript=true: они тарифицируются отдельно. Полный набор параметров браузерного уровня (page_wait, scroll, css_click_selector, wait_for, скриншоты) доступен через CrawlbaseAPI-Parameters; канонический список см. в справочнике JavaScript-параметров.
Когда использовать Smart AI Proxy, а когда Crawling API
Smart AI Proxy и Crawling API работают в одной сети и предоставляют одинаковый набор возможностей: JS-рендеринг, обход анти-бот защиты, маршрутизация по странам, эмуляция устройств, сессии, scrapers, async + storage, всё это. Выбор между ними не про возможности; он про форму интерфейса, тип вашей подписки и уровень конкурентности, который эта подписка предоставляет.
| Выберите Smart AI Proxy, когда… | Выберите Crawling API (REST), когда… |
|---|---|
| Вы не можете менять клиентский код (стороннее ПО, расширение браузера, Scrapy, существующий скрапер) | Вы строите с нуля и хотите явный контроль над каждым запросом |
| Вы предпочитаете один раз настроить прокси, а не переписывать каждый запрос на новый endpoint | Вы предпочитаете видеть URL и параметры в виде обычного GET для логирования / отладки |
| Ваша подписка — на плане Smart AI Proxy, с собственным уровнем потоков / конкурентности | Ваша подписка — на план Crawling API с собственной месячной квотой и бюджетом параллелизма |
| Вы хотите подключить Crawlbase к существующему пайплайну без единого изменения в коде | Вы хотите, чтобы один из SDK обрабатывал ретраи, async-поллинг и парсинг ответа за вас |
Все параметры Crawling API доступны из Smart AI Proxy через заголовок CrawlbaseAPI-Parameters (см. ниже). Набор возможностей одинаков: выбирайте тот путь, который соответствует вашей подписке и форме интеграции.
Управляющие заголовки
Передавайте пользовательские заголовки с префиксом CrawlbaseAPI- в вашем исходящем запросе, чтобы управлять поведением прокси. Три однозадачных заголовка ниже — это удобные сокращения; полный набор параметров Crawling API доступен через CrawlbaseAPI-Parameters (документировано после таблицы).
US, GB, DE и т. д.javascript=true, page_wait=2000, scroll=true, store=true, &scraper=amazon-product-details, autoparse=true - работает здесь. Объединяйте несколько через &: например, "javascript=true&country=US&store=true".Использование CrawlbaseAPI-Parameters
Однозначные заголовки выше (Country, Device, Session-Id) являются ярлыками для самых распространённых элементов управления. Всё остальное из набора параметров Crawling API: JS-рендеринг, scroll, селекторы кликов, scrapers, async + webhooks + storage, get_cookies, get_headers - доступно через заголовок CrawlbaseAPI-Parameters. Формат - та же query-строка, которую вы бы добавили к REST-вызову:
# JS-rendered SPA, store the result, force US geo
curl -x 'https://YOUR_JS_TOKEN:@smartproxy.crawlbase.com:8013' \
-H 'CrawlbaseAPI-Parameters: javascript=true&country=US&store=true&page_wait=2000' \
-k 'https://spa.example.com/feed'
# Apply a scraper - same as &scraper=… on the REST endpoint
curl -x 'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013' \
-H 'CrawlbaseAPI-Parameters: scraper=amazon-product-details' \
-k 'https://www.amazon.com/dp/B0CHX2XFLN'Разрешение конфликтов: если вы передаёте одновременно однозадачный заголовок (например, CrawlbaseAPI-Country: GB) и то же поле внутри CrawlbaseAPI-Parameters, побеждает однозадачный заголовок. Выбирайте один стиль на запрос, чтобы поведение оставалось предсказуемым.
# Pin to a US session for a multi-step checkout flow
curl -x 'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013' \
-H 'CrawlbaseAPI-Country: US' \
-H 'CrawlbaseAPI-Session-Id: checkout-user-42' \
-k 'https://shop.example.com/cart'Ошибки
Smart AI Proxy возвращает стандартные HTTP-ответы. Коды статусов следуют той же модели, что и Crawling API. Ошибки авторизации (401, 402) возвращаются самим прокси; ошибки сайта (404, 500 и т. д.) приходят от целевого ресурса.

