Skip to content
Start here

BGP

Get BGP time series
client.radar.bgp.timeseries(BGPTimeseriesParams { aggInterval, asn, dateEnd, 6 more } query?, RequestOptionsoptions?): BGPTimeseriesResponse { meta, serie_0 }
GET/radar/bgp/timeseries
ModelsExpand Collapse
BGPTimeseriesResponse { meta, serie_0 }
meta: Meta { aggInterval, confidenceInfo, dateRange, lastUpdated }
aggInterval: "15m" | "1h" | "1d" | "1w"
One of the following:
"15m"
"1h"
"1d"
"1w"
confidenceInfo: ConfidenceInfo { annotations, level }
annotations: Array<Annotation>
dataSource: "ALL" | "AI_BOTS" | "AI_GATEWAY" | 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" | "GENERAL" | "OUTAGE" | 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<DateRange>
endTime: string

Adjusted end of date range.

formatdate-time
startTime: string

Adjusted start of date range.

formatdate-time
lastUpdated: string
formatdate-time
serie_0: Serie0 { timestamps, values }
timestamps: Array<string>
values: Array<string>

BGPLeaks

BGPLeaksEvents

Get BGP route leak events
client.radar.bgp.leaks.events.list(EventListParams { dateEnd, dateRange, dateStart, 9 more } query?, RequestOptionsoptions?): V4PagePagination<EventListResponse { asn_info, events } >
GET/radar/bgp/leaks/events
ModelsExpand Collapse
EventListResponse { asn_info, events }
asn_info: Array<ASNInfo>
asn: number
country_code: string
org_name: string
events: Array<Event>
id: number
countries: Array<string>
detected_ts: string
finished: boolean
leak_asn: number
leak_count: number
leak_seg: Array<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
client.radar.bgp.top.prefixes(TopPrefixesParams { asn, dateEnd, dateRange, 5 more } query?, RequestOptionsoptions?): TopPrefixesResponse { meta, top_0 }
GET/radar/bgp/top/prefixes
ModelsExpand Collapse
TopPrefixesResponse { meta, top_0 }
meta: Meta { dateRange }
dateRange: Array<DateRange>
endTime: string

Adjusted end of date range.

formatdate-time
startTime: string

Adjusted start of date range.

formatdate-time
top_0: Array<Top0>
prefix: string
value: string

A numeric string.

BGPTopAses

Get top ASes by BGP updates
client.radar.bgp.top.ases.get(AseGetParams { asn, dateEnd, dateRange, 6 more } query?, RequestOptionsoptions?): AseGetResponse { meta, top_0 }
GET/radar/bgp/top/ases
Get top ASes by prefix count
client.radar.bgp.top.ases.prefixes(AsePrefixesParams { country, format, limit } query?, RequestOptionsoptions?): AsePrefixesResponse { asns, meta }
GET/radar/bgp/top/ases/prefixes
ModelsExpand Collapse
AseGetResponse { meta, top_0 }
meta: Meta { dateRange }
dateRange: Array<DateRange>
endTime: string

Adjusted end of date range.

formatdate-time
startTime: string

Adjusted start of date range.

formatdate-time
top_0: Array<Top0>
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<ASN>
asn: number
country: string
name: string
pfxs_count: number
meta: Meta { data_time, query_time, total_peers }
data_time: string
query_time: string
total_peers: number

BGPHijacks

BGPHijacksEvents

Get BGP hijack events
client.radar.bgp.hijacks.events.list(EventListParams { dateEnd, dateRange, dateStart, 13 more } query?, RequestOptionsoptions?): V4PagePagination<EventListResponse { asn_info, events, total_monitors } >
GET/radar/bgp/hijacks/events
ModelsExpand Collapse
EventListResponse { asn_info, events, total_monitors }
asn_info: Array<ASNInfo>
asn: number
country_code: string
org_name: string
events: Array<Event>
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<number>
peer_ip_count: number
prefixes: Array<string>
tags: Array<Tag>
name: string
score: number
victim_asns: Array<number>
victim_countries: Array<string>
total_monitors: number

BGPRoutes

Get Multi-Origin AS (MOAS) prefixes
client.radar.bgp.routes.moas(RouteMoasParams { format, invalid_only, origin, prefix } query?, RequestOptionsoptions?): RouteMoasResponse { meta, moas }
GET/radar/bgp/routes/moas
Get prefix-to-ASN mapping
client.radar.bgp.routes.pfx2as(RoutePfx2asParams { format, longestPrefixMatch, origin, 2 more } query?, RequestOptionsoptions?): RoutePfx2asResponse { meta, prefix_origins }
GET/radar/bgp/routes/pfx2as
Get BGP routing table stats
client.radar.bgp.routes.stats(RouteStatsParams { asn, format, location } query?, RequestOptionsoptions?): RouteStatsResponse { meta, stats }
GET/radar/bgp/routes/stats
List ASes from global routing tables
client.radar.bgp.routes.ases(RouteAsesParams { format, limit, location, 2 more } query?, RequestOptionsoptions?): RouteAsesResponse { asns, meta }
GET/radar/bgp/routes/ases
Get real-time BGP routes for a prefix
client.radar.bgp.routes.realtime(RouteRealtimeParams { format, prefix } query?, RequestOptionsoptions?): RouteRealtimeResponse { meta, routes }
GET/radar/bgp/routes/realtime
ModelsExpand Collapse
RouteMoasResponse { meta, moas }
meta: Meta { data_time, query_time, total_peers }
data_time: string
query_time: string
total_peers: number
moas: Array<Moa>
origins: Array<Origin>
origin: number
peer_count: number
rpki_validation: string
prefix: string
RoutePfx2asResponse { meta, prefix_origins }
meta: Meta { data_time, query_time, total_peers }
data_time: string
query_time: string
total_peers: number
prefix_origins: Array<PrefixOrigin>
origin: number
peer_count: number
prefix: string
rpki_validation: string
RouteStatsResponse { meta, stats }
meta: Meta { data_time, query_time, total_peers }
data_time: string
query_time: string
total_peers: number
stats: 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<ASN>
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: 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: Meta { asn_info, collectors, data_time, 2 more }
asn_info: Array<ASNInfo>
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<Collector>
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<PrefixOrigin>
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<Route>
as_path: Array<number>

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

collector: string

Public collector ID for this route.

communities: Array<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
client.radar.bgp.ips.timeseries(IPTimeseriesParams { asn, dateEnd, dateRange, 6 more } query?, RequestOptionsoptions?): IPTimeseriesResponse { meta, serie_0 }
GET/radar/bgp/ips/timeseries
ModelsExpand Collapse
IPTimeseriesResponse { meta, serie_0 }
meta: Meta { aggInterval, confidenceInfo, dateRange, 4 more }

Metadata for the results.

aggInterval: "FIFTEEN_MINUTES" | "ONE_HOUR" | "ONE_DAY" | 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: ConfidenceInfo { annotations, level }
annotations: Array<Annotation>
dataSource: "ALL" | "AI_BOTS" | "AI_GATEWAY" | 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" | "GENERAL" | "OUTAGE" | 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<DateRange>
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" | "MIN0_MAX" | "MIN_MAX" | 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<Unit>

Measurement units for the results.

name: string
value: string
delay?: Delay { asn_data, country_data, healthy, nowTs }
asn_data: ASNData { delaySecs, delayStr, healthy, latest }
delaySecs: number
delayStr: string
healthy: boolean
latest: Latest { entries_count, path, timestamp }
entries_count: number
path: string
timestamp: number
country_data: CountryData { delaySecs, delayStr, healthy, latest }
delaySecs: number
delayStr: string
healthy: boolean
latest: Latest { count, timestamp }
count: number
timestamp: number
healthy: boolean
nowTs: number
serie_0: Serie0 { ipv4, ipv6, timestamps }
ipv4: Array<string>
ipv6: Array<string>
timestamps: Array<string>

BGPRPKI

BGPRPKIASPA

Get ASPA objects snapshot
client.radar.bgp.rpki.aspa.snapshot(ASPASnapshotParams { customerAsn, date, format, 2 more } query?, RequestOptionsoptions?): ASPASnapshotResponse { asnInfo, aspaObjects, meta }
GET/radar/bgp/rpki/aspa/snapshot
Get ASPA changes over time
client.radar.bgp.rpki.aspa.changes(ASPAChangesParams { asn, dateEnd, dateStart, 2 more } query?, RequestOptionsoptions?): ASPAChangesResponse { asnInfo, changes, meta }
GET/radar/bgp/rpki/aspa/changes
Get ASPA count time series
client.radar.bgp.rpki.aspa.timeseries(ASPATimeseriesParams { dateEnd, dateStart, format, 3 more } query?, RequestOptionsoptions?): ASPATimeseriesResponse { meta, serie_0 }
GET/radar/bgp/rpki/aspa/timeseries
ModelsExpand Collapse
ASPASnapshotResponse { asnInfo, aspaObjects, meta }
asnInfo: ASNInfo { 13335 }
"13335": _13335 { asn, country, name }
asn: number

ASN number.

country: string

Alpha-2 country code.

name: string

AS name.

aspaObjects: Array<ASPAObject>
customerAsn: number

The customer ASN publishing the ASPA object.

providers: Array<number>
meta: 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: ASNInfo { 13335 }
"13335": _13335 { asn, country, name }
asn: number

ASN number.

country: string

Alpha-2 country code.

name: string

AS name.

changes: Array<Change>
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<Entry>
customerAsn: number

The customer ASN affected.

providers: Array<number>
type: "CustomerAdded" | "CustomerRemoved" | "ProvidersAdded" | "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: 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: Meta { dataTime, queryTime }
dataTime: string

Timestamp of the underlying data.

formatdate-time
queryTime: string

Timestamp when the query was executed.

formatdate-time
serie_0: Serie0 { timestamps, values }
timestamps: Array<string>
values: Array<string>