---
title: "Filter ports"
method: POST
path: "/ports"
tags: ["Ports"]
---

# Filter ports

`POST /ports`

Returns a paginated list of ports filtered by plan, country, and tags.

## Request body

- object
  - `plan` string — Plan ID (exact)
  - `countryCode` string
  - `tags` string[]
  - `page` integer
  - `pageSize` integer

## Response `200`

Successful operation

- object
  - `data` Port[]
    - `port` string — Port number
    - `ip` string — Port current IP address (0.0.0.0 if not available)
    - `geoip` GeoIP
      - `continentCode` string
      - `continentName` string
      - `countryCode2` string
      - `countryCode3` string
      - `stateProv` string
      - `district` string
      - `city` string
      - `zipcode` string
      - `latitude` string
      - `longitude` string
      - `isp` string
    - `status` 'active' | 'reset' | 'suspended' | 'disconnected' | 'outoftraffic' — Port status
    - `resetToken` string — Port reset token
    - `signature` string — Port signature
    - `vpnAccess` boolean — Indicates whether port has access to the VPN server
    - `autoResetInterval` integer — Port auto reset interval in seconds, 0 means disabled
    - `tags` string[] — Port tags
    - `plan` PortPlan
      - `id` string — Plan ID
      - `name` string — Plan title
      - `countryCode` string — Plan country code
      - `enabled` boolean — Indicates whether plan is active
      - `autoRenew` boolean — Indicates whether plan auto renewal is active
      - `activatedAt` string, date-time — Plan activation time
      - `expiresAt` string, date-time — Plan expiration time
      - `trafficRemains` integer — Remaining traffic amount in megabytes
      - `tarification` PlanTarification
        - `time` integer — Plan duration time in seconds
        - `traffic` integer — Plan traffic amount in megabytes
        - `price` integer — Plan price in cents
    - `credentials` PortCredentials
      - `ip` string[]
      - `password` object[]
        - `login` string
        - `password` string
  - `page` integer
  - `pageSize` integer
  - `total` integer

## Other responses

- `401` — The bearer token is missing, invalid, or no longer active.
- `429` — The configured request limit has been exceeded.
- `500` — Error

---

[API](https://skmtc.dev/ltesocks/apis/ltesocks-public-api.md) · [All operations](https://skmtc.dev/ltesocks/apis/ltesocks-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ltesocks/ltesocks-public-api/revisions/27dffb3c08b9/schema)
