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

# List VPN connections

`GET /vpn/connections/list`

## Request

- Base URL: `https://demo.onlinebillingform.com/api/v2`
- URL: `https://demo.onlinebillingform.com/api/v2/vpn/connections/list`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/b-cdn/apis/billingserv-api-v2/docs/vpn/connections/list/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the authenticated account's VPN connections. Customer API keys are supported; staff keys are denied. The bearer token determines the account, and id or customer_id query parameters cannot select another customer. No query parameters or request body are required. Results are not paginated and include pending reservations because they consume connection slots. Connection date and time record profile provisioning, not live tunnel activity. Compare each id with the connection_id saved from POST /vpn/connection/get to flag the current device. To disconnect another connection, send its id as connection_id to POST /vpn/disconnect; ownership checks still apply. VPN profile contents and server credentials are excluded.

## Response `200`

Customer connection records and the configured connection allowance

- object
  - `success` true, required
  - `connections` object[], required: All connection records belonging to the authenticated account, including pending reservations, ordered by descending connection ID. Empty when the account has no connections.
    - `id` integer, required: Connection ID. Compare with the connection_id saved from POST /vpn/connection/get to identify the current device. Send this value as connection_id to POST /vpn/disconnect to disconnect this connection.
    - `device_info` string, nullable, required: Device label supplied when connecting, or detected from the user agent. May be null for older connections.
    - `server_id` integer, required: ID of the VPN server assigned to this connection.
    - `server_name` string, nullable, required: Assigned server name. Null when the associated server record is unavailable.
    - `vpn_type` string, nullable, required: Connection protocol, such as openVPN, wireguard, or amneziawg. Pending reservations use the assigned server protocol when available. Null when neither record has a protocol.
    - `connected_date` string, date, nullable, required: Profile provisioning date in the application timezone. Null until provisioning completes.
    - `connected_time` string, nullable, required: Profile provisioning time in HH:mm:ss format in the application timezone. Null until provisioning completes.
    - `created_at` string, date-time, nullable, required: Connection reservation creation timestamp with timezone offset. May be null for older records.
  - `current_connections` integer, required: Number of returned connection records, including pending reservations that consume connection slots.
  - `max_allowed` integer, required: Tenant-wide per-customer connection limit. Returns 0 when the global setting is missing or resolves to a non-positive value.

## Other responses

- `401`: Missing or invalid API key
- `403`: Staff API keys are not permitted to list VPN connections
- `429`: Rate limit exceeded

## Changes

- **2026-10-27** `232ab5ca8413`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/b-cdn/apis/billingserv-api-v2/changes/vpn/connections/list/get.md)

---

[API](https://skmtc.dev/b-cdn/apis/billingserv-api-v2.md) - [All operations](https://skmtc.dev/b-cdn/apis/billingserv-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/b-cdn/apis/billingserv-api-v2/revisions/232ab5ca8413?raw)
