Sulat.com / Writing on AISaturday, November 14, 2026
Agent Engineering/14 November 2026

Windscribe’s VPN API lets AI agents buy a WireGuard tunnel with USDC, no account needed

Windscribe says its VPN API sells WireGuard access to a public key with no account, paid in USDC on Base through x402, at US$9 a month or US$69 for 12 months. Payments are final.

Glossy 3D Windscribe logo beside a small silver robot holding a glowing key and a gold coin at the mouth of a blue light tunnel.

At a glance

  • Windscribe says its VPN API sells WireGuard VPN access straight to a WireGuard public key, so AI agents, scripts and devices can buy and manage a connection without a Windscribe account.
  • An unsigned POST to /vpn/wireguard returns an HTTP 402 quote, the agent pays in USDC on Base through x402 v2, then sends the same request again to receive its WireGuard config values.
  • Windscribe lists one to seven months at US$9 a month and 12 months at US$69, with at most 12 months prepaid, no automatic renewal and no refunds.
  • Each key has eight ROBERT DNS filter lists with malware blocking on by default, and the WireGuard private key signs every management call, so whoever holds it can rotate or revoke the access.
  • The settlement is public on Base and names the paying wallet, and Windscribe stores the transaction hash, so the purchase can be linked to that wallet.

Windscribe now sells VPN access through an API that charges a WireGuard public key instead of an account, so an AI agent, script or device can buy and manage a connection on its own. The company’s VPN API page lists one to seven months at US$9 a month, or 12 months for US$69, paid in USDC on the Base network through the x402 payment standard.

Windscribe pitches it at agents that act on the open web for you. It names four jobs: browsing privately behind a Windscribe IP address, checking local prices and search results from another country, putting robots, edge devices and hotel Wi-Fi inside an encrypted tunnel, and giving each customer or job its own key and term. Below is how it works end to end, one step per diagram.

No account, just a key

The API never asks for an email, password, card or session. The agent generates a WireGuard key pair on its own machine, and the public key is the whole identity. Windscribe says the private key never leaves that machine and signs every request that manages the connection, so it’s as sensitive as the connection itself.

Infographic: Windscribe's API needs no email, password, card or session, only a WireGuard public key. The private key stays local.
The API never asks who you are: a WireGuard public key is the whole identity.

Buying doesn’t need a signature, so a plain x402 client can pay for a key. Everything else does. Windscribe’s llms.txt summary says every other call carries an HTTP Message Signature made with the WireGuard private key, a scheme it calls wg-xeddsa-v1. Because anyone can pay for any key, the purchase response includes the preshared key, the shared secret that goes into the tunnel config, only when the request is signed by that key. A key already used by a Windscribe account or a partner is refused with a wireguard_key_exists error before any money moves.

Step 1: ask for a term

The agent sends POST /vpn/wireguard with its public key and a number of months. With no payment attached, the API answers HTTP 402 Payment Required and puts the x402 payment details in a PAYMENT-REQUIRED header and in the body. At the time of writing, a one-month quote asks for 9.00 USDC on Base mainnet and gives the agent 60 seconds to pay.

Infographic: agent POSTs key and months to Windscribe, which replies 402 Payment Required with a quote of 9.00 USDC on Base.
The first request gets a 402 reply with the exact price, and nothing is charged yet.

A GET /vpn call lists the prices, the payment network and token, and whether purchasing is currently available. An unsigned quote only returns the price. A quote signed with the key also checks that the key can buy that term now, so errors such as wireguard_key_exists arrive before the payer signs anything.

Step 2: pay and retry

The agent builds an x402 v2 payment for the single option in the quote: the “exact” scheme, using an EIP-3009 transferWithAuthorization, a signed permission to move a set amount of USDC, signed by the paying wallet. It sends the identical request again with the base64 payload in a PAYMENT-SIGNATURE header, inside the 60-second window. Windscribe says any x402 v2 client can do this without custom code.

Infographic: sign a USDC payment, send the same request again with it attached, get the config values back.
Pay, send the same request again, and the config values come back.

Windscribe says it checks the authorisation with Coinbase’s x402 facilitator, confirms the key can still be bought, then settles on Base. Only a successful settlement creates, extends or reactivates access. The reply is HTTP 201 with the entitlement, its expiry and the values for the config’s [Interface] section, and the settlement receipt rides in a PAYMENT-RESPONSE header. Retrying the same PAYMENT-SIGNATURE never pays twice: a settled payment returns the same entitlement.

Step 3: pick an exit and connect

Next the agent signs a GET to /vpn/wireguard/locations. It needs an active entitlement, and it lists Windscribe’s premium WireGuard locations, not static-IP servers. Each location holds groups, one per city, with a WireGuard public key shared by the group’s nodes. Each node carries a health number from 0 to 100, its current load as a percentage of capacity, and lower is better.

The agent then fills in a standard WireGuard config. This is Windscribe’s template, with the angle-bracket values coming from the purchase and locations responses:

[Interface]
PrivateKey = <your WireGuard private key>
Address = <wireguard.address>, <wireguard.address_v6>
DNS = <wireguard.dns>

[Peer]
PublicKey = <locations[].groups[].wg_pubkey>
PresharedKey = <psk>
AllowedIPs = <wireguard.allowed_ips>
Endpoint = <locations[].groups[].nodes[].ip>:<wireguard.endpoint_port>
PersistentKeepalive = 25

Bring the tunnel up with wg-quick up ./windscribe.conf or any other WireGuard client. Windscribe publishes a reference signer, sign_request.py, that needs Python 3.10 or newer and the XEdDSA package. It prints the signing headers as JSON and doesn’t send the private key anywhere.

Infographic: fetch the locations list, pick a city and low-load server, then run wg-quick up with the config.
Fetch the locations, pick a lightly loaded server, then bring the tunnel up with any WireGuard client.

Filter DNS per key

Each key has eight ROBERT filter lists, ROBERT being the name Windscribe uses for its DNS blocking: Malware (including phishing and botnet servers), Ads + Trackers, Social Networks, Porn, Gambling, Clickbait, Crypto and Other VPNs. New keys start with only Malware on. PUT /vpn/wireguard/settings replaces the list, for example {"robert": ["malware","ads"]}, and an empty list switches filtering off.

Infographic: eight ROBERT DNS filter lists per key, malware on by default, changed with PUT /vpn/wireguard/settings; no custom rules.
Each key has eight DNS filter lists, with malware on by default and no custom domain rules.

Windscribe’s pitch is that an agent that follows a bad link or an injected instruction still can’t resolve known malware, phishing or botnet domains. Two limits apply. Filtering only covers DNS sent to Windscribe’s resolver, the address in the wireguard.dns field, and custom domain rules aren’t supported.

What it costs

Windscribe prices time, not data. One to seven months cost US$9 a month, 12 months cost US$69, and terms of 8 to 11 months aren’t offered. The page puts the 12-month saving at US$39. At most 12 months can be prepaid, and buying again with the same key adds time from whichever is later, now or the current expiry.

Infographic: US$9 a month for 1 to 7 months, US$69 for 12 months, 8 to 11 not offered, 12 months prepaid at most, no refunds.
US$9 a month for one to seven months, or US$69 for 12, paid in USDC with no refunds.
TermPrice in USDC
1 monthUS$9
2 monthsUS$18
3 monthsUS$27
4 monthsUS$36
5 monthsUS$45
6 monthsUS$54
7 monthsUS$63
12 monthsUS$69
Terms and prices as Windscribe’s GET /vpn endpoint lists them.

Months are calendar months, and access ends exactly at the expiry time with no grace period. It’s a one-time settlement with no subscription and no automatic renewal. Windscribe says payments are final: there are no automated refunds, and revoking a key forfeits the remaining time.

Renew, rotate or revoke

The same private key runs the rest of the lifecycle. A signed PUT to /vpn/wireguard buys more time for the signing key. A signed POST to /vpn/wireguard/rotate moves the paid time to a new key with a new preshared key, and the old key stops working and its tunnels end. A signed DELETE revokes access immediately, and buying time again reactivates the key with a fresh preshared key.

Infographic: signed calls can renew time up to 12 months ahead, rotate to a new key, or revoke access now. Losing the key loses control.
Whoever holds the private key can renew, rotate or revoke the access.

The signatures are strict. Each lasts at most 300 seconds, carries a single-use random nonce and allows 60 seconds of clock skew, so an agent with a wrong clock gets a signature_time_invalid error. Windscribe warns that whoever holds the private key, or a config containing it, can change settings, revoke the access or move the paid time to another key, so a leaked config means rotating at once.

What Windscribe stores

Windscribe says it stores the public key, the generated preshared key, the expiry, the ROBERT selection and, for each payment, its product details, state and settlement transaction hash. It says it doesn’t store the paying wallet address, payment signatures or request signatures. The settlement itself is public on Base and names the paying wallet, so the stored hash links the key to that wallet. Windscribe’s llms.txt tells buyers to pay from a wallet they’re comfortable linking to the purchase.

What the docs don’t list, and where to start

The page, llms.txt and the OpenAPI spec list no data cap, rate limit, device limit or server count. The locations list is only returned to a key that has paid.

Windscribe’s page offers this prompt to hand to an agent:

Read https://windscribe.com/vpn-api/llms.txt.
Create a WireGuard key pair on this machine, buy one month of Windscribe VPN access for it with x402, turn on malware and ad blocking, then write a wg-quick config for the closest location. Keep the private key on this machine.

The pages to keep are the VPN API page, the llms.txt summary, the OpenAPI 3.1 spec and the reference signer. The base URL is https://api.windscribe.com/vpn.


Discover more from Sulat AI & Tech News

Subscribe to get the latest posts sent to your email.