We make BGP data analysis
bgproutes.io collects BGP routes from operational routers, a.k.a. Vantage Points (VPs), and delivers them through a fast, unified, and intuitive interface.
With bgproutes.io
Today's landscape
Our API and its Python client pybgproutesapi
are simple and flexible. Whether you're querying a single vantage point or thousands across multiple platforms, you'll get only the data that matters. Every function is optimized for speed, delivering results in seconds or less.
Example: Build a giant looking glass. The code snippet on the right shows how to retrieve RIB entries for two prefixes at 01:30:11 on June 5, 2025, from all available VPs—over 5000 vantage points across all platforms!
First, use the vantage_points
function to select the relevant VPs (here, we use all of them). Second, use the rib
function to query those VPs at the desired timestamp, filtering with exact prefix matches. This effectively builds a giant Internet-wide looking glass, allowing you to identify which parts of the Internet know how to reach your prefixes.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
from pybgproutesapi import vantage_points, rib # Retrieve the vantage points operated by RIS or bgproutes.io vps = vantage_points( source=["bgproutes.io", "ris", "routeviews", "pch", "cgtf"], rib_size_v4=('>', '900000')) # Get the RIB entries for two prefixes. ribs = rib(vps, date="2025-06-05T01:30:11", prefix_exact_match=['65.169.6.0/23', '91.106.223.0/24']) # Display each VP along with its corresponding RIB entries, if available. for vp_ip, entries in ribs.items(): print(f"Vantage Point: {vp_ip}") for prefix, (aspath, community) in entries.items(): print(f" Prefix: {prefix}, AS path: {aspath}, community: {community}")
Need real-time access to BGP data? No problem. Our WebSocket-based live stream and its Python client pybgprouteslive
lets you receive real-time BGP updates from thousands of VPs across bgproutes.io, RIPE RIS and RouteViews.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
import os from pybgprouteslive import BGProutesWebsocketClient, MESSAGE_TYPE_ANNOUNCE ribs = dict() # This RIB can be initialized using our historical data API. # Initialize the connection with our websocket server. client = BGProutesWebsocketClient(os.environ["BGP_API_KEY"]) client.subscribe_to_prefixes("192.23.62.0/24,2a06:3040:10::/48") # Iterate over the BGP updates in real time. for msg in client.get_messages(): if msg.record_type == MESSAGE_TYPE_ANNOUNCE: vp = (msg.vp_asn, msg.vp_ip) origin_as = msg.aspath.split()[-1] for prefix in msg.prefixes: if ribs.get(vp, {}).get(prefix) != origin_as: print(f"Origin change detected! {prefix}: {ribs.get(vp, {}).get(prefix)} -> {origin_as}") ribs.setdefault(vp, {})[prefix] = origin_as
Example: Build a real-time misorigin hijack detector. The code snippet on the left shows how to detect misorigin hijacks in real time, using all available VPs.
Start by creating a BGProutesWebsocketClient
instance to establish a connection with our WebSocket server. Configure the session to subscribe to updates for prefixes 192.23.62.0/24 and 2a06:3040:10::/48. Then, use the get_messages
method to stream BGP updates in real time and monitor for changes in the AS origin.
By aggregating data from all public archives and streams of BGP data, we can significantly reduce visibility gaps and let you detect many more critical events compared to relying on just one or two providers.
Example: Build the most accurate AS-level topology. With the topology
endpoint of our API, you can quickly build a full AS-level topology. In just a few minutes, our platform reveals 1.16 million AS links. By comparison, using only RIPE RIS vantage points would yield just 620,000 links, highlighting the power of our higher coverage.
+85%
of AS-links observed
Mapping the Internet’s AS-level topology is essential for understanding its infrastructure. It underpins many BGP monitoring tools—for example, to rank ASes based on customer cone size—and supports network operators in identifying optimal locations for new peering connections.
Start peering with bgproutes.io in less than ten minutes.
As more vantage points help to reduce visibility gaps and improves BGP monitoring and security, we invite everyone to peer with bgproutes.io and contribute BGP data. Our open peering policy ensures that anyone can join!
We make BGP data analysis
bgproutes.io collects BGP routes from operational routers, a.k.a. Vantage Points (VPs), and delivers them through a fast, unified, and intuitive interface.
With bgproutes.io
Our API and its Python client pybgproutesapi
are simple and flexible. Whether you're querying a single vantage point or thousands across multiple platforms, you'll get only the data that matters. Every function is optimized for speed, delivering results in seconds or less.
By aggregating data from all public archives and streams of BGP data, we can significantly reduce visibility gaps and let you detect many more critical events compared to relying on just one or two providers.
Example: Build the most accurate AS-level topology. With the topology
endpoint of our API, you can quickly build a full AS-level topology. In just a few minutes, our platform reveals 1.16 million AS links. By comparison, using only RIPE RIS vantage points would yield just 620,000 links, highlighting the power of our higher coverage.
+85%
of AS-links observed
Mapping the Internet’s AS-level topology is essential for understanding its infrastructure. It underpins many BGP monitoring tools—for example, to rank ASes based on customer cone size—and supports network operators in identifying optimal locations for new peering connections.
Start peering with bgproutes.io in less than ten minutes.
As more vantage points help to reduce visibility gaps and improves BGP monitoring and security, we invite everyone to peer with bgproutes.io and contribute BGP data. Our open peering policy ensures that anyone can join!
© 2025 bgproutes.io. All rights reserved.