Format choice
MMDB is what most production fraud pipelines use — load once into memory,
look up at the speed of a hash table, refresh hourly.
Scheduling
Refresh once an hour at most. The dataset rolls over with new observations roughly every 60 minutes. Pulling more often wastes bandwidth. The MMDB ships as two files.artifact=ranges (the default) is
wxa_vpn.mmdb — the VPN / proxy / hosting / CDN / Tor / relay CIDR-ranges
layer. artifact=points is wxa_vpn-points.mmdb — the residential-proxy
per-IP (/32) layer. Download both for full coverage:
tmp → final) so readers never see a partial file.
MMDB lookup (Python)
For a complete verdict, check the points DB first (an exact /32 residential-proxy detection wins), then fall back to the ranges DB:None also means an unknown IP. wxa_vpn.mmdb alone
does NOT include the ~34M residential-proxy points — pull
wxa_vpn-points.mmdb for that layer.
Parquet to Snowflake
Concurrency
Bulk downloads count against a separatebulk concurrent limit (1 for
Starter, 2 for Pro, 5 for Business, negotiated for Enterprise). Don’t
parallelize a single export — start one, wait for completion, start
the next.
File size
Plan storage and bandwidth accordingly. Compressed transfers are negotiated
via
Accept-Encoding: gzip.