Skip to main content

OpenVPN API reference and data availability

Use the PublicVPNList API to read OpenVPN endpoint metadata without scraping the HTML catalog. The current compact snapshot contains 2611 records for this protocol.

Free API & downloads: 24-hour access

Get access here before using the API or downloading a dataset. Your key and download links expire after 24 hours. Return to this page and press the button to get new access; it does not renew automatically.

Checking access…

Protected by Google reCAPTCHA. Google’s Privacy Policy and Terms of Service apply.

Request permanent access

For permanent access, tell us your name, email and intended use. Requests are reviewed individually.

Already saved files are not revoked. A configuration may stop working earlier if its third-party server changes. Individual OpenVPN checks still use their existing single-use download token.

Available through the API: OpenVPN

Current server records available in the API and metadata exports. Counts refer to endpoint records; a host can have multiple configurations.

2,611Server records
45Countries
2.35 MbpsMedian measured speed
12.64 MbpsHighest measured speed

Speed measured for 2,603 of 2,611 records. Only checker-measured throughput is included; missing measurements are excluded, not treated as zero. Results depend on the checker location and are not guaranteed client speeds.

Countries follow the OpenVPN API location fields.

On small screens, scroll the table sideways to see all speed columns.

Countries and measured speeds
CountryRecordsSpeed measuredMedian speedHighest speed
Japan (JP)1,2721,266 / 1,2722.24 Mbps4.19 Mbps
South Korea (KR)1,1091,108 / 1,1092.54 Mbps4.92 Mbps
USA (US)105105 / 1051.10 Mbps4.74 Mbps
Russia (RU)3232 / 324.66 Mbps9.46 Mbps
Australia (AU)88 / 80.78 Mbps2.21 Mbps
France (FR)88 / 86.50 Mbps7.00 Mbps
UK (GB)88 / 81.28 Mbps6.61 Mbps
Canada (CA)77 / 73.51 Mbps3.88 Mbps
Ukraine (UA)66 / 64.64 Mbps7.40 Mbps
Vietnam (VN)66 / 62.43 Mbps3.26 Mbps
Netherlands (NL)55 / 55.66 Mbps7.44 Mbps
Spain (ES)44 / 45.86 Mbps6.61 Mbps
Belarus (BY)22 / 26.25 Mbps11.01 Mbps
Bulgaria (BG)22 / 24.35 Mbps6.81 Mbps
Finland (FI)22 / 20.56 Mbps0.76 Mbps
Hong Kong (HK)22 / 20.92 Mbps1.20 Mbps
Hungary (HU)22 / 26.72 Mbps7.76 Mbps
Lithuania (LT)22 / 27.02 Mbps8.07 Mbps
Mexico (MX)22 / 23.58 Mbps3.63 Mbps
Peru (PE)22 / 20.54 Mbps0.74 Mbps
Azerbaijan (AZ)11 / 15.54 Mbps5.54 Mbps
Bangladesh (BD)11 / 10.61 Mbps0.61 Mbps
Brazil (BR)11 / 10.57 Mbps0.57 Mbps
Chile (CL)11 / 12.60 Mbps2.60 Mbps
Costa Rica (CR)11 / 13.12 Mbps3.12 Mbps
Czech Republic (CZ)11 / 17.03 Mbps7.03 Mbps
Ecuador (EC)11 / 13.74 Mbps3.74 Mbps
Georgia (GE)11 / 12.64 Mbps2.64 Mbps
Germany (DE)11 / 11.85 Mbps1.85 Mbps
Grenada (GD)11 / 10.06 Mbps0.06 Mbps
India (IN)11 / 12.87 Mbps2.87 Mbps
Indonesia (ID)11 / 13.50 Mbps3.50 Mbps
Italy (IT)11 / 17.83 Mbps7.83 Mbps
Latvia (LV)11 / 110.16 Mbps10.16 Mbps
Malaysia (MY)11 / 11.60 Mbps1.60 Mbps
New Zealand (NZ)11 / 12.58 Mbps2.58 Mbps
Northern Mariana Islands (MP)11 / 11.65 Mbps1.65 Mbps
Paraguay (PY)11 / 12.47 Mbps2.47 Mbps
Philippines (PH)11 / 11.96 Mbps1.96 Mbps
Portugal (PT)11 / 15.80 Mbps5.80 Mbps
Romania (RO)11 / 112.64 Mbps12.64 Mbps
Singapore (SG)11 / 13.64 Mbps3.64 Mbps
South Africa (ZA)10 / 1Not measuredNot measured
Thailand (TH)11 / 13.40 Mbps3.40 Mbps
Yemen (YE)11 / 10.95 Mbps0.95 Mbps

Snapshot updated: .

View this protocol in the API · Download metadata exports

Request example

curl -H 'Authorization: Bearer YOUR_24_HOUR_KEY' -H 'Accept: application/json' \
  'https://publicvpnlist.com/api/v1/servers?protocol=openvpn&status=online&sort=last_checked&order=desc&per_page=50'

The response is paginated. Keep the returned id for details at /api/v1/servers/{id}, cache the ETag, and treat last_checked_at as technical evidence rather than a privacy guarantee.

What each OpenVPN record means

OpenVPN uses TCP or UDP VPN profiles. A usable public configuration requires portable .ovpn profiles and mature clients. PublicVPNList does not publish rows inferred from an open port or incomplete relay metadata.

FieldMeaning
hostname, ip, portPublic connection endpoint metadata.
transport, transport_securityTransport settings required by the client.
exit_ipPublic IP observed only after the checker routed traffic through the tunnel.
handshake_ms, https_first_byte_msChecker-region measurements; they are not a speed guarantee for every user.
config_download_urlA downloadable configuration for a verified row. A source can remove it later (HTTP 410). OpenVPN uses its existing protected download flow: use server_page_url when this field is null.
speed_mbps, checker_measured_throughput_mbpsMeasured tunnel throughput in Mbps; null when not measured.
latency_ms, checker_measured_tunnel_rtt_msMeasured tunnel round-trip time. For URI protocols this is an HTTPS round trip, separate from handshake and first-byte time.
uptime_percent_7d, sessions, technical_quality_scoreMay be null when this protocol has no matching measurement or scoring model. An absent value is not zero.

Endpoints and filters

Use protocol=openvpn consistently. Omitting it selects OpenVPN for backward compatibility.

Filter by country=US, transport=tcp, port=443, status=online, fresh_within=3600, min_speed=1, max_latency=500 or min_uptime=90. Metric filters exclude rows where that measurement is unknown.

Use page=1&per_page=50 (maximum 200), fields=id,protocol,country_code,server_page_url, and sort=speed|latency|uptime|last_checked|score|first_seen with order=asc|desc. Follow links.next until null. Compare the returned version if the dataset updates during pagination.

Download metadata in bulk

These complete metadata exports include all records in this protocol snapshot, without pagination. They contain links to configurations, not embedded passwords or client keys.

See all export formats.

Errors and empty catalogs

A successful empty response is HTTP 200 with data: [], meta.total: 0 and links.next: null. It means no checked records are currently published for this protocol, not a broken API. TUIC, WireGuard and IKEv2 require usable configurations and successful full checks before rows can appear.

API errors: 401 missing or expired access key, 400 invalid or repeated parameter, 404 missing record, 405 unsupported method, 429 rate limit, 503 unavailable protocol snapshot. The JSON API permits 60 requests per minute; respect Retry-After. GET/HEAD support conditional caching (304), and OPTIONS provides CORS preflight; data requests require a Bearer key or the 24-hour browser access cookie. Unknown values remain null. Common examples and complete field reference.

Freshness, safety and caching

OpenVPN follows the existing catalog eligibility and measurement policy. Unknown third-party endpoints can still log or alter traffic; use end-to-end encryption and avoid sensitive accounts.

Snapshot version: 20261024T010138Z-594f12b59a52. API JSON routes are excluded from search indexing; this documentation page is the canonical explanation; search indexing depends on the publication gate above.