# List available VPN servers

## OpenAPI Specification

```yaml
openapi: 3.0.1
info:
  title: ''
  description: ''
  version: 1.0.0
paths:
  /api/public/v1/servers:
    get:
      summary: List available VPN servers
      deprecated: false
      description: ''
      tags:
        - 📢 Public
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  servers:
                    type: array
                    items:
                      $ref: '#/components/schemas/Server'
                x-apidog-orders:
                  - servers
                x-apidog-ignore-properties: []
          headers: {}
          x-apidog-name: ''
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          headers: {}
          x-apidog-name: ''
      security: []
      x-apidog-folder: 📢 Public
      x-apidog-status: released
      x-run-in-apidog: https://app.eu.apidog.com/web/project/361232/apis/api-4063128-run
components:
  schemas:
    Server:
      type: object
      required:
        - id
        - country
        - city
        - flag
        - status
      properties:
        id:
          type: string
          description: Unique identifier for the server location (group or specific ID).
          examples:
            - eu-de
        country:
          type: string
          examples:
            - Germany
        city:
          type: string
          examples:
            - Nuremberg
        flag:
          type: string
          examples:
            - 🇩🇪
        status:
          type: string
          enum:
            - online
            - offline
          description: Health status of the VPN node.
      x-apidog-orders:
        - id
        - country
        - city
        - flag
        - status
      x-apidog-ignore-properties: []
      x-apidog-folder: ''
    ApiError:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          description: Machine-readable error code.
          examples:
            - ERR_RATE_LIMIT_EXCEEDED
        message:
          type: string
          description: Human-readable explanation.
          examples:
            - Too many requests.
        details:
          type: object
          x-apidog-orders: []
          properties: {}
          x-apidog-ignore-properties: []
          nullable: true
      x-apidog-orders:
        - error
        - message
        - details
      x-apidog-ignore-properties: []
      x-apidog-folder: ''
  securitySchemes:
    ApiKeyAuth:
      type: bearer
      scheme: bearer
      description: Authenticate using your TunnelSats API Key (sk_live_...).
    NostrAuth:
      type: bearer
      scheme: bearer
      description: >-
        NIP-98 Nostr Authentication. The 'token' should be the base64-encoded
        NIP-98 event JSON.
servers:
  - url: https://tunnelsats.com
    description: Prod Env
security: []

```