---
title: "List VPN servers"
method: GET
path: "/vpn/servers/list"
tags: ["VPN"]
---

# List VPN servers

`GET /vpn/servers/list`

Returns the paginated VPN server list together with the ordered server-group representation used by VPN applications. The order of `server_groups` matches the order configured in VPN Deploy, and the order of each group's `servers` array matches the configured server order. Only online, enabled servers are included. Configured groups remain present when empty. An `Other` group is appended only when ungrouped available servers exist.

## Query parameters

- `per_page` integer

## Response `200`

OK

- object
  - `success` true, required
  - `vpn_systems` object, required — Paginated flat VPN server list.
    - `data` object[], required
      - `id` integer, required
      - `server_name` string, required
      - `ip_address` string, required
      - `ssh_port` integer, required
      - `ssh_username` string, required
      - `max_connections` integer, nullable, required
      - `vpn_type` 'openVPN' | 'wireguard' | 'amneziawg', required
      - `flag_countries` string, required
      - `status_online` 0 | 1, required
      - `is_disabled` boolean, required
      - `connections_count` integer, required — Number of current VPN connection records for this server.
    - `current_page` integer, required
    - `first_page_url` string, uri, required
    - `from` integer, nullable, required
    - `last_page` integer, required
    - `last_page_url` string, uri, required
    - `next_page_url` string, uri, nullable, required
    - `path` string, uri, required
    - `per_page` integer, required
    - `prev_page_url` string, uri, nullable, required
    - `to` integer, nullable, required
    - `total` integer, required
  - `server_groups` object[], required — Ordered VPN groups. Clients should preserve this array order when displaying locations.
    - `id` string, required — Stable group UUID, or `other` for the conditional ungrouped-server group.
    - `name` string, required
    - `servers` object[], required — Available servers in their configured order.
      - `id` integer, required
      - `server_name` string, required
      - `ip_address` string, required
      - `vpn_type` 'openVPN' | 'wireguard' | 'amneziawg', required
      - `flag_countries` string, required
      - `status_online` boolean, required
      - `is_disabled` boolean, required
      - `connections_count` integer, required — Number of current VPN connection records for this server.

## Other responses

- `400` — Validation error
- `401` — Missing or invalid API key
- `403` — Authenticated key does not have permission for this endpoint

---

[API](https://skmtc.net/b-cdn/apis/billingserv-api-v2.md) · [All operations](https://skmtc.net/b-cdn/apis/billingserv-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/b-cdn/billingserv-api-v2/revisions/76cfbed5eb40/schema)
