bgpreport

API and downloads

Static files, rebuilt once a day (2026-11-12 now). No key, no rate limit beyond fair use; field names stay within a schema number.

API

/api/index.json
The day, the whole table's counts, and links to the rest.
/api/as/<asn>.json
One network: route counts by RPKI and IRR state, AS-SETs as expanded, the route-server filter view, fix list counts, its exchanges, and its CSV files. Example: /api/as/13335.json.
/api/ix/<id>.json
One exchange (IX Report's ids): totals, route servers, every member with its counts. Example: /api/ix/249.json.
/data/asns.json
Every AS number with a network page.
/data/prefix/<k>.json
The prefix lookup the search uses: every route as [prefix, origin, RPKI state, full-table peers], split by the first IPv4 octet (/data/prefix/1.json) or IPv6's first 16 bits (/data/prefix/v6-2606.json).

Downloads

/downloads/routes.csv.gz
Every route: prefix, origin, RPKI state, IRR state and databases, full-table peers seeing it, peers, collectors, bogon.
/downloads/networks.csv.gz
One row per network: route counts, RPKI and IRR, route objects not announced, AS-SET status, route-server filter.
/downloads/exchanges.csv
One row per exchange.
/as/<asn>/routes.csv, /as/<asn>/fix.csv, /ix/<id>/members.csv
The tables on each page.

Sources and credit

Data: RIPE RIS and RouteViews (routes), RPKI (our own rpki-client, from the five RIRs' trust anchors), the IRR databases, IANA, PeeringDB (network records, AS-SETs, exchanges and their peering LANs; each links to its PeeringDB record) and IX Report (exchange members). When you use these files, please name BGP Report and the sources.

States: RPKI valid, invalid_origin, invalid_length, not_found, unavailable; IRR rir, other_irr, different_origin, none, unavailable. What they mean is on the methodology page.