← Все статьи

Дайджест FourA: 25 сентября, 2 октября 2026

Резервные серверы теперь перехватывают нагрузку при сбое основных, rate limit отклоняет только избыток, а Auto быстрее прекращает попытки на сайтах, блокирующих все точки выхода.

Главное

Отключите один из наших серверов, и ваш следующий request уйдет на другой. API, proxy-порт, MCP-сервер, авторизация и сайт теперь работают и на резервных серверах, а трафик переключается автоматически. Rate limits также перестали наказывать за небольшое превышение: вы получаете положенную квоту, и отклоняется только излишек.

Что нового

Резервные серверы на каждом направлении

Если основные серверы перестают отвечать, ваш трафик переходит на резервные без каких-либо изменений с вашей стороны. Те же ключи, те же хосты, те же proxy-пользователи.

Request, попавший на временно недоступный сервер, передается рабочему серверу вместо возврата ошибки. При этом вызовы на оставшихся серверах не замедляются.

Rate limits отсекают излишек, а не блокируют доступ

При небольшом превышении поминутного лимита тарифа в Single или Proxy Finder вы теперь получаете доступный объем, а отклоняется только излишек, поскольку отклоненные requests больше не идут в зачет минуты. Заголовок Retry-After сообщает, когда пройдет следующий.

Слишком частые повторные попытки вызовут паузу. Если число отказов за минуту превысит ваш лимит в два раза, ответом станет 30-секундное ожидание с cooldown: true. Поскольку отказы во время него не учитываются, пауза завершится сама, даже если клиент продолжает отправлять запросы. Для новых подключений к proxy-порту действует то же правило: попытка, не ставшая туннелем, не идет в зачет минуты.

import time
import requests

def single(url, key, tries=5):
    for _ in range(tries):
        r = requests.post(
            "https://api.foura.ai/api/single",
            headers={"X-API-Key": key},
            json={"url": url},
        )
        if r.headers.get("X-FourA-Limit") != "plan_limit_rate":
            return r
        # same header on the 30-second pause; the body adds "cooldown": true
        time.sleep(int(r.headers.get("Retry-After", "1")))
    return r

Каждое поле описано на странице rate limits.

Auto быстрее прекращает попытки на сайтах, блокирующих все запросы

Если сайт отклоняет каждую точку выхода, которую пробует Auto, включая Browser, вызов завершается после нескольких попыток, а не расходует весь ваш бюджет. На сайтах, которые Proxy Finder уже обрабатывал ранее, Auto сначала запрашивает страницу у Proxy Finder по вашему правилу validate, и такой поиск ничего не стоит, если результат пуст.

Еще два изменения помогают Auto не выходить за рамки заданных лимитов. Вызов, ожидающий занятую сессию или другой запрос, уже работающий с тем же сайтом, теперь завершается в пределах вашего timeout_ms с ошибкой time budget exhausted, чтобы вы могли повторить попытку или увеличить бюджет (подробности в разделе частые проблемы). А страница JSON возвращается в data в виде текста независимо от выбранного маршрута, поэтому один парсер обрабатывает все вызовы.

Ничто из этого не меняет назначение Auto. Он находит маршрут; как только маршрут найден, воспроизведите возвращенный session через /api/single или /api/browser и направьте основной трафик туда.

Страницы, требующие дополнительного шага

Browser теперь обрабатывает еще один тип промежуточных страниц: короткую страницу, которая выполняет скрипт и перезагружается с переходом к основному контенту, возвращая итоговую страницу. Auto передает такие страницы в Browser на том же выходе, поэтому вызов завершается получением контента сайта.

Некоторые страницы товаров Amazon сначала требуют нажать "Continue shopping". Single и Browser теперь нажимают эту кнопку на том же выходе и возвращают страницу товара. Вызовы через Proxy Finder и Auto получают аналогичный результат.

Browser также переходит по страницам, выполняющим редирект на другой адрес после загрузки, не дожидаясь истечения таймаута. Отправляемые вами cookie с именами __Secure- или __Host- теперь получают атрибуты, требуемые их префиксом, поэтому страница видит всю сохраненную сессию целиком.

Proxy Finder и две более понятные ошибки

Обычные HTTP-запросы через Proxy Finder теперь сначала открывают прямое соединение с сайтом, как это всегда происходило для HTTPS. Прокси, отвечающий собственной страницей или отдающий одно и то же тело для разных сайтов, пропускается, и запрос переходит к следующему.

Если передать собственный URL прокси в Single или Browser с неразрешимым именем хоста, ответом будет status 0 с ошибкой, указывающей имя хоста, как и для целевого ресурса. Запрос, направленный на сам api.foura.ai или eu.api.foura.ai, сразу получает статус 400 еще до выполнения выборки или списания средств. Ошибка указывает на типичную причину: ссылка была разрешена относительно URL API вместо исходной страницы.

Dashboard, регистрация и биллинг

  • Регистрация, начатая на foura.ai, теперь завершается в Dashboard, где вкладка Overview помогает получить первый результат: создать API key, а затем отправить request из терминала или Playground. На телефоне шаги начинаются в Playground, а для proxy-порта предусмотрены отдельные шаги с настройкой proxy user.
  • На телефоне или в узком окне Playground автоматически прокручивает response в область видимости сразу после его получения.
  • Отчеты Usage by Domain и by Client IP ранжируют все строки за период перед разбиением на страницы, поэтому на первой странице всегда отображаются реальные топ-записи.
  • Карточки Overview применяют выбранный период прямо во время загрузки, диалоговое окно периода открывается на текущем выбранном значении, а в боковом меню появилась ссылка Docs в разделе Tools.
  • Счета, выставленные вручную, теперь отображаются на странице Billing рядом с автоматическими. В счетах с учетом EU VAT применяется ставка, действовавшая на дату продажи, включая заранее объявленные изменения.

Каждое из этих изменений подробно описано на updates.foura.ai.

Under the Hood

Порт proxy ведет подсчет активных туннелей в реальном времени. Туннель, закрывшийся из-за перезапуска одного из наших инстансов, исключается из подсчета за секунды. Таким образом, доступный лимит concurrency в вашем тарифном плане полностью соответствует фактическому.

Лучший failover, это тот, о котором вы узнаете только из дайджеста.