Skip to main content

Documentation Index

Fetch the complete documentation index at: https://vpn-docs.wxapros.com/llms.txt

Use this file to discover all available pages before exploring further.

Base URL

https://wxaintel.wxapros.com/api/v1/vpn
The wxaintel gateway proxies /api/v1/vpn/* to the WXA VPN backend. All URLs in this reference are relative to the base.

Endpoint inventory

Lookup

MethodPathDescriptionMin tier
GET/ip/{ip}Single IP classificationFree
POST/ip/batchBatch up to 100 IPsPro
GET/shadow_vpn/lookup/{ip}Shadow VPN / RAI assets on an IPEnterprise

Aggregates

MethodPathDescriptionMin tier
GET/statsGlobal classification countsFree
GET/providersAll known providers + IP countsStarter
GET/stats/country/{code}Per-country VPN concentratorsPro
GET/stats/asn-abuseASN abuse leaderboardPro

Bulk exports

MethodPathDescriptionMin tier
GET/export/csvFull dataset, CSVStarter
GET/export/mmdbMaxMind-style databasePro
GET/export/parquetColumnar ParquetBusiness

Conventions

IP format

Always use canonical string form. Both IPv4 and IPv6 are supported:
  • IPv4: 1.1.1.1
  • IPv6: 2606:4700:4700::1111
Reserved and private ranges (RFC 1918, RFC 6598, loopback, multicast) return 404 not_found — we don’t classify them.

Response shape

The pinned fields (see CONTRACT.md) are stable. Field availability depends on tier — see tiers. When a tier-gated field is unavailable, it is omitted from the response, not returned as null. Callers should handle missing fields gracefully.

Caching

Aggregate endpoints (/stats, /providers, /stats/country/*, /stats/asn-abuse) are server-side cached for 60 s – 5 min. The Cache-Control header reflects this. Lookup endpoints are not cached server-side — every request hits the live database.

Time

All timestamps are ISO 8601 with Z suffix: 2026-04-28T17:23:00Z. They reflect UTC.