All public port operations use the value of Port.port as {id}. For example, "port": "10000" maps to /ports/10000.
POST /ports/{id}/tags replaces the port tag list. The public contract allows up to 30 tags and up to 50 characters per tag.
{ "tags": ["production", "crawler-eu"]}Credentials and IP allowlist
Section titled “Credentials and IP allowlist”POST /ports/{id}/credentials replaces credential configuration. The model contains:
ip: an array of allowed source IP addresses;password: an array of objects withloginandpassword.
{ "ip": ["203.0.113.10"], "password": [ { "login": "integration", "password": "use-a-generated-secret" } ]}Keep passwords in a secret manager and avoid returning them from your own APIs.
Signature, renewal, and reset schedule
Section titled “Signature, renewal, and reset schedule”| Endpoint | Body | Purpose |
|---|---|---|
POST /ports/{id}/signature | { "signature": "Linux" } | Apply a current signature from GET /signatures |
POST /ports/{id}/autorenew | { "autoRenew": true } | Enable or disable plan renewal |
POST /ports/{id}/autoreset | { "autoResetInterval": 600 } | Set reset interval in seconds; 0 disables it |
Use 0 to disable automatic resets or an interval of at least 180 seconds. Values from 1 through 179 can be stored but are not processed by the automatic reset scheduler. Scheduling is asynchronous and does not promise an exact wall-clock reset time. See Port reset and readiness.
Official SDK
Section titled “Official 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 returns recent events. POST /ports/{id}/log accepts from, to, page, and pageSize to filter history. Defaults are page 1 and page size 20.
| Field | Meaning |
|---|---|
action | Recorded operation, such as a reset or assignment |
cause | Normalized initiator: system, admin, or user |
source | More specific source recorded by the platform |
extra | Additional operation context; accept unknown fields |
createdAt | Event time |
With both dates, the API returns the exact from–to range. With only from, the range ends at the current time. With only to, it begins one month before to. Store timestamps in UTC and page until complete.
A reset log proves that an action was recorded, not that the new IP is already usable. Confirm the change through the port's ip value or a port.ip_changed webhook.
Official SDK
Section titled “Official 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 archive
Section titled “VPN archive”GET /ports/{id}/vpn downloads the port VPN configuration archive. A POST compatibility route is also present. Treat the archive as a secret because it can contain connection material, and inspect the response as binary rather than JSON.
Official SDK
Section titled “Official 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');Reset token
Section titled “Reset token”GET /tokens/{token} resolves a port reset token to its port model. This route still requires the account bearer token; the path token is not a replacement for API authentication.