Во всех публичных операциях передавайте значение Port.port как {id}. Например, "port": "10000" соответствует пути /ports/10000.
POST /ports/{id}/tags заменяет весь список тегов. Публичный контракт разрешает до 30 тегов длиной до 50 символов каждый.
{ "tags": ["production", "crawler-eu"]}Учетные данные и список IP
Заголовок раздела «Учетные данные и список IP»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 могут сохраниться, но планировщик автосброса их не обрабатывает. Выполнение асинхронно и не гарантирует точное время по часам. Подробнее: Сброс и готовность порта.
Официальный SDK
Заголовок раздела «Официальный SDK»await client.ports.updateTags({ id: '10000', body: { tags: ['Production1'] },});
await client.ports.setAutoResetInterval({ id: '10000', body: { autoResetInterval: 600 },});from ltesocks_sdk.models import ( UpdatePortAutoresetBody, UpdatePortTagsBody,)
client.ports.update_tags( "10000", body=UpdatePortTagsBody(tags=["Production1"]),)client.ports.set_auto_reset_interval( "10000", body=UpdatePortAutoresetBody(auto_reset_interval=600),)<?php
use LTESocks\Dto\UpdatePortAutoresetRequest;use LTESocks\Dto\UpdatePortTagsRequest;
$client->ports()->updateTags( '10000', new UpdatePortTagsRequest(['tags' => ['Production1']]),);$client->ports()->setAutoResetInterval( '10000', new UpdatePortAutoresetRequest(['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 возвращает точный диапазон from–to. Если передан только from, диапазон заканчивается текущим временем. Если передан только to, он начинается за месяц до to. Храните время в UTC и загружайте страницы до конца.
Запись о сбросе подтверждает регистрацию действия, но не готовность нового IP. Подтверждайте изменение по полю ip порта или вебхуку port.ip_changed.
Официальный SDK
Заголовок раздела «Официальный SDK»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, },});from datetime import datetime, timezone
from ltesocks_sdk.models import FilterPortLogBody
log = client.ports.filter_log( "10000", body=FilterPortLogBody( from_=datetime(2026, 8, 1, tzinfo=timezone.utc), to=datetime(2026, 8, 31, 23, 59, 59, tzinfo=timezone.utc), page=1, page_size=100, ),)<?php
use LTESocks\Dto\FilterPortLogRequest;
$log = $client->ports()->filterLog( '10000', new FilterPortLogRequest([ 'from' => new DateTime('2026-08-01T00:00:00Z'), 'to' => new DateTime('2026-08-31T23:59:59Z'), 'page' => 1, 'pageSize' => 100, ]),);VPN-архив
Заголовок раздела «VPN-архив»GET /ports/{id}/vpn скачивает архив VPN-конфигурации порта. Также существует POST-маршрут совместимости. Архив может содержать данные подключения, поэтому храните его как секрет и обрабатывайте ответ как бинарный, а не JSON.
Официальный SDK
Заголовок раздела «Официальный SDK»const archive = await client.downloadPortVpn('10000');await archive.saveTo('./ltesocks-vpn.zip');archive = client.download_port_vpn("10000")archive.save_to("ltesocks-vpn.zip")<?php
$archive = $client->downloadPortVpn('10000');$archive->saveTo(__DIR__ . '/ltesocks-vpn.zip');Токен сброса
Заголовок раздела «Токен сброса»GET /tokens/{token} находит модель порта по токену сброса. Маршрут все равно требует bearer-токен аккаунта: токен в пути не заменяет авторизацию API.