1. 🔄 Lifecycle
TunnelSats Public Wireguard API
  • Announcements
    • 👋 About our team
    • 💫 What is TunnelSats?
    • 🚀 Introducing the TunnelSats Public API v1
    • 🧩 How the TunnelSats StartOS Package Uses the Public API
    • How TunnelSats Leverages Public APIs for Confined VPN Management
  • 📡 Discovery
    • List Available WireGuard Servers & Regions
      GET
  • ⚡ Purchase
    • Create a New WireGuard Subscription (Invoice Generation)
      POST
    • Check Invoice Status & Polling by Payment Hash
      GET
    • Claim WireGuard Configuration After Payment Settlement
      POST
  • 🔄 Lifecycle
    • Get Subscription & Bandwidth Status by WireGuard Public Key
      POST
    • Sync Subscription (Real-Time Server Refresh)
      POST
    • Renew an Existing VPN Subscription (Anonymous)
      POST
    • Request Bandwidth Top-Up ($1 Usage Reset)
      POST
  • 🔑 Account
    • List Account Subscriptions (Authenticated)
      GET
    • Create Referral Code
      POST
    • Get Referral Code
      GET
    • Referral History
      GET
  • 🔧 Tools
    • Lightning Node Network Address Discovery
      POST
    • Universal Connectivity & Latency Probe
      POST
  • Cookbook
    • 🛠️ Automation & Code Examples
    • 🐚 Bash One-Liners
    • 🚑 Node Health & Upkeep
    • ⚡ Bandwidth Top-Up ($1 Usage Reset)
    • 🛡️ Security & Authentication
    • 🎁 Referral Program: Earn Bonus Months
    • 🛑 Error Codes & Troubleshooting
  • Schemas
    • Server
    • InvoiceOrder
    • SubscriptionStatus
    • NodeLookup
    • ConnectivityResult
    • ApiError
    • ClaimResult
    • BandwidthResetResponse
    • PublicKeyStatusResponse
    • SubscriptionListItem
    • ReferralCode
    • ReferralHistory
    • BandwidthResetPaymentStatus
    • RenewalOrder
    • SyncResult
Tunnelsats Github
Tunnelsats Telegram
  1. 🔄 Lifecycle

Get Subscription & Bandwidth Status by WireGuard Public Key

POST
https://tunnelsats.com/api/public/v1/subscription/status
Polls WireGuard servers to return real-time expiry, bandwidth consumption and quota, bandwidth-reset allowance, peer status, hosting server domain and forwarded port. No authentication required. Rate limit: 30 requests/min per IP.
404 vs 503: 404 means every VPN server answered and none holds the key: the key is unknown (import or buy a subscription). 503 (ERR_SERVICE_UNAVAILABLE, with Retry-After) means the key was not found on the servers that answered but at least one server could not be checked: retry later and do not treat the key as unknown. When an active server cannot be checked, a copy of the key on a legacy server is not reported either (the active server may hold the current one), so that case is a 503 as well.

Request

Header Params

Body Params application/jsonRequired

Examples

Responses

🟢200
application/json
Subscription status and bandwidth data
Bodyapplication/json

🟠404
🔴503
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://tunnelsats.com/api/public/v1/subscription/status' \
--header 'Accept;' \
--header 'Content-Type: application/json' \
--data '{
    "wgPublicKey": "pWyZTQx8C4gzzgMVJHiN1ptI46wDtyJSMRa+wxtkXOM="
}'
Response Response Example
200 - Success
{
    "expiry": "2026-10-15T12:00:00Z",
    "bandwidth_used_gb": 45.67,
    "bandwidth_limit_gb": 100,
    "bandwidth_resets_this_month": 0,
    "max_resets_per_month": 2,
    "status": "enabled",
    "server_domain": "de2.tunnelsats.com",
    "vpn_port": 24556,
    "last_synced_at": "2026-09-01T12:00:00Z"
}
Modified at 2026-10-10 22:07:24
Previous
Claim WireGuard Configuration After Payment Settlement
Next
Sync Subscription (Real-Time Server Refresh)
Built with