# Get Subscription Status

## OpenAPI Specification

```yaml
openapi: 3.0.1
info:
  title: ''
  description: ''
  version: 1.0.0
paths:
  /api/public/v1/subscription/status:
    post:
      summary: Get Subscription Status
      deprecated: false
      description: >-
        Returns subscription status by polling VPN servers. No authentication
        required.


        | Field | Type | Description |

        | --- | --- | --- |

        | `wgPublicKey` | string | WireGuard public key (base64, 44 chars) |

        | `expiry` | string | Subscription end date (ISO 8601) |

        | `bandwidth_used_gb` | number | Bandwidth used in GB |

        | status | string | `"enabled"`  <br>or  <br>`"disabled"` |

        | `server_domain` | string | VPN server domain |

        | `last_synced_at` | string | null |


        #### Rate Limit


        - 30 requests per minute per IP
      tags:
        - 📢 Public
      parameters:
        - name: Content-Type
          in: header
          description: ''
          required: true
          example: application/json
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                wgPublicKey:
                  type: string
              required:
                - wgPublicKey
              x-apidog-orders:
                - wgPublicKey
            example:
              wgPublicKey: '{{wgPublicKey}}'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  expiry:
                    type: string
                  bandwidth_used_gb:
                    type: number
                  status:
                    type: string
                  server_domain:
                    type: string
                  last_synced_at:
                    type: string
                required:
                  - expiry
                  - bandwidth_used_gb
                  - status
                  - server_domain
                  - last_synced_at
                x-apidog-orders:
                  - expiry
                  - bandwidth_used_gb
                  - status
                  - server_domain
                  - last_synced_at
              example:
                expiry: '2026-08-14T15:47:41.000Z'
                bandwidth_used_gb: 45.67
                status: enabled
                server_domain: de2.tunnelsats.com
                last_synced_at: '2026-01-09T12:00:00.000Z'
          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-4063133-run
components:
  schemas: {}
  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: []

```