Skip to content
Start here

BGP

Get BGP time series
GET/radar/bgp/timeseries
ModelsExpand Collapse
BGPTimeseriesResponse { meta, serie_0 }
meta: { aggInterval, confidenceInfo, dateRange, lastUpdated }
aggInterval: "15m" or "1h" or "1d" or "1w"
One of the following:
"15m"
"1h"
"1d"
"1w"
confidenceInfo: { annotations, level }
annotations: array of { dataSource, description, endDate, 4 more }
dataSource: "ALL" or "AI_BOTS" or "AI_GATEWAY" or 22 more

Data source for annotations.

One of the following:
"ALL"
"AI_BOTS"
"AI_GATEWAY"
"BGP"
"BOTS"
"CONNECTION_ANOMALY"
"CT"
"DNS"
"DNS_MAGNITUDE"
"DNS_AS112"
"DOS"
"EMAIL_ROUTING"
"EMAIL_SECURITY"
"FW"
"FW_PG"
"HTTP"
"HTTP_CONTROL"
"HTTP_CRAWLER_REFERER"
"HTTP_ORIGINS"
"IQI"
"LEAKED_CREDENTIALS"
"NET"
"ROBOTS_TXT"
"SPEED"
"WORKERS_AI"
description: string
endDate: string
formatdate-time
eventType: "EVENT" or "GENERAL" or "OUTAGE" or 3 more

Event type for annotations.

One of the following:
"EVENT"
"GENERAL"
"OUTAGE"
"PARTIAL_PROJECTION"
"PIPELINE"
"TRAFFIC_ANOMALY"
isInstantaneous: boolean

Whether event is a single point in time or a time range.

linkedUrl: string
formaturi
startDate: string
formatdate-time
level: number

Provides an indication of how much confidence Cloudflare has in the data.

dateRange: array of { endTime, startTime }
endTime: string

Adjusted end of date range.

formatdate-time
startTime: string

Adjusted start of date range.

formatdate-time
lastUpdated: string
formatdate-time
serie_0: { timestamps, values }
timestamps: array of string
values: array of string

BGPLeaks

BGPLeaksEvents

Get BGP route leak events
GET/radar/bgp/leaks/events
ModelsExpand Collapse
EventListResponse { asn_info, events }
asn_info: array of { asn, country_code, org_name }
asn: number
country_code: string
org_name: string
events: array of { id, countries, detected_ts, 10 more }
id: number
countries: array of string
detected_ts: string
finished: boolean
leak_asn: number
leak_count: number
leak_seg: array of number
leak_type: number
max_ts: string
min_ts: string
origin_count: number
peer_count: number
prefix_count: number

BGPTop

Get top prefixes by BGP updates
GET/radar/bgp/top/prefixes
ModelsExpand Collapse
TopPrefixesResponse { meta, top_0 }
meta: { dateRange }
dateRange: array of { endTime, startTime }
endTime: string

Adjusted end of date range.

formatdate-time
startTime: string

Adjusted start of date range.

formatdate-time
top_0: array of { prefix, value }
prefix: string
value: string

A numeric string.

BGPTopAses

Get top ASes by BGP updates
GET/radar/bgp/top/ases
Get top ASes by prefix count
GET/radar/bgp/top/ases/prefixes
ModelsExpand Collapse
AseGetResponse { meta, top_0 }
meta: { dateRange }
dateRange: array of { endTime, startTime }
endTime: string

Adjusted end of date range.

formatdate-time
startTime: string

Adjusted start of date range.

formatdate-time
top_0: array of { asn, ASName, value }
asn: number
ASName: string
value: string

Percentage of updates by this AS out of the total updates by all autonomous systems.

AsePrefixesResponse { asns, meta }
asns: array of { asn, country, name, pfxs_count }
asn: number
country: string
name: string
pfxs_count: number
meta: { data_time, query_time, total_peers }
data_time: string
query_time: string
total_peers: number

BGPHijacks

BGPHijacksEvents

Get BGP hijack events
GET/radar/bgp/hijacks/events
ModelsExpand Collapse
EventListResponse { asn_info, events, total_monitors }
asn_info: array of { asn, country_code, org_name }
asn: number
country_code: string
org_name: string
events: array of { id, confidence_score, duration, 15 more }
id: number
confidence_score: number
duration: number
event_type: number
hijack_msgs_count: number
hijacker_asn: number
hijacker_country: string
is_stale: boolean
max_hijack_ts: string
max_msg_ts: string
min_hijack_ts: string
on_going_count: number
peer_asns: array of number
peer_ip_count: number
prefixes: array of string
tags: array of { name, score }
name: string
score: number
victim_asns: array of number
victim_countries: array of string
total_monitors: number

BGPRoutes

Get Multi-Origin AS (MOAS) prefixes
GET/radar/bgp/routes/moas
Get prefix-to-ASN mapping
GET/radar/bgp/routes/pfx2as
Get BGP routing table stats
GET/radar/bgp/routes/stats
List ASes from global routing tables
GET/radar/bgp/routes/ases
Get real-time BGP routes for a prefix
GET/radar/bgp/routes/realtime
ModelsExpand Collapse
RouteMoasResponse { meta, moas }
meta: { data_time, query_time, total_peers }
data_time: string
query_time: string
total_peers: number
moas: array of { origins, prefix }
origins: array of { origin, peer_count, rpki_validation }
origin: number
peer_count: number
rpki_validation: string
prefix: string
RoutePfx2asResponse { meta, prefix_origins }
meta: { data_time, query_time, total_peers }
data_time: string
query_time: string
total_peers: number
prefix_origins: array of { origin, peer_count, prefix, rpki_validation }
origin: number
peer_count: number
prefix: string
rpki_validation: string
RouteStatsResponse { meta, stats }
meta: { data_time, query_time, total_peers }
data_time: string
query_time: string
total_peers: number
stats: { distinct_origins, distinct_origins_ipv4, distinct_origins_ipv6, 15 more }
distinct_origins: number
distinct_origins_ipv4: number
distinct_origins_ipv6: number
distinct_prefixes: number
distinct_prefixes_ipv4: number
distinct_prefixes_ipv6: number
routes_invalid: number
routes_invalid_ipv4: number
routes_invalid_ipv6: number
routes_total: number
routes_total_ipv4: number
routes_total_ipv6: number
routes_unknown: number
routes_unknown_ipv4: number
routes_unknown_ipv6: number
routes_valid: number
routes_valid_ipv4: number
routes_valid_ipv6: number
RouteAsesResponse { asns, meta }
asns: array of { asn, coneSize, country, 7 more }
asn: number
coneSize: number

AS’s customer cone size.

country: string

Alpha-2 code for the AS’s registration country.

ipv4Count: number

Number of IPv4 addresses originated by the AS.

ipv6Count: string

Number of IPv6 addresses originated by the AS.

name: string

Name of the AS.

pfxsCount: number

Number of total IP prefixes originated by the AS.

rpkiInvalid: number

Number of RPKI invalid prefixes originated by the AS.

rpkiUnknown: number

Number of RPKI unknown prefixes originated by the AS.

rpkiValid: number

Number of RPKI valid prefixes originated by the AS.

meta: { dataTime, queryTime, totalPeers }
dataTime: string

The timestamp of when the data is generated.

queryTime: string

The timestamp of the query.

totalPeers: number

Total number of route collector peers used to generate this data.

RouteRealtimeResponse { meta, routes }
meta: { asn_info, collectors, data_time, 2 more }
asn_info: array of { as_name, asn, country_code, 2 more }
as_name: string

Name of the autonomous system.

asn: number

AS number.

country_code: string

Alpha-2 code for the AS’s registration country.

org_id: string

Organization ID.

org_name: string

Organization name.

collectors: array of { collector, latest_realtime_ts, latest_rib_ts, 4 more }
collector: string

Public route collector ID.

latest_realtime_ts: string

Latest real-time stream timestamp for this collector.

latest_rib_ts: string

Latest RIB dump MRT file timestamp for this collector.

latest_updates_ts: string

Latest BGP updates MRT file timestamp for this collector.

peers_count: number

Total number of collector peers used from this collector.

peers_v4_count: number

Total number of collector peers used from this collector for IPv4 prefixes.

peers_v6_count: number

Total number of collector peers used from this collector for IPv6 prefixes.

data_time: string

The most recent data timestamp for from the real-time sources.

prefix_origins: array of { origin, prefix, rpki_validation, 3 more }
origin: number

Origin ASN.

prefix: string

IP prefix of this query.

rpki_validation: string

Prefix-origin RPKI validation: valid, invalid, unknown.

total_peers: number

Total number of peers.

total_visible: number

Total number of peers seeing this prefix.

visibility: number

Ratio of peers seeing this prefix to total number of peers.

query_time: string

The timestamp of this query.

routes: array of { as_path, collector, communities, 2 more }
as_path: array of number

AS-level path for this route, from collector to origin.

collector: string

Public collector ID for this route.

communities: array of string

BGP community values.

prefix: string

IP prefix of this query.

timestamp: string

Latest timestamp of change for this route.

BGPIPs

Get announced IP address space time series
GET/radar/bgp/ips/timeseries
ModelsExpand Collapse
IPTimeseriesResponse { meta, serie_0 }
meta: { aggInterval, confidenceInfo, dateRange, 4 more }

Metadata for the results.

aggInterval: "FIFTEEN_MINUTES" or "ONE_HOUR" or "ONE_DAY" or 2 more

Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to Aggregation intervals.

One of the following:
"FIFTEEN_MINUTES"
"ONE_HOUR"
"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
confidenceInfo: { annotations, level }
annotations: array of { dataSource, description, endDate, 4 more }
dataSource: "ALL" or "AI_BOTS" or "AI_GATEWAY" or 22 more

Data source for annotations.

One of the following:
"ALL"
"AI_BOTS"
"AI_GATEWAY"
"BGP"
"BOTS"
"CONNECTION_ANOMALY"
"CT"
"DNS"
"DNS_MAGNITUDE"
"DNS_AS112"
"DOS"
"EMAIL_ROUTING"
"EMAIL_SECURITY"
"FW"
"FW_PG"
"HTTP"
"HTTP_CONTROL"
"HTTP_CRAWLER_REFERER"
"HTTP_ORIGINS"
"IQI"
"LEAKED_CREDENTIALS"
"NET"
"ROBOTS_TXT"
"SPEED"
"WORKERS_AI"
description: string
endDate: string
formatdate-time
eventType: "EVENT" or "GENERAL" or "OUTAGE" or 3 more

Event type for annotations.

One of the following:
"EVENT"
"GENERAL"
"OUTAGE"
"PARTIAL_PROJECTION"
"PIPELINE"
"TRAFFIC_ANOMALY"
isInstantaneous: boolean

Whether event is a single point in time or a time range.

linkedUrl: string
formaturi
startDate: string
formatdate-time
level: number

Provides an indication of how much confidence Cloudflare has in the data.

dateRange: array of { endTime, startTime }
endTime: string

Adjusted end of date range.

formatdate-time
startTime: string

Adjusted start of date range.

formatdate-time
lastUpdated: string

Timestamp of the last dataset update.

formatdate-time
normalization: "PERCENTAGE" or "MIN0_MAX" or "MIN_MAX" or 5 more

Normalization method applied to the results. Refer to Normalization methods.

One of the following:
"PERCENTAGE"
"MIN0_MAX"
"MIN_MAX"
"RAW_VALUES"
"PERCENTAGE_CHANGE"
"ROLLING_AVERAGE"
"OVERLAPPED_PERCENTAGE"
"RATIO"
units: array of { name, value }

Measurement units for the results.

name: string
value: string
delay: optional { asn_data, country_data, healthy, nowTs }
asn_data: { delaySecs, delayStr, healthy, latest }
delaySecs: number
delayStr: string
healthy: boolean
latest: { entries_count, path, timestamp }
entries_count: number
path: string
timestamp: number
country_data: { delaySecs, delayStr, healthy, latest }
delaySecs: number
delayStr: string
healthy: boolean
latest: { count, timestamp }
count: number
timestamp: number
healthy: boolean
nowTs: number
serie_0: { ipv4, ipv6, timestamps }
ipv4: array of string
ipv6: array of string
timestamps: array of string

BGPRPKI

BGPRPKIASPA

Get ASPA objects snapshot
GET/radar/bgp/rpki/aspa/snapshot
Get ASPA changes over time
GET/radar/bgp/rpki/aspa/changes
Get ASPA count time series
GET/radar/bgp/rpki/aspa/timeseries
ModelsExpand Collapse
ASPASnapshotResponse { asnInfo, aspaObjects, meta }
asnInfo: { "13335" }
"13335": { asn, country, name }
asn: number

ASN number.

country: string

Alpha-2 country code.

name: string

AS name.

aspaObjects: array of { customerAsn, providers }
customerAsn: number

The customer ASN publishing the ASPA object.

providers: array of number
meta: { dataTime, queryTime, totalCount }
dataTime: string

Timestamp of the underlying data.

formatdate-time
queryTime: string

Timestamp when the query was executed.

formatdate-time
totalCount: number

Total number of ASPA objects.

ASPAChangesResponse { asnInfo, changes, meta }
asnInfo: { "13335" }
"13335": { asn, country, name }
asn: number

ASN number.

country: string

Alpha-2 country code.

name: string

AS name.

changes: array of { customersAdded, customersRemoved, date, 4 more }
customersAdded: number

Number of new ASPA objects created.

customersRemoved: number

Number of ASPA objects deleted.

date: string

Date of the changes in ISO 8601 format.

formatdate-time
entries: array of { customerAsn, providers, type }
customerAsn: number

The customer ASN affected.

providers: array of number
type: "CustomerAdded" or "CustomerRemoved" or "ProvidersAdded" or "ProvidersRemoved"
One of the following:
"CustomerAdded"
"CustomerRemoved"
"ProvidersAdded"
"ProvidersRemoved"
providersAdded: number

Number of providers added to existing objects.

providersRemoved: number

Number of providers removed from existing objects.

totalCount: number

Running total of active ASPA objects after this day.

meta: { dataTime, queryTime }
dataTime: string

Timestamp of the underlying data.

formatdate-time
queryTime: string

Timestamp when the query was executed.

formatdate-time
ASPATimeseriesResponse { meta, serie_0 }
meta: { dataTime, queryTime }
dataTime: string

Timestamp of the underlying data.

formatdate-time
queryTime: string

Timestamp when the query was executed.

formatdate-time
serie_0: { timestamps, values }
timestamps: array of string
values: array of string