Edge networks, so delivery is not mistaken for fraud.
Content delivery and edge ranges. Traffic arriving through an edge is infrastructure doing its job — it should not score like an anonymiser.
Schema at a glance.
See documentation →The database's schema and metadata are documented carefully. Multiple formats are available, including CSVGZ and MMDB.
Sample rows for this build are not published yet. Ask us for a slice and we will send one from the current build.
Downloading it from code.
Database API reference →One call gets you the current CDN IP build. Every official client wraps it three ways — straight to disk, a signed link you hand to your own runner, or bytes in memory — and each verifies the published checksum before it hands the build back.
download(path)url(expires)bytes()build()formatsince(build)from vpndetection import Clientclient = Client(os.environ["VPNDETECTION_API_KEY"])db = client.database("cdn_ip_v1", format="csvgz")db.download("cdn_ip_v1.csv.gz") # to diskurl = db.url(expires=3600) # signed linkblob = db.bytes() # in memorydb.build().published # last build
Getting your hands on it.
Where CDN IP earns its place in a risk stack — and what each of these decisions needs from the data rather than from a score.
Stop scoring your own edge
If your traffic is fronted by a CDN, those addresses will appear constantly. Flagging them keeps them out of your risk signals.
Tell delivery from disguise
An edge network and a proxy network look similar from a single address. The distinction is the point of this dataset.
Attributed to the network
Provider names the edge operator so you can allow specific ones.
An official client for every major language.
All SDKs on GitHub →Twelve official clients for the languages you ship in, each wrapping the database endpoints as well as the lookup — list what you are licensed for, poll a build, follow the download redirect. Install commands are in the docs.
No loose ends.
How often does this dataset rebuild?
Every dataset publishes its own cadence and its last build date. The proxy datasets additionally carry a rolling 90-day observation window, so first seen and last seen are relative to that window.
Start without signing up.
Paste it into a terminal — no account needed. 1k daily allowance per user, answering ip and is_vpn.
{"ip": "45.83.91.1","is_vpn": true}