Playground
Playground (боковое меню > Playground) позволяет выполнять реальные API-запросы с вашим действующим ключом без написания кода. Это самый быстрый способ протестировать новый целевой сайт, отладить сложный ответ или сравнить Auto, Single, Proxy и Browser бок о бок.
Откройте его по адресу foura.ai/dashboard#playground.
Что делает Playground
Одна форма. Четыре движка. Реальный трафик.
- Auto: умная загрузка. Вы передаете URL и правило
validate, а FourA выбирает самый дешевый работающий путь. - Single: прямой HTTP-запрос с реалистичными характеристиками браузерного сетевого стека.
- Proxy: управляемый запрос с ротацией proxy, с опциональным выбором целевой страны.
- Browser: открывает URL в инстансе браузера Chrome для сайтов с рендерингом на JS.
Запросы выполняются с использованием ключа API, выбранного в верхней части страницы. Расход списывается из квоты этого ключа так же, как и при продакшн-вызове, поэтому будьте внимательны к лимитам тарифа при тестировании.
Выбор ключа
В выпадающем списке ключей API отображаются все активные доступные ключи: ваши личные в разделе My Keys, а также отдельные группы для каждой организации, в которой вы состоите. Любой участник может использовать ключ организации, и запрос по нему списывается с тарифа владельца организации. Выберите ключ, на который нужно списать запрос. Если у вас еще нет активных ключей, подсказка перенаправит вас на страницу API Keys для создания ключа.
Выбор режима
Верхняя строка Mode переключает между Auto и ручными движками. При выборе Auto форма переключается на минимальный интерфейс Auto (URL, validate и несколько параметров). Всегда отображаются обе строки: Mode: Auto и Product: Single, Proxy, Browser. Выбор одного отменяет выбор другого. Переключение продуктов меняет видимые поля и движок, принимающий запрос. Текущий выбор сохраняется при перезагрузке страницы.
| Режим | Когда использовать |
|---|---|
| Auto | Новый целевой сайт или ресурс со смешанной защитой. Auto выбирает самый дешевый путь и запоминает работающий вариант. |
| Single | Быстрый HTTP-запрос. Лучший первый выбор для известного хоста. |
| Proxy | Тот же запрос с автоматической ротацией proxy. Задайте exitCountries, если требуется определенная страна для целевого сайта. |
| Browser | Загружает страницу в инстансе браузера Chrome. Используйте, если данные появляются только после выполнения JavaScript. |
Формирование запроса
Строка URL
Верхняя строка содержит метод HTTP (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS), целевой URL и кнопку Send. Single, Proxy и Auto поддерживают все методы. Browser игнорирует метод (Chrome всегда выполняет GET для навигации) и тело запроса.
Вкладки запроса
Под строкой URL находятся пять вкладок для настройки всех остальных параметров:
| Вкладка | За что отвечает |
|---|---|
| UI | Поля формы для таймаутов, редиректов, флагов, proxy, настроек браузера и правил валидации |
| Body | Тело произвольного формата для запросов POST / PUT / PATCH |
| Headers | Пользовательские headers запроса в виде пар ключ-значение |
| Cookies | Cookies для отправки вместе с запросом |
| Raw | Точный JSON payload, который будет отправлен, в виде предпросмотра только для чтения с кнопкой Copy JSON, и команда curl для воспроизведения под ним |
Любые изменения во вкладках UI / Body / Headers / Cookies сразу отображаются в Raw. Редактировать текст в Raw нельзя: изменяйте параметры запроса на других вкладках. Красная точка появляется на любой вкладке или раскрывающейся секции, где значение отличается от настроек движка по умолчанию, что позволяет быстро увидеть все кастомные настройки.
Секции панели UI
Вкладка UI группирует параметры в раскрывающиеся секции. Пустые поля сбрасываются к значениям по умолчанию из схемы движка. Секции, не относящиеся к текущему Mode, скрыты.
- Timeouts:
timeout_ms,connect_timeout_ms,accept_timeout_ms,server_response_timeout_ms,dns_cache_timeout_sec. Auto отображает толькоtimeout_ms(общий бюджет времени). - Redirects: включение и настройка
followRedirects(0-20). Single и Proxy. Browser выполняет редиректы самостоятельно. - Flags:
unblockerдля Single, Proxy и Browser (unblockerв Browser проходит проверки, запрашиваемые страницей);tryJsonDataиreturnBufferдля Single и Proxy. Auto вместо этого отображаетforceProxyиreturnSession. - Proxy: выберите конкретный ID proxy для Single или Browser, либо настройте
maxTries, внешний таймаут Proxy,exitCountries,exitClassиignoreProxiesдля движка Proxy. Auto также отображаетignoreProxies. СелекторexitClassимеет три состояния: не задано не отправляет поле вообще,standardозначает, что запрос не должен повышать уровень, аpremiumразрешает эскалацию до премиум exit, если со стандартным пулом возникают сложности. Не задано иstandardэто разные запросы, поэтому оставляйте селектор пустым, если не требуется одно из этих двух значений. Для Premium необходим тарифный план с поддержкой premium exit: см. exitClass. - Browser profile: три каскадных выпадающих списка, os, browser и version, со списком доступных в FourA окружений. Они отображаются в режимах Single и Proxy. Оставьте их пустыми для использования последней версии Chrome. Каждый селектор фильтрует остальные два, исключая несовместимые комбинации. Для работы этой секции требуется включенный параметр
unblocker: если он отключен, browser headers не отправляются, профиль применится лишь частично, и API отклонит такой запрос. - Browser: параметры, специфичные только для браузера, такие как
checkStatusиcheckText. - Validate: status accept и status fail принимают коды статуса через запятую (
validate.status), а body accept и body fail принимают подстроки с разделителем|для вариантов (validate.data). Доступно для Single, Proxy и Auto. Browser вместо этого используетcheckStatusиcheckText. В форме нет полей для правил проверки заголовков (validate.headers).
Как только выполнение возвращает рабочий proxy, в конце вкладки интерфейса появляется раздел Working proxies. В нем отображается до 20 идентификаторов proxy, сначала новые, каждый с указанием страны выхода и времени. Кнопка use подставляет выбранный proxy в поле proxy в Single или Browser (движок Proxy находит свой собственный), а × удаляет его из списка.
Exit Country Scoping (Proxy Mode)
Поле exitCountries в режиме Proxy принимает разделенный запятыми список двухбуквенных кодов стран (CZ, GB). При отправке значения очищаются от пробелов, переводятся в верхний регистр и дедуплицируются. Выбор работает как строгий allowlist: proxy с неизвестными странами выхода исключаются, а fallback на другую страну никогда не выполняется. Если в текущем пуле нет совпадений, ответ возвращает code: "no_eligible_proxy" с запрошенным скоупом в details.exitCountries. Сохраните скоуп и повторите попытку позже.
Когда proxy вызов завершается успешно с заданным скоупом, панель ответа отображает exit <CODE> рядом с ID proxy, чтобы вы могли убедиться, что предоставленная страна соответствует запрошенной.
Toolbar Reset
Кнопка Reset на панели инструментов (рядом с History и Saved) сбрасывает playground в исходное состояние. Так как это деструктивное действие, открывается диалог подтверждения со списком удаляемых данных: все три формы продуктов (Single, Proxy, Browser), сохраненные cookie в jar, перенесенные proxy и текущий response. Сохраненные пресеты и выбранный API key сохраняются. Нажмите Reset everything для подтверждения; любое другое действие отменяет сброс.
Sending and Canceling
Нажмите Send, чтобы отправить request. Правая колонка переходит в состояние загрузки со спиннером и кнопкой Cancel во время выполнения вызова. Нажмите Cancel (или повторно нажмите кнопку на мобильных устройствах) для отмены. Отмененный request возвращает исходный плейсхолдер с текстом "Request canceled." вместо отображения ошибки.
Карточка ответа переключается на результат в момент завершения (или сбоя) запроса. Запуски в режиме Auto могут занимать больше времени, чем ручные движки, так как лестница стратегий может пройти несколько ступеней на холодном таргете.
Reading the Response
Колонка ответа повторяет структуру запроса со своими вкладками:
| Tab | What it shows |
|---|---|
| Body | Распарсенное тело ответа. Переключается между режимами JSON, HTML и Text в зависимости от полученных данных. |
| Headers | Заголовки response, по одному на строку. |
| Cookies | Cookie, возвращенные таргетом, в распарсенном (сгруппированном по хостам) и сыром (текст Set-Cookie) виде. В распарсенном виде отображается бейдж HO для host-only cookie; domain cookie остаются без меток. |
| Raw | Полный JSON конверт, возвращенный API. |
Панель инструментов ответа содержит кнопки Copy и Download для всего response, а также Find in response (Ctrl+K или Cmd+K) для поиска по открытой вкладке с навигацией по Enter и Shift+Enter. Вкладки Body, Headers и Cookies также имеют собственные кнопки Copy и Download для содержимого конкретной вкладки.
Строка метаданных над вкладками показывает исходный HTTP-статус upstream, общее время, ID proxy, обработавшего вызов, и (для вызова Proxy с областью видимости) двухбуквенный exit <CODE>. Для запусков Auto строка также показывает, какая ступень лестницы доставила response, сколько было подзапросов и сколько кредитов потрачено.
Что потребовалось для вызова
Текстовая строка под метаданными поясняет, как именно была загружена страница. Для запуска Auto в ней указана ступень (уже имевшаяся у FourA сессия для хоста, обычный request, ротируемый proxy, реальный браузер или сначала браузер, а затем дешевый повтор), было ли пройдено испытание challenge, сколько попыток потребовалось и какова стоимость.
Если один из лимитов вашего тарифа отклонил вызов, в строке сначала выводится: "Остановлено вашим тарифом, а не сайтом", затем указывается лимит (исчерпаны запросы браузера на сегодня, слишком много одновременных запросов в обработке, потрачены кредиты текущего периода и т. д.) и ссылка на Использование и лимиты. Строка формируется на основе кода X-FourA-Limit, возвращенного API, поэтому при сбое на сложной странице сразу понятно, заблокировал ли ее сайт или сработал лимит тарифа.
Перенос значений между запусками
После любого запуска, вернувшего данные сессии для повторного использования, небольшой элемент управления Carry на панели инструментов response показывает доступные параметры:
- Запуски Auto предлагают полную тройку
session(proxy,cookies,userAgent). - Запуски Browser предлагают
userAgentиз response, а также ID proxy, если он использовался. - Запуски Proxy предлагают возвращенный ID proxy, профиль браузера, если ротация выбрала вариант, отличный от запрошенного, и
exitClass, обработавший вызов, что позволяет сразу отправить премиум-ответ обратно.
Нажмите Carry и выберите, куда применить каждое значение в один клик: userAgent становится header User-Agent в Single или Proxy, а ID proxy подставляется в поле proxy в Single или Browser. Поля, получившие перенесенное значение, помечаются красной точкой "изменено", чтобы было видно, что именно обновилось.
Перенесенный профиль браузера заполняет три поля выбора (ОС, браузер и версия) и включает unblocker; действует то же правило, что и при выборе профиля вручную. Это доступно только после загрузки каталога профилей, так как форма состоит из трех выпадающих списков, а не из одного поля id.
Профиль показывает, что успешный request отличался от изначально заданного: Proxy сообщает profile только при переходе на семейство браузеров, отличное от запрошенного. Повторный запуск без него выполнит неудачную версию. См. раздел Почему в Proxy-запросе закончились попытки.
Развернуть на весь экран
Значок развертывания на панели инструментов response переводит карточку response из разделенного экрана в полноэкранный режим. Используйте его для глубоких деревьев JSON, длинных дампов Set-Cookie или широких блоков HTML, когда колонки половинной ширины недостаточно. Прокрутка самой страницы блокируется, пока открыт полноэкранный режим. Нажмите значок еще раз (или клавишу Escape), чтобы свернуть окно.
Воспроизведение через curl
На вкладке запроса Raw, под JSON, блок curl показывает точный эквивалент создаваемого запроса для командной строки с кнопкой Copy curl. Скопируйте его, чтобы воспроизвести запрос из терминала, передать коллеге или вставить в баг-репорт.
Для ключей с поддержкой отображения кнопка Reveal key рядом со сниппетом подставляет настоящий ключ в виде обычного текста прямо в curl, чтобы команду можно было скопировать и выполнить как есть. Нажмите еще раз, чтобы скрыть. Устаревшие ключи (созданные до появления функции отображения) сохраняют плейсхолдер PASTE_PLAINTEXT_FOR_<key-name>; перевыпустите ключ на странице API Keys, чтобы сделать его доступным для отображения.
Отображение ключа каждый раз фиксируется в журнале аудита на сервере, а сам открытый ключ хранится в памяти только в течение текущей сессии страницы.
Сохранение пресетов
Если вам приходится повторно настраивать одну и ту же цель, сохраните ее. Нажмите Save в строке вкладок запроса, чтобы сохранить текущую конфигурацию как именованный пресет.
Откройте Saved на панели инструментов, чтобы просмотреть пресеты. Нажмите Load, чтобы заполнить форму, или Delete, чтобы удалить пресет.
Запрос, открытый из вкладки DevTools расширения FourA для Chrome, загружается с выбранным ключом расширения, если этот ключ привязан к вашему аккаунту, о чем сообщается на странице. В противном случае вам будет предложено выбрать ключ. Повторно воспроизводимый запрос без явно заданного параметра unblocker выполняется с включенным значением, аналогично поведению API.
| Поле пресета | Что сохраняется |
|---|---|
| Name | Короткая метка (до 100 символов) |
| Description | Необязательные примечания (до 500 символов) |
| Endpoint | Для какого движка предназначен пресет (auto / single / proxy / browser) |
| Config | Полный payload запроса, включая поля UI, заголовки, cookies и body |
Пресеты привязаны к вашему аккаунту пользователя и не видны участникам команды.
Повтор из истории
Каждый выполненный запрос логируется. Откройте History на панели инструментов, чтобы увидеть 20 последних запусков, отсортированных от новых к старым.
В каждой строке отображаются endpoint, целевой URL, статус и время. Нажмите Replay в любой строке, чтобы загрузить этот запрос обратно в форму, затем нажмите Send, чтобы отправить его снова.
История автоматически изолирована на уровне аккаунта: вы видите только свои собственные запуски.
Открытие из Activity
В диалоговом окне с деталями Activity Log есть кнопка Open in Playground. При нажатии Playground загружает как архивный запрос, так и архивный ответ. Форма заполняется сохраненным payload, а карточка ответа показывает данные, возвращенные API в тот момент, со значком "archived" на информационной панели proxy ("archived
После этого вы можете изменить параметр и нажать Send, чтобы выполнить новый запрос к рабочему API, или просто просмотреть архивный payload без повторного запуска. Значения payload хранятся 24 часа, поэтому более старые записи Activity не содержат доступного для повторной загрузки ответа.
Советы
- Начните с Playground перед написанием кода для нового целевого ресурса. С включенным Auto вы за секунды поймете, достаточно ли дешевого fetch или сайт требует решения через браузер.
- Для ресурсов с гео-блокировкой выполните один вызов Proxy с установленным
exitCountries, затем передайте полученный proxy ID в вызов Browser, чтобы рендеринг JavaScript происходил через тот же выходной узел. - Сохраняйте пресет для каждого целевого ресурса, с которого регулярно собираете данные. Повторный запуск сохраненного пресета выполняется в один клик; восстановление параметров запроса по памяти занимает больше времени.
- Используйте вкладку Cookies для отладки сбора данных на основе сессий. Представление необработанных заголовков Set-Cookie показывает в точности то, что отправил целевой сервер.
- Если целевой ресурс блокирует запрос, попробуйте выбрать другой профиль в селекторе Browser profile перед переходом к более ресурсоемкому движку. Смена передаваемого профиля браузера бесплатна, а рендеринг в браузере стоит денег.
- Запросы из Playground тарифицируются по выбранному вами ключу. Используйте отдельный ключ с небольшим лимитом для свободных тестов, чтобы не смешивать статистику с продакшном.
Связанные разделы
- API Endpoints: полный справочник параметров для всех четырех движков, включая
exitCountriesи поля профиля браузера - Smart Fetch (Auto): как Auto работает под капотом
- Choosing the Right Endpoint: когда выбирать Auto, Single, Proxy или Browser
- API Keys: управление ключами для аутентификации запросов в Playground
- Activity Log: открытие прошлых запросов напрямую в Playground
- Dashboard Overview: обзор всех разделов боковой панели