Главное
Это был отказ целевого сайта или ограничение вашего тарифа? Теперь каждый request, отклоненный вашим тарифом, содержит причину в одном header, а Auto и Playground также считывают этот ответ. Порт proxy научился сохранять таргетинг по ключу, а Browser rendering и решение CAPTCHA теперь доступны на каждом тарифе, включая Free.
Что нового
Отказ с указанием источника
Когда лимит вашего тарифа отклоняет request, response содержит header X-FourA-Limit с указанием конкретной причины: plan_limit_credits, plan_limit_rate, plan_limit_browser_daily и еще четыре варианта. Тело ответа дублирует код в поле reason рядом с вашим текущим лимитом. Общие лимиты платформы никогда не выставляют этот header, поэтому само его наличие указывает на ограничение вашего аккаунта, а не на перегрузку FourA.
import requests
r = requests.post(
"https://api.foura.ai/api/single",
headers={"X-API-Key": "pk_live_..."},
json={"url": "https://example.com/data"},
)
limit = r.headers.get("X-FourA-Limit")
if limit:
print("my plan stopped this:", limit, r.json()["error"])
Каждый лимит вашего аккаунта теперь определяется текущим тарифом, а раздел Usage & Limits показывает каждый из них рядом с текущим расходом за период. В справочнике по rate limits описаны все семь кодов и указано, какие из них сбрасываются после короткого ожидания.
Auto считывает тот же код и действует по нему. Лимит, блокирующий одну ступень (например, дневную квоту на браузер), оставляет остальную лестницу рабочей, а уже опробованные точки выхода не считаются виновными в отказе, который вернул ваш тариф. Лимит, означающий исчерпание ресурсов самого аккаунта (кредиты, трафик или продукт, не входящий в тариф), сразу останавливает лестницу и возвращает отказ, вместо бессмысленного перебора остальных маршрутов. Это не меняет назначения Auto: позвольте ему найти рабочую ступень, а затем воспроизведите возвращенную сессию через /api/single или /api/browser и направьте туда основной объем.
Playground показывает это прямо текстом. Строка над ответом сообщает, через что была доставлена страница: уже существовавшая сессия для этого хоста, обычный request, ротируемый proxy или реальный браузер, а также решена ли CAPTCHA, какая попытка увенчалась успехом и сколько это стоило. Если запрос был остановлен вашим тарифом, строка начинается со слов "Stopped by your plan, not by the site" и указывает конкретный лимит.
Proxy port в бета-версии
Proxy port позволяет любому клиенту, поддерживающему URL прокси, направлять трафик через наши точки выхода без вызовов API. Это бета-версия: трафик через нее пока не тарифицируется, SLA по аптайму не предоставляется, а названия параметров еще могут измениться.
На этой неделе выбор стал более прозрачным: общая сеть (shared network) с нашими собственными выходами, входящая в тариф, или резидентская сеть (residential network) с домашними адресами, расходующая премиальный трафик тарифа. Автоматический переход на резидентскую сеть при недоступности общей сети вынесен в отдельный переключатель, который по умолчанию выключен. Включать его за вас значило бы принимать решение о расходе ваших лимитов.
Таргетинг теперь привязан к учетным данным. Сохраните страну, регион, город или устройство в профиле proxy-пользователя, и каждое соединение с его использованием будет применять эти параметры. Благодаря этому строка подключения сокращается до базовых учетных данных и только тех параметров, которые отличаются. Но параметры в username по-прежнему имеют приоритет для конкретного соединения, а any сбрасывает сохраненное значение: например, -city-any запрашивает всю страну для ключа, в котором зафиксирован отдельный город.
Используете отдельный профиль браузера на каждый адрес? Укажите нужное количество sticky-адресов, и страница сформирует список строк с уникальными именами сессий. Кнопка генерации новых имен выдает свежий набор, если целевой сайт заблокировал старый, а строки экспортируются в виде URL или host:port:user:pass, подходящего для большинства proxy-менеджеров. Вся грамматика username описана в документации по proxy port.
Защищенные страницы на каждом тарифе
Рендеринг в браузере и решение CAPTCHA входят во все тарифы, включая Free, различаются только лимиты. В Free и Developer также включен объем премиального исходящего трафика, так что вы можете проверить работу с защищенной страницей на своем URL до оплаты.
Премиальным выходам в Proxy Finder теперь все равно, на какой сайт вы их направляете. Отправьте exitClass: premium для любого целевого ресурса, и все решает только премиальный трафик вашего тарифа (и его остаток).
Биллинг с учетом ваших реквизитов
Компания, номер VAT и страна, сохраненные в Billing Details, указываются в инвойсе и определяют расчет VAT при оформлении и каждом продлении. Если ввести другие данные в форме оплаты, они переопределят это поле только для текущего платежа.
Если мы подключили вам тариф в рамках подписанного договора, в Plan & Usage он отобразится с кнопкой Confirm: выберите помесячную или годовую оплату, привяжите карту и оплатите весь период сразу, без перерасчета.
Рядом с кредитами в Plan & Usage появились две новые карточки: для пропускной способности и для премиального трафика. Каждая показывает расход относительно лимита тарифа и докупленного объема. Если доступно пополнение нужного типа, кнопка Buy находится прямо на соответствующей карточке. В руководстве по биллингу описаны оба варианта.
Под капотом
Минутный rate limit считает ровно тот трафик, который был отправлен за эту минуту, вплоть до начала следующей. Таблицы в дашборде адаптированы под экраны ноутбуков, а на смартфонах широкие таблицы прокручиваются по горизонтали внутри своего блока. Таблицы в блоге на узких экранах скроллятся так же. На странице организации сразу отображаются отправленные приглашения.
Понятный отказ позволяет скорректировать работу. Если задача остановится, один header подскажет, подождать секунду, дождаться полуночи по UTC или проверить условия тарифа.