Перейти к содержимому

Управление портами

Во всех публичных операциях передавайте значение Port.port как {id}. Например, "port": "10000" соответствует пути /ports/10000.

POST /ports/{id}/tags заменяет весь список тегов. Публичный контракт разрешает до 30 тегов длиной до 50 символов каждый.

{
"tags": ["production", "crawler-eu"]
}

POST /ports/{id}/credentials заменяет настройки доступа. Модель содержит:

  • ip — массив разрешенных исходных IP-адресов;
  • password — массив объектов с login и password.
{
"ip": ["203.0.113.10"],
"password": [
{
"login": "integration",
"password": "use-a-generated-secret"
}
]
}

Храните пароли в менеджере секретов и не возвращайте их из собственных API.

ЭндпоинтТелоНазначение
POST /ports/{id}/signature{ "signature": "Linux" }Применить актуальную сигнатуру из GET /signatures
POST /ports/{id}/autorenew{ "autoRenew": true }Включить или отключить продление тарифа
POST /ports/{id}/autoreset{ "autoResetInterval": 600 }Задать интервал в секундах; 0 отключает сброс

Для отключения автосброса используйте 0, а для включения — интервал не меньше 180 секунд. Значения от 1 до 179 могут сохраниться, но планировщик автосброса их не обрабатывает. Выполнение асинхронно и не гарантирует точное время по часам. Подробнее: Сброс и готовность порта.

await client.ports.updateTags({
id: '10000',
body: { tags: ['Production1'] },
});
await client.ports.setAutoResetInterval({
id: '10000',
body: { autoResetInterval: 600 },
});

GET /ports/{id}/log возвращает последние события. POST /ports/{id}/log принимает from, to, page и pageSize. По умолчанию используются страница 1 и размер страницы 20.

ПолеЗначение
actionЗаписанная операция, например сброс или назначение
causeНормализованный инициатор: system, admin или user
sourceБолее точный источник, записанный платформой
extraДополнительный контекст операции; принимайте неизвестные поля
createdAtВремя события

При передаче обеих дат API возвращает точный диапазон fromto. Если передан только from, диапазон заканчивается текущим временем. Если передан только to, он начинается за месяц до to. Храните время в UTC и загружайте страницы до конца.

Запись о сбросе подтверждает регистрацию действия, но не готовность нового IP. Подтверждайте изменение по полю ip порта или вебхуку port.ip_changed.

const log = await client.ports.filterLog({
id: '10000',
body: {
from: '2026-08-01T00:00:00Z',
to: '2026-08-31T23:59:59Z',
page: 1,
pageSize: 100,
},
});

GET /ports/{id}/vpn скачивает архив VPN-конфигурации порта. Также существует POST-маршрут совместимости. Архив может содержать данные подключения, поэтому храните его как секрет и обрабатывайте ответ как бинарный, а не JSON.

const archive = await client.downloadPortVpn('10000');
await archive.saveTo('./ltesocks-vpn.zip');

GET /tokens/{token} находит модель порта по токену сброса. Маршрут все равно требует bearer-токен аккаунта: токен в пути не заменяет авторизацию API.