Get BGP hijack events

GET /radar/bgp/hijacks/events

Retrieves the BGP hijack events.

Responses

200 Successful response.

Data is at body["result"]

{
  "asn_info": [
    {
      "asn": "*integer*",
      "country_code": "*string*",
      "org_name": "*string*"
    }
  ],
  "events": [
    {
      "confidence_score": "*integer*",
      "duration": "*integer*",
      "event_type": "*integer*",
      "hijack_msgs_count": "*integer*",
      "hijacker_asn": "*integer*",
      "hijacker_country": "*string*",
      "id": "*integer*",
      "is_stale": "*boolean*",
      "max_hijack_ts": "*string*",
      "max_msg_ts": "*string*",
      "min_hijack_ts": "*string*",
      "on_going_count": "*integer*",
      "peer_asns": [
        "*integer*"
      ],
      "peer_ip_count": "*integer*",
      "prefixes": [
        "*string*"
      ],
      "tags": [
        {
          "name": "*string*",
          "score": "*integer*"
        }
      ],
      "victim_asns": [
        "*integer*"
      ],
      "victim_countries": [
        "*string*"
      ]
    }
  ],
  "total_monitors": "*integer*"
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get announced IP address space time series

GET /radar/bgp/ips/timeseries

Retrieves time series data for the announced IP space count, represented as the number of IPv4 /24s and IPv6 /48s, for a given ASN.

Responses

200 Successful response.

Data is at body["result"]

{
  "meta": {
    "aggInterval": "*string*",
    "confidenceInfo": {
      "annotations": [
        {
          "dataSource": "*string*",
          "description": "*string*",
          "endDate": "*string*",
          "eventType": "*string*",
          "isInstantaneous": "*boolean*",
          "linkedUrl": "*string*",
          "startDate": "*string*"
        }
      ],
      "level": "*integer*"
    },
    "dateRange": [
      {
        "endTime": "*string*",
        "startTime": "*string*"
      }
    ],
    "delay": {
      "asn_data": {
        "delaySecs": "*number*",
        "delayStr": "*string*",
        "healthy": "*boolean*",
        "latest": {
          "entries_count": "*number*",
          "path": "*string*",
          "timestamp": "*number*"
        }
      },
      "country_data": {
        "delaySecs": "*number*",
        "delayStr": "*string*",
        "healthy": "*boolean*",
        "latest": {
          "count": "*number*",
          "timestamp": "*number*"
        }
      },
      "healthy": "*boolean*",
      "nowTs": "*number*"
    },
    "lastUpdated": "*string*",
    "normalization": "*string*",
    "units": [
      {
        "name": "*string*",
        "value": "*string*"
      }
    ]
  },
  "serie_0": {
    "ipv4": [
      "*string*"
    ],
    "ipv6": [
      "*string*"
    ],
    "timestamps": [
      "*string*"
    ]
  }
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get BGP route leak events

GET /radar/bgp/leaks/events

Retrieves the BGP route leak events.

Responses

200 Successful response.

Data is at body["result"]

{
  "asn_info": [
    {
      "asn": "*integer*",
      "country_code": "*string*",
      "org_name": "*string*"
    }
  ],
  "events": [
    {
      "countries": [
        "*string*"
      ],
      "detected_ts": "*string*",
      "finished": "*boolean*",
      "id": "*integer*",
      "leak_asn": "*integer*",
      "leak_count": "*integer*",
      "leak_seg": [
        "*integer*"
      ],
      "leak_type": "*integer*",
      "max_ts": "*string*",
      "min_ts": "*string*",
      "origin_count": "*integer*",
      "peer_count": "*integer*",
      "prefix_count": "*integer*"
    }
  ]
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

List ASes from global routing tables

GET /radar/bgp/routes/ases

Retrieves all ASes in the current global routing tables with routing statistics.

Responses

200 Successful response.

Data is at body["result"]

{
  "asns": [
    {
      "asn": "*integer*",
      "coneSize": "*integer*",
      "country": "*string*",
      "ipv4Count": "*integer*",
      "ipv6Count": "*string*",
      "name": "*string*",
      "pfxsCount": "*integer*",
      "rpkiInvalid": "*integer*",
      "rpkiUnknown": "*integer*",
      "rpkiValid": "*integer*"
    }
  ],
  "meta": {
    "dataTime": "*string*",
    "queryTime": "*string*",
    "totalPeers": "*integer*"
  }
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get Multi-Origin AS (MOAS) prefixes

GET /radar/bgp/routes/moas

Retrieves all Multi-Origin AS (MOAS) prefixes in the global routing tables.

Responses

200 Successful response.

Data is at body["result"]

{
  "meta": {
    "data_time": "*string*",
    "query_time": "*string*",
    "total_peers": "*integer*"
  },
  "moas": [
    {
      "origins": [
        {
          "origin": "*integer*",
          "peer_count": "*integer*",
          "rpki_validation": "*string*"
        }
      ],
      "prefix": "*string*"
    }
  ]
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get prefix-to-ASN mapping

GET /radar/bgp/routes/pfx2as

Retrieves the prefix-to-ASN mapping from global routing tables.

Responses

200 Successful response.

Data is at body["result"]

{
  "meta": {
    "data_time": "*string*",
    "query_time": "*string*",
    "total_peers": "*integer*"
  },
  "prefix_origins": [
    {
      "origin": "*integer*",
      "peer_count": "*integer*",
      "prefix": "*string*",
      "rpki_validation": "*string*"
    }
  ]
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get real-time BGP routes for a prefix

GET /radar/bgp/routes/realtime

Retrieves real-time BGP routes for a prefix, using public real-time data collectors (RouteViews and RIPE RIS).

Responses

200 Successful response.

Data is at body["result"]

{
  "meta": {
    "asn_info": [
      {
        "as_name": "*string*",
        "asn": "*integer*",
        "country_code": "*string*",
        "org_id": "*string*",
        "org_name": "*string*"
      }
    ],
    "collectors": [
      {
        "collector": "*string*",
        "latest_realtime_ts": "*string*",
        "latest_rib_ts": "*string*",
        "latest_updates_ts": "*string*",
        "peers_count": "*integer*",
        "peers_v4_count": "*integer*",
        "peers_v6_count": "*integer*"
      }
    ],
    "data_time": "*string*",
    "prefix_origins": [
      {
        "origin": "*integer*",
        "prefix": "*string*",
        "rpki_validation": "*string*",
        "total_peers": "*integer*",
        "total_visible": "*integer*",
        "visibility": "*number*"
      }
    ],
    "query_time": "*string*"
  },
  "routes": [
    {
      "as_path": [
        "*integer*"
      ],
      "collector": "*string*",
      "communities": [
        "*string*"
      ],
      "prefix": "*string*",
      "timestamp": "*string*"
    }
  ]
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get BGP routing table stats

GET /radar/bgp/routes/stats

Retrieves the BGP routing table stats.

Responses

200 Successful response.

Data is at body["result"]

{
  "meta": {
    "data_time": "*string*",
    "query_time": "*string*",
    "total_peers": "*integer*"
  },
  "stats": {
    "distinct_origins": "*integer*",
    "distinct_origins_ipv4": "*integer*",
    "distinct_origins_ipv6": "*integer*",
    "distinct_prefixes": "*integer*",
    "distinct_prefixes_ipv4": "*integer*",
    "distinct_prefixes_ipv6": "*integer*",
    "routes_invalid": "*integer*",
    "routes_invalid_ipv4": "*integer*",
    "routes_invalid_ipv6": "*integer*",
    "routes_total": "*integer*",
    "routes_total_ipv4": "*integer*",
    "routes_total_ipv6": "*integer*",
    "routes_unknown": "*integer*",
    "routes_unknown_ipv4": "*integer*",
    "routes_unknown_ipv6": "*integer*",
    "routes_valid": "*integer*",
    "routes_valid_ipv4": "*integer*",
    "routes_valid_ipv6": "*integer*"
  }
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get ASPA changes over time

GET /radar/bgp/rpki/aspa/changes

Retrieves ASPA (Autonomous System Provider Authorization) changes over time. Returns daily aggregated changes including additions, removals, and modifications of ASPA objects.

Responses

200 Successful response.

Data is at body["result"]

{
  "asnInfo": {
    "13335": {
      "asn": "*integer*",
      "country": "*string*",
      "name": "*string*"
    }
  },
  "changes": [
    {
      "customersAdded": "*integer*",
      "customersRemoved": "*integer*",
      "date": "*string*",
      "entries": [
        {
          "customerAsn": "*integer*",
          "providers": [
            null
          ],
          "type": "*string*"
        }
      ],
      "providersAdded": "*integer*",
      "providersRemoved": "*integer*",
      "totalCount": "*integer*"
    }
  ],
  "meta": {
    "dataTime": "*string*",
    "queryTime": "*string*"
  }
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get ASPA objects snapshot

GET /radar/bgp/rpki/aspa/snapshot

Retrieves current or historical ASPA (Autonomous System Provider Authorization) objects. ASPA objects define which ASNs are authorized upstream providers for a customer ASN.

Responses

200 Successful response.

Data is at body["result"]

{
  "asnInfo": {
    "13335": {
      "asn": "*integer*",
      "country": "*string*",
      "name": "*string*"
    }
  },
  "aspaObjects": [
    {
      "customerAsn": "*integer*",
      "providers": [
        "*integer*"
      ]
    }
  ],
  "meta": {
    "dataTime": "*string*",
    "queryTime": "*string*",
    "totalCount": "*integer*"
  }
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get ASPA count time series

GET /radar/bgp/rpki/aspa/timeseries

Retrieves ASPA (Autonomous System Provider Authorization) object count over time. Supports filtering by RIR or location (country code) to generate multiple named series. If no RIR or location filter is specified, returns total count.

Responses

200 Successful response.

Data is at body["result"]

{
  "meta": {
    "dataTime": "*string*",
    "queryTime": "*string*"
  },
  "serie_0": {
    "timestamps": [
      "*string*"
    ],
    "values": [
      "*string*"
    ]
  }
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get BGP time series

GET /radar/bgp/timeseries

Retrieves BGP updates over time. When requesting updates for an autonomous system, only BGP updates of type announcement are returned.

Responses

200 Successful response.

Data is at body["result"]

{
  "meta": {
    "aggInterval": "*string*",
    "confidenceInfo": {
      "annotations": [
        {
          "dataSource": "*string*",
          "description": "*string*",
          "endDate": "*string*",
          "eventType": "*string*",
          "isInstantaneous": "*boolean*",
          "linkedUrl": "*string*",
          "startDate": "*string*"
        }
      ],
      "level": "*integer*"
    },
    "dateRange": [
      {
        "endTime": "*string*",
        "startTime": "*string*"
      }
    ],
    "lastUpdated": "*string*"
  },
  "serie_0": {
    "timestamps": [
      "*string*"
    ],
    "values": [
      "*string*"
    ]
  }
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get top ASes by BGP updates

GET /radar/bgp/top/ases

Retrieves the top autonomous systems by BGP updates (announcements only).

Responses

200 Successful response.

Data is at body["result"]

{
  "meta": {
    "dateRange": [
      {
        "endTime": "*string*",
        "startTime": "*string*"
      }
    ]
  },
  "top_0": [
    {
      "ASName": "*string*",
      "asn": "*integer*",
      "value": "*string*"
    }
  ]
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}

Get top ASes by prefix count

GET /radar/bgp/top/ases/prefixes

Retrieves the full list of autonomous systems on the global routing table ordered by announced prefixes count. The data comes from public BGP MRT data archives and updates every 2 hours.

Responses

200 Successful response.

Data is at body["result"]

{
  "asns": [
    {
      "asn": "*integer*",
      "country": "*string*",
      "name": "*string*",
      "pfxs_count": "*integer*"
    }
  ],
  "meta": {
    "data_time": "*string*",
    "query_time": "*string*",
    "total_peers": "*integer*"
  }
}

404 Not found.

{
  "error": "*string*"
}

Get top prefixes by BGP updates

GET /radar/bgp/top/prefixes

Retrieves the top network prefixes by BGP updates.

Responses

200 Successful response.

Data is at body["result"]

{
  "meta": {
    "dateRange": [
      {
        "endTime": "*string*",
        "startTime": "*string*"
      }
    ]
  },
  "top_0": [
    {
      "prefix": "*string*",
      "value": "*string*"
    }
  ]
}

400 Bad request.

{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}