У всіх публічних операціях передавайте значення Port.port як {id}. Наприклад, "port": "10000" відповідає шляху /ports/10000.
POST /ports/{id}/tags замінює список тегів порту. Публічний контракт дозволяє до 30 тегів і до 50 символів у кожному тезі.
{ "tags": ["production", "crawler-eu"]}Облікові дані та список дозволених IP
Section titled “Облікові дані та список дозволених IP”POST /ports/{id}/credentials замінює налаштування облікових даних. Модель містить:
ip: масив дозволених вихідних IP-адрес;password: масив об’єктів ізloginіpassword.
{ "ip": ["203.0.113.10"], "password": [ { "login": "integration", "password": "use-a-generated-secret" } ]}Зберігайте паролі в менеджері секретів і не повертайте їх із власних API.
Сигнатура, продовження та розклад скидання
Section titled “Сигнатура, продовження та розклад скидання”| Endpoint | Тіло | Призначення |
|---|---|---|
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
Section titled “Офіційний 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]),);Журнали
Section titled “Журнали”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
Section titled “Офіційний 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-архів
Section titled “VPN-архів”GET /ports/{id}/vpn завантажує архів конфігурації VPN для порту. Також існує POST-маршрут сумісності. Вважайте архів секретом, адже він може містити дані для підключення, та обробляйте відповідь як двійкові дані, а не JSON.
Офіційний SDK
Section titled “Офіційний 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');Токен скидання
Section titled “Токен скидання”GET /tokens/{token} знаходить модель порту за його токеном скидання. Цей маршрут усе одно потребує bearer-токен облікового запису; токен у шляху не замінює автентифікацію API.