# Порт proxy

> URL: https://foura.ai/ru/docs/api/proxy-port
> Updated: 2026-10-15
> Index: https://foura.ai/llms.txt

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

## Подключение

| Параметр | Значение |
|---------|-------|
| Host | `proxy.foura.ai` |
| Port | `34004` |
| Протокол | HTTP CONNECT с Basic authentication |
| Целевые порты | `443` и `80` |

Учетные данные создаются в панели управления. Создайте proxy-пользователя в разделе **Proxy** на боковой панели, чтобы получить сгенерированные имя пользователя и пароль. Они намеренно отделены от вашего API-ключа: рукопожатие proxy передается в открытом виде при каждом подключении, а данные proxy-пользователя можно ротировать без изменений в интеграции с API. См. [Proxy Users](https://foura.ai/docs/dashboard/proxy).

```bash
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 https://example.com
```

```python
import requests

proxy = "http://USERNAME:PASSWORD@proxy.foura.ai:34004"
r = requests.get("https://example.com", proxies={"https": proxy, "http": proxy})
print(r.status_code)
```

Этот порт поддерживает только CONNECT. Целевой `https://` туннелируется любым клиентом. Обычный `http://` работает, если ваш клиент также туннелирует его (curl: `--proxytunnel`); клиент, который вместо этого пересылает обычный request на proxy, получает `405 Method Not Allowed`.

## Опции передаются в username

Все параметры после учетных данных представляют собой список пар `-key-value` в произвольном порядке:

```
USERNAME-network-premium-country-de-session-a1
```

Значения указываются словами в нижнем регистре. Дефис внутри значения начинает новую опцию, поэтому `-city-new-york` считывается как две опции и отклоняется. Неизвестный ключ также отклоняется и никогда не игнорируется: опечатка в `-contry-de` вернет 400 со списком поддерживаемых ключей вместо отправки запроса не из той страны.

| Опция | Значения | Описание |
|--------|--------|--------------|
| `network` | `shared` (по умолчанию, псевдоним `pool`), `premium` (псевдоним `residential`) | Из какой сети берется адрес. Shared, это собственные выходные узлы FourA, включенные в тариф. Premium, это домашние адреса, расходующие включенный в тариф премиум-трафик и дополнительно купленный объем. |
| `fallback` | `premium` (псевдоним `residential`), `off` | Только для сети shared. Переход на премиум-узел, когда сеть shared не может обработать запрос. Отключено по умолчанию и срабатывает только при наличии премиум-трафика в тарифе и неизрасходованного лимита. |
| `country` | ISO 3166-1 alpha-2, повторяемый | Страна выхода, видимая целевому сервису. Повторите параметр для охвата нескольких стран: `-country-de-country-fr`. |
| `session` | от 1 до 32 букв, цифр или подчеркиваний | Соединения с одинаковым именем делят один адрес (sticky). Опустите параметр для получения нового адреса на каждое соединение (rotating). |
| `state` | слово | Регион. Только premium. |
| `city` | слово | Город. Только premium. |
| `asn` | число | Сеть, по номеру AS. Только premium. |
| `os` | `windows`, `android`, `ios`, `mac` | Тип устройства, которому принадлежит адрес. Только premium. |
| `lifetime` | от `3` до `1440` | Время удержания sticky премиум-адреса в минутах. Только premium. |

Каждая опция, кроме `network`, `fallback` и `session`, принимает значение `any`, которое сбрасывает сохраненное для пользователя proxy значение для этого конкретного соединения.

Три комбинации отклоняются со статусом 400 вместо частичного применения:

- `state`, `city`, `asn`, `os` или `lifetime` в сети shared. Сеть shared выбирается только по стране и без более точной детализации; добавьте `-network-premium` для выбора города.
- `-fallback-premium` вместе с `-network-premium`. Fallback не имеет смысла в той сети, на которую он должен переключать.
- Более точный таргетинг при включенном fallback. Fallback может сработать или не сработать, поэтому указание города, которое может быть выполнено лишь иногда, отклоняется.

### Сессии

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

В сети premium именованная сессия удерживает свой адрес в течение `lifetime` минут или в течение времени по умолчанию для сети, если значение не задано.

### Сохраненные значения по умолчанию

Таргетинг, сохраненный для proxy-пользователя в панели управления, применяется к каждому соединению через него, поэтому имя пользователя может оставаться коротким. Любые параметры в имени пользователя имеют приоритет для конкретного соединения, а `any` сбрасывает значение до сохраненного. Сохраненное премиум-значение по умолчанию расходует средства только тогда, когда это разрешено вашим тарифом; в противном случае соединение обслуживается из общей сети, и туннель все равно открывается.

### Заголовки CONNECT

Клиент, поддерживающий добавление заголовков в CONNECT-request, может передавать те же опции в виде заголовков. Заголовок имеет приоритет над аналогичной опцией в имени пользователя.

| Header | Same as |
|--------|---------|
| `X-Foura-Network` | `-network-` |
| `X-Foura-Fallback` | `-fallback-` (`premium` or `off`) |
| `X-Foura-Country` | `-country-`, comma-separated for several |
| `X-Foura-Session` | `-session-` |
| `X-Foura-State` | `-state-` |
| `X-Foura-City` | `-city-` |
| `X-Foura-Asn` | `-asn-` |
| `X-Foura-Lifetime` | `-lifetime-` |

```bash
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 \
  --proxy-header "X-Foura-Country: de" \
  https://example.com
```

## Ответы

Открывающийся туннель возвращает `200 Connection established`. Каждый отказ после проверки учетных данных содержит header `X-Foura-Error` с однострочным описанием причины, поэтому проверяйте этот header в первую очередь.

| Статус | Когда возвращается |
|--------|------|
| 400 Bad Request | Некорректный request или параметр, который FourA не поддерживает. `X-Foura-Error` указывает параметр и допустимые значения. |
| 403 Forbidden | Целевой порт не обслуживается, цель не является публичным интернет-хостом, порт не входит в ваш тариф либо указан `-network-premium`, но на тарифе закончился премиум-трафик или нет доступа к премиум-сети. |
| 405 Method Not Allowed | Обычный request вместо CONNECT. |
| 407 Proxy Authentication Required | Учетные данные отсутствуют или неверны. Ответ никогда не уточняет, какая именно часть указана с ошибкой. |
| 408 Request Timeout | Клиент подключился, но ничего не отправлял в течение 15 секунд. |
| 431 Request Header Fields Too Large | Размер headers запроса CONNECT превысил 16 КБ. |
| 429 Too Many Requests | Превышен один из лимитов тарифа: одновременно открытые туннели, частота открытия туннелей в минуту или стандартный трафик за текущий расчетный период. Также возвращается при исчерпании емкости или лимита частоты подключений самого порта. Подробности указаны в `X-Foura-Error`. |
| 502 Bad Gateway | Для этой цели не найден рабочий выход за отведенное время либо собственный резолвер FourA не смог определить хост. В `X-Foura-Error` это разделяется на два разных сообщения. |
| 503 Service Unavailable | Прокси-порт выключен. |

## Лимиты

- Лимиты одновременно открытых туннелей и открытий в минуту определяются вашим тарифом и считаются на весь аккаунт, а не на отдельного пользователя proxy: создание вторых учетных данных не удваивает лимит. Ваши показатели доступны на странице [Usage & Limits](https://foura.ai/docs/dashboard/quota).
- Поиск выхода занимает до 45 секунд, после чего порт завершает попытку с ошибкой 502. Сессия с уже назначенным выходом обычно подключается намного быстрее чем за секунду.
- Туннель без передачи байтов в обоих направлениях закрывается после двух минут простоя.
- При обновлении порта уже открытым туннелям дается чуть менее трех минут на завершение работы, после чего они закрываются, в то время как новые соединения продолжают открываться. При длительной загрузке или стриминге клиенту следует переподключиться после закрытия туннеля.
- Пользователь proxy, отключенный или удаленный в панели управления, перестает проходить аутентификацию в течение одной минуты.

## Учет трафика

Байты, прошедшие через порт, учитываются в полосе пропускания на вашей странице [Usage & Limits](https://foura.ai/docs/dashboard/quota), а байты через премиум-выход дополнительно учитываются в объеме премиум-трафика: одни и те же байты отражаются в двух отчетах, но не суммируются между собой. При открытии туннеля трафик премиум-выходов, опробованных портом, но не использованных, также засчитывается как премиум-трафик. Неиспользованные попытки в общей сети не тарифицируются, а при неудачном открытии туннеля не списывается ничего.

Стандартный трафик, который может использовать порт, берется из вашего тарифного плана. В тарифах с оплатой кредитами порт имеет собственный включенный объем гигабайтов, и на странице Billing можно докупить еще; в тарифах с оплатой по трафику он расходует тот же пул, что и API. Когда этот лимит заканчивается, новые соединения отклоняются до сброса расчетного периода или покупки дополнительного объема, а письма об использовании сообщают точное время.

Когда лимит премиум-трафика исчерпан, три способа доступа к этой сети обрабатываются по-разному, и это сделано намеренно. Соединение, указывающее `-network-premium`, отклоняется с ошибкой 403 с соответствующим сообщением, поскольку клиент, явно запросивший платный ресурс и незаметно перенаправленный в другое место, продолжал бы делать запросы и ожидать премиум-строку, которая так и не появится. Fallback не применяется, а сохраненная у proxy user премиум-настройка по умолчанию понижается до общей сети, которая по-прежнему открывает туннель: ни в одном из этих случаев явного выбора платить за данное соединение не было.

## См. также

- [Proxy Users](https://foura.ai/docs/dashboard/proxy): создание proxy users и формирование строки подключения в панели управления
- [Proxy Request](https://foura.ai/docs/api/endpoints#proxy-request): альтернатива через JSON API со встроенными повторными попытками и валидацией
- [Reuse a Proxy Across Requests](https://foura.ai/docs/how-to/reuse-a-proxy): сохранение единой точки выхода в JSON API
- [Usage & Limits](https://foura.ai/docs/dashboard/quota): пропускная способность и премиум-трафик в рамках вашего тарифа
