# BGP ## Get BGP time series `client.radar.bgp.timeseries(BGPTimeseriesParamsquery?, RequestOptionsoptions?): BGPTimeseriesResponse` **get** `/radar/bgp/timeseries` Retrieves BGP updates over time. When requesting updates for an autonomous system, only BGP updates of type announcement are returned. ### Parameters - `query: BGPTimeseriesParams` - `aggInterval?: "15m" | "1h" | "1d" | "1w"` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `asn?: Array` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `dateEnd?: Array` End of the date range (inclusive). - `dateRange?: Array` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `dateStart?: Array` Start of the date range. - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `name?: Array` Array of names used to label the series in the response. - `prefix?: Array` Filters results by BGP network prefix. - `updateType?: Array<"ANNOUNCEMENT" | "WITHDRAWAL">` Filters results by BGP update type. - `"ANNOUNCEMENT"` - `"WITHDRAWAL"` ### Returns - `BGPTimeseriesResponse` - `meta: Meta` - `aggInterval: "15m" | "1h" | "1d" | "1w"` - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `confidenceInfo: ConfidenceInfo` - `annotations: Array` - `dataSource: "ALL" | "AI_BOTS" | "AI_GATEWAY" | 22 more` Data source for annotations. - `"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` - `eventType: "EVENT" | "GENERAL" | "OUTAGE" | 3 more` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `isInstantaneous: boolean` Whether event is a single point in time or a time range. - `linkedUrl: string` - `startDate: string` - `level: number` Provides an indication of how much confidence Cloudflare has in the data. - `dateRange: Array` - `endTime: string` Adjusted end of date range. - `startTime: string` Adjusted start of date range. - `lastUpdated: string` - `serie_0: Serie0` - `timestamps: Array` - `values: Array` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.timeseries(); console.log(response.meta); ``` #### Response ```json { "result": { "meta": { "aggInterval": "15m", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z" }, "serie_0": { "timestamps": [ "2019-12-27T18:11:19.117Z" ], "values": [ "10" ] } }, "success": true } ``` ## Domain Types ### BGP Timeseries Response - `BGPTimeseriesResponse` - `meta: Meta` - `aggInterval: "15m" | "1h" | "1d" | "1w"` - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `confidenceInfo: ConfidenceInfo` - `annotations: Array` - `dataSource: "ALL" | "AI_BOTS" | "AI_GATEWAY" | 22 more` Data source for annotations. - `"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` - `eventType: "EVENT" | "GENERAL" | "OUTAGE" | 3 more` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `isInstantaneous: boolean` Whether event is a single point in time or a time range. - `linkedUrl: string` - `startDate: string` - `level: number` Provides an indication of how much confidence Cloudflare has in the data. - `dateRange: Array` - `endTime: string` Adjusted end of date range. - `startTime: string` Adjusted start of date range. - `lastUpdated: string` - `serie_0: Serie0` - `timestamps: Array` - `values: Array` # Leaks # Events ## Get BGP route leak events `client.radar.bgp.leaks.events.list(EventListParamsquery?, RequestOptionsoptions?): V4PagePagination` **get** `/radar/bgp/leaks/events` Retrieves the BGP route leak events. ### Parameters - `query: EventListParams` - `dateEnd?: string` End of the date range (inclusive). - `dateRange?: string` Filters results by date range. - `dateStart?: string` Start of the date range (inclusive). - `eventId?: number` The unique identifier of a event. - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `involvedAsn?: number` ASN that is causing or affected by a route leak event. - `involvedCountry?: string` Country code of a involved ASN in a route leak event. - `leakAsn?: number` The leaking AS of a route leak event. - `page?: number` Current page number, starting from 1. - `per_page?: number` Number of entries per page. - `sortBy?: "ID" | "LEAKS" | "PEERS" | 3 more` Sorts results by the specified field. - `"ID"` - `"LEAKS"` - `"PEERS"` - `"PREFIXES"` - `"ORIGINS"` - `"TIME"` - `sortOrder?: "ASC" | "DESC"` Sort order. - `"ASC"` - `"DESC"` ### Returns - `EventListResponse` - `asn_info: Array` - `asn: number` - `country_code: string` - `org_name: string` - `events: Array` - `id: number` - `countries: Array` - `detected_ts: string` - `finished: boolean` - `leak_asn: number` - `leak_count: number` - `leak_seg: Array` - `leak_type: number` - `max_ts: string` - `min_ts: string` - `origin_count: number` - `peer_count: number` - `prefix_count: number` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const eventListResponse of client.radar.bgp.leaks.events.list()) { console.log(eventListResponse.asn_info); } ``` #### Response ```json { "result": { "asn_info": [ { "asn": 0, "country_code": "country_code", "org_name": "org_name" } ], "events": [ { "id": 0, "countries": [ "string" ], "detected_ts": "detected_ts", "finished": true, "leak_asn": 0, "leak_count": 0, "leak_seg": [ 0 ], "leak_type": 0, "max_ts": "max_ts", "min_ts": "min_ts", "origin_count": 0, "peer_count": 0, "prefix_count": 0 } ] }, "result_info": { "count": 0, "page": 0, "per_page": 0, "total_count": 0 }, "success": true } ``` ## Domain Types ### Event List Response - `EventListResponse` - `asn_info: Array` - `asn: number` - `country_code: string` - `org_name: string` - `events: Array` - `id: number` - `countries: Array` - `detected_ts: string` - `finished: boolean` - `leak_asn: number` - `leak_count: number` - `leak_seg: Array` - `leak_type: number` - `max_ts: string` - `min_ts: string` - `origin_count: number` - `peer_count: number` - `prefix_count: number` # Top ## Get top prefixes by BGP updates `client.radar.bgp.top.prefixes(TopPrefixesParamsquery?, RequestOptionsoptions?): TopPrefixesResponse` **get** `/radar/bgp/top/prefixes` Retrieves the top network prefixes by BGP updates. ### Parameters - `query: TopPrefixesParams` - `asn?: Array` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `dateEnd?: Array` End of the date range (inclusive). - `dateRange?: Array` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `dateStart?: Array` Start of the date range. - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit?: number` Limits the number of objects returned in the response. - `name?: Array` Array of names used to label the series in the response. - `updateType?: Array<"ANNOUNCEMENT" | "WITHDRAWAL">` Filters results by BGP update type. - `"ANNOUNCEMENT"` - `"WITHDRAWAL"` ### Returns - `TopPrefixesResponse` - `meta: Meta` - `dateRange: Array` - `endTime: string` Adjusted end of date range. - `startTime: string` Adjusted start of date range. - `top_0: Array` - `prefix: string` - `value: string` A numeric string. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.top.prefixes(); console.log(response.meta); ``` #### Response ```json { "result": { "meta": { "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ] }, "top_0": [ { "prefix": "2804:77cc:8000::/33", "value": "10" } ] }, "success": true } ``` ## Domain Types ### Top Prefixes Response - `TopPrefixesResponse` - `meta: Meta` - `dateRange: Array` - `endTime: string` Adjusted end of date range. - `startTime: string` Adjusted start of date range. - `top_0: Array` - `prefix: string` - `value: string` A numeric string. # Ases ## Get top ASes by BGP updates `client.radar.bgp.top.ases.get(AseGetParamsquery?, RequestOptionsoptions?): AseGetResponse` **get** `/radar/bgp/top/ases` Retrieves the top autonomous systems by BGP updates (announcements only). ### Parameters - `query: AseGetParams` - `asn?: Array` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `dateEnd?: Array` End of the date range (inclusive). - `dateRange?: Array` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `dateStart?: Array` Start of the date range. - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit?: number` Limits the number of objects returned in the response. - `name?: Array` Array of names used to label the series in the response. - `prefix?: Array` Filters results by BGP network prefix. - `updateType?: Array<"ANNOUNCEMENT" | "WITHDRAWAL">` Filters results by BGP update type. - `"ANNOUNCEMENT"` - `"WITHDRAWAL"` ### Returns - `AseGetResponse` - `meta: Meta` - `dateRange: Array` - `endTime: string` Adjusted end of date range. - `startTime: string` Adjusted start of date range. - `top_0: Array` - `asn: number` - `ASName: string` - `value: string` Percentage of updates by this AS out of the total updates by all autonomous systems. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const ase = await client.radar.bgp.top.ases.get(); console.log(ase.meta); ``` #### Response ```json { "result": { "meta": { "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ] }, "top_0": [ { "asn": 714, "ASName": "Apple-Engineering", "value": "0.73996" } ] }, "success": true } ``` ## Get top ASes by prefix count `client.radar.bgp.top.ases.prefixes(AsePrefixesParamsquery?, RequestOptionsoptions?): AsePrefixesResponse` **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. ### Parameters - `query: AsePrefixesParams` - `country?: string` Alpha-2 country code. - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit?: number` Maximum number of ASes to return. ### Returns - `AsePrefixesResponse` - `asns: Array` - `asn: number` - `country: string` - `name: string` - `pfxs_count: number` - `meta: Meta` - `data_time: string` - `query_time: string` - `total_peers: number` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.top.ases.prefixes(); console.log(response.asns); ``` #### Response ```json { "result": { "asns": [ { "asn": 0, "country": "country", "name": "name", "pfxs_count": 0 } ], "meta": { "data_time": "data_time", "query_time": "query_time", "total_peers": 0 } }, "success": true } ``` ## Domain Types ### Ase Get Response - `AseGetResponse` - `meta: Meta` - `dateRange: Array` - `endTime: string` Adjusted end of date range. - `startTime: string` Adjusted start of date range. - `top_0: Array` - `asn: number` - `ASName: string` - `value: string` Percentage of updates by this AS out of the total updates by all autonomous systems. ### Ase Prefixes Response - `AsePrefixesResponse` - `asns: Array` - `asn: number` - `country: string` - `name: string` - `pfxs_count: number` - `meta: Meta` - `data_time: string` - `query_time: string` - `total_peers: number` # Hijacks # Events ## Get BGP hijack events `client.radar.bgp.hijacks.events.list(EventListParamsquery?, RequestOptionsoptions?): V4PagePagination` **get** `/radar/bgp/hijacks/events` Retrieves the BGP hijack events. ### Parameters - `query: EventListParams` - `dateEnd?: string` End of the date range (inclusive). - `dateRange?: string` Filters results by date range. - `dateStart?: string` Start of the date range (inclusive). - `eventId?: number` The unique identifier of a event. - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `hijackerAsn?: number` The potential hijacker AS of a BGP hijack event. - `involvedAsn?: number` The potential hijacker or victim AS of a BGP hijack event. - `involvedCountry?: string` The country code of the potential hijacker or victim AS of a BGP hijack event. - `maxConfidence?: number` Filters events by maximum confidence score (1-4 low, 5-7 mid, 8+ high). - `minConfidence?: number` Filters events by minimum confidence score (1-4 low, 5-7 mid, 8+ high). - `page?: number` Current page number, starting from 1. - `per_page?: number` Number of entries per page. - `prefix?: string` - `sortBy?: "ID" | "TIME" | "CONFIDENCE"` Sorts results by the specified field. - `"ID"` - `"TIME"` - `"CONFIDENCE"` - `sortOrder?: "ASC" | "DESC"` Sort order. - `"ASC"` - `"DESC"` - `victimAsn?: number` The potential victim AS of a BGP hijack event. ### Returns - `EventListResponse` - `asn_info: Array` - `asn: number` - `country_code: string` - `org_name: string` - `events: Array` - `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` - `peer_ip_count: number` - `prefixes: Array` - `tags: Array` - `name: string` - `score: number` - `victim_asns: Array` - `victim_countries: Array` - `total_monitors: number` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const eventListResponse of client.radar.bgp.hijacks.events.list()) { console.log(eventListResponse.asn_info); } ``` #### Response ```json { "result": { "asn_info": [ { "asn": 0, "country_code": "country_code", "org_name": "org_name" } ], "events": [ { "id": 0, "confidence_score": 0, "duration": 0, "event_type": 0, "hijack_msgs_count": 0, "hijacker_asn": 0, "hijacker_country": "hijacker_country", "is_stale": true, "max_hijack_ts": "max_hijack_ts", "max_msg_ts": "max_msg_ts", "min_hijack_ts": "min_hijack_ts", "on_going_count": 0, "peer_asns": [ 0 ], "peer_ip_count": 0, "prefixes": [ "string" ], "tags": [ { "name": "name", "score": 0 } ], "victim_asns": [ 0 ], "victim_countries": [ "string" ] } ], "total_monitors": 0 }, "result_info": { "count": 0, "page": 0, "per_page": 0, "total_count": 0 }, "success": true } ``` ## Domain Types ### Event List Response - `EventListResponse` - `asn_info: Array` - `asn: number` - `country_code: string` - `org_name: string` - `events: Array` - `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` - `peer_ip_count: number` - `prefixes: Array` - `tags: Array` - `name: string` - `score: number` - `victim_asns: Array` - `victim_countries: Array` - `total_monitors: number` # Routes ## Get Multi-Origin AS (MOAS) prefixes `client.radar.bgp.routes.moas(RouteMoasParamsquery?, RequestOptionsoptions?): RouteMoasResponse` **get** `/radar/bgp/routes/moas` Retrieves all Multi-Origin AS (MOAS) prefixes in the global routing tables. ### Parameters - `query: RouteMoasParams` - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `invalid_only?: boolean` Lookup only RPKI invalid MOASes. - `origin?: number` Lookup MOASes originated by the given ASN. - `prefix?: string` ### Returns - `RouteMoasResponse` - `meta: Meta` - `data_time: string` - `query_time: string` - `total_peers: number` - `moas: Array` - `origins: Array` - `origin: number` - `peer_count: number` - `rpki_validation: string` - `prefix: string` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.routes.moas(); console.log(response.meta); ``` #### Response ```json { "result": { "meta": { "data_time": "data_time", "query_time": "query_time", "total_peers": 0 }, "moas": [ { "origins": [ { "origin": 0, "peer_count": 0, "rpki_validation": "rpki_validation" } ], "prefix": "prefix" } ] }, "success": true } ``` ## Get prefix-to-ASN mapping `client.radar.bgp.routes.pfx2as(RoutePfx2asParamsquery?, RequestOptionsoptions?): RoutePfx2asResponse` **get** `/radar/bgp/routes/pfx2as` Retrieves the prefix-to-ASN mapping from global routing tables. ### Parameters - `query: RoutePfx2asParams` - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `longestPrefixMatch?: boolean` Return only results with the longest prefix match for the given prefix. For example, specify a /32 prefix to lookup the origin ASN for an IPv4 address. - `origin?: number` Lookup prefixes originated by the given ASN. - `prefix?: string` - `rpkiStatus?: "VALID" | "INVALID" | "UNKNOWN"` Return only results with matching rpki status: valid, invalid or unknown. - `"VALID"` - `"INVALID"` - `"UNKNOWN"` ### Returns - `RoutePfx2asResponse` - `meta: Meta` - `data_time: string` - `query_time: string` - `total_peers: number` - `prefix_origins: Array` - `origin: number` - `peer_count: number` - `prefix: string` - `rpki_validation: string` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.routes.pfx2as(); console.log(response.meta); ``` #### Response ```json { "result": { "meta": { "data_time": "data_time", "query_time": "query_time", "total_peers": 0 }, "prefix_origins": [ { "origin": 0, "peer_count": 0, "prefix": "prefix", "rpki_validation": "rpki_validation" } ] }, "success": true } ``` ## Get BGP routing table stats `client.radar.bgp.routes.stats(RouteStatsParamsquery?, RequestOptionsoptions?): RouteStatsResponse` **get** `/radar/bgp/routes/stats` Retrieves the BGP routing table stats. ### Parameters - `query: RouteStatsParams` - `asn?: number` Filters results by Autonomous System. Specify a single Autonomous System Number (ASN) as integer. - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location?: string` Filters results by location. Specify an alpha-2 location code. ### Returns - `RouteStatsResponse` - `meta: Meta` - `data_time: string` - `query_time: string` - `total_peers: number` - `stats: Stats` - `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` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.routes.stats(); console.log(response.meta); ``` #### Response ```json { "result": { "meta": { "data_time": "data_time", "query_time": "query_time", "total_peers": 0 }, "stats": { "distinct_origins": 0, "distinct_origins_ipv4": 0, "distinct_origins_ipv6": 0, "distinct_prefixes": 0, "distinct_prefixes_ipv4": 0, "distinct_prefixes_ipv6": 0, "routes_invalid": 0, "routes_invalid_ipv4": 0, "routes_invalid_ipv6": 0, "routes_total": 0, "routes_total_ipv4": 0, "routes_total_ipv6": 0, "routes_unknown": 0, "routes_unknown_ipv4": 0, "routes_unknown_ipv6": 0, "routes_valid": 0, "routes_valid_ipv4": 0, "routes_valid_ipv6": 0 } }, "success": true } ``` ## List ASes from global routing tables `client.radar.bgp.routes.ases(RouteAsesParamsquery?, RequestOptionsoptions?): RouteAsesResponse` **get** `/radar/bgp/routes/ases` Retrieves all ASes in the current global routing tables with routing statistics. ### Parameters - `query: RouteAsesParams` - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `limit?: number` Limits the number of objects returned in the response. - `location?: string` Filters results by location. Specify an alpha-2 location code. - `sortBy?: "cone" | "pfxs" | "ipv4" | 4 more` Sorts results by the specified field. - `"cone"` - `"pfxs"` - `"ipv4"` - `"ipv6"` - `"rpki_valid"` - `"rpki_invalid"` - `"rpki_unknown"` - `sortOrder?: "ASC" | "DESC"` Sort order. - `"ASC"` - `"DESC"` ### Returns - `RouteAsesResponse` - `asns: Array` - `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: 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. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.routes.ases(); console.log(response.asns); ``` #### Response ```json { "result": { "asns": [ { "asn": 0, "coneSize": 0, "country": "US", "ipv4Count": 0, "ipv6Count": "1.21e24", "name": "name", "pfxsCount": 0, "rpkiInvalid": 0, "rpkiUnknown": 0, "rpkiValid": 0 } ], "meta": { "dataTime": "2024-06-03T14:00:00", "queryTime": "2024-06-03T14:00:00", "totalPeers": 0 } }, "success": true } ``` ## Get real-time BGP routes for a prefix `client.radar.bgp.routes.realtime(RouteRealtimeParamsquery?, RequestOptionsoptions?): RouteRealtimeResponse` **get** `/radar/bgp/routes/realtime` Retrieves real-time BGP routes for a prefix, using public real-time data collectors (RouteViews and RIPE RIS). ### Parameters - `query: RouteRealtimeParams` - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `prefix?: string` ### Returns - `RouteRealtimeResponse` - `meta: Meta` - `asn_info: Array` - `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: 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` - `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` - `as_path: Array` AS-level path for this route, from collector to origin. - `collector: string` Public collector ID for this route. - `communities: Array` BGP community values. - `prefix: string` IP prefix of this query. - `timestamp: string` Latest timestamp of change for this route. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.routes.realtime(); console.log(response.meta); ``` #### Response ```json { "result": { "meta": { "asn_info": [ { "as_name": "as_name", "asn": 0, "country_code": "country_code", "org_id": "org_id", "org_name": "org_name" } ], "collectors": [ { "collector": "collector", "latest_realtime_ts": "latest_realtime_ts", "latest_rib_ts": "latest_rib_ts", "latest_updates_ts": "latest_updates_ts", "peers_count": 0, "peers_v4_count": 0, "peers_v6_count": 0 } ], "data_time": "data_time", "prefix_origins": [ { "origin": 0, "prefix": "prefix", "rpki_validation": "rpki_validation", "total_peers": 0, "total_visible": 0, "visibility": 0 } ], "query_time": "query_time" }, "routes": [ { "as_path": [ 0 ], "collector": "collector", "communities": [ "string" ], "prefix": "prefix", "timestamp": "timestamp" } ] }, "success": true } ``` ## Domain Types ### Route Moas Response - `RouteMoasResponse` - `meta: Meta` - `data_time: string` - `query_time: string` - `total_peers: number` - `moas: Array` - `origins: Array` - `origin: number` - `peer_count: number` - `rpki_validation: string` - `prefix: string` ### Route Pfx2as Response - `RoutePfx2asResponse` - `meta: Meta` - `data_time: string` - `query_time: string` - `total_peers: number` - `prefix_origins: Array` - `origin: number` - `peer_count: number` - `prefix: string` - `rpki_validation: string` ### Route Stats Response - `RouteStatsResponse` - `meta: Meta` - `data_time: string` - `query_time: string` - `total_peers: number` - `stats: Stats` - `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` ### Route Ases Response - `RouteAsesResponse` - `asns: Array` - `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: 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. ### Route Realtime Response - `RouteRealtimeResponse` - `meta: Meta` - `asn_info: Array` - `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: 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` - `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` - `as_path: Array` AS-level path for this route, from collector to origin. - `collector: string` Public collector ID for this route. - `communities: Array` BGP community values. - `prefix: string` IP prefix of this query. - `timestamp: string` Latest timestamp of change for this route. # IPs ## Get announced IP address space time series `client.radar.bgp.ips.timeseries(IPTimeseriesParamsquery?, RequestOptionsoptions?): IPTimeseriesResponse` **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. ### Parameters - `query: IPTimeseriesParams` - `asn?: Array` Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356. - `dateEnd?: Array` End of the date range (inclusive). - `dateRange?: Array` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `dateStart?: Array` Start of the date range. - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `includeDelay?: boolean` Includes data delay meta information. - `ipVersion?: Array<"IPv4" | "IPv6">` Filters results by IP version (Ipv4 vs. IPv6). - `"IPv4"` - `"IPv6"` - `location?: Array` Filters results by location. Specify a comma-separated list of alpha-2 location codes. - `name?: Array` Array of names used to label the series in the response. ### Returns - `IPTimeseriesResponse` - `meta: Meta` 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](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidenceInfo: ConfidenceInfo` - `annotations: Array` - `dataSource: "ALL" | "AI_BOTS" | "AI_GATEWAY" | 22 more` Data source for annotations. - `"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` - `eventType: "EVENT" | "GENERAL" | "OUTAGE" | 3 more` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `isInstantaneous: boolean` Whether event is a single point in time or a time range. - `linkedUrl: string` - `startDate: string` - `level: number` Provides an indication of how much confidence Cloudflare has in the data. - `dateRange: Array` - `endTime: string` Adjusted end of date range. - `startTime: string` Adjusted start of date range. - `lastUpdated: string` Timestamp of the last dataset update. - `normalization: "PERCENTAGE" | "MIN0_MAX" | "MIN_MAX" | 5 more` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: Array` Measurement units for the results. - `name: string` - `value: string` - `delay?: Delay` - `asn_data: ASNData` - `delaySecs: number` - `delayStr: string` - `healthy: boolean` - `latest: Latest` - `entries_count: number` - `path: string` - `timestamp: number` - `country_data: CountryData` - `delaySecs: number` - `delayStr: string` - `healthy: boolean` - `latest: Latest` - `count: number` - `timestamp: number` - `healthy: boolean` - `nowTs: number` - `serie_0: Serie0` - `ipv4: Array` - `ipv6: Array` - `timestamps: Array` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.ips.timeseries(); console.log(response.meta); ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ], "delay": { "asn_data": { "delaySecs": 0, "delayStr": "delayStr", "healthy": true, "latest": { "entries_count": 0, "path": "path", "timestamp": 0 } }, "country_data": { "delaySecs": 0, "delayStr": "delayStr", "healthy": true, "latest": { "count": 0, "timestamp": 0 } }, "healthy": true, "nowTs": 0 } }, "serie_0": { "ipv4": [ "10" ], "ipv6": [ "10" ], "timestamps": [ "2019-12-27T18:11:19.117Z" ] } }, "success": true } ``` ## Domain Types ### IP Timeseries Response - `IPTimeseriesResponse` - `meta: Meta` 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](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidenceInfo: ConfidenceInfo` - `annotations: Array` - `dataSource: "ALL" | "AI_BOTS" | "AI_GATEWAY" | 22 more` Data source for annotations. - `"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` - `eventType: "EVENT" | "GENERAL" | "OUTAGE" | 3 more` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `isInstantaneous: boolean` Whether event is a single point in time or a time range. - `linkedUrl: string` - `startDate: string` - `level: number` Provides an indication of how much confidence Cloudflare has in the data. - `dateRange: Array` - `endTime: string` Adjusted end of date range. - `startTime: string` Adjusted start of date range. - `lastUpdated: string` Timestamp of the last dataset update. - `normalization: "PERCENTAGE" | "MIN0_MAX" | "MIN_MAX" | 5 more` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: Array` Measurement units for the results. - `name: string` - `value: string` - `delay?: Delay` - `asn_data: ASNData` - `delaySecs: number` - `delayStr: string` - `healthy: boolean` - `latest: Latest` - `entries_count: number` - `path: string` - `timestamp: number` - `country_data: CountryData` - `delaySecs: number` - `delayStr: string` - `healthy: boolean` - `latest: Latest` - `count: number` - `timestamp: number` - `healthy: boolean` - `nowTs: number` - `serie_0: Serie0` - `ipv4: Array` - `ipv6: Array` - `timestamps: Array` # RPKI # ASPA ## Get ASPA objects snapshot `client.radar.bgp.rpki.aspa.snapshot(ASPASnapshotParamsquery?, RequestOptionsoptions?): ASPASnapshotResponse` **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. ### Parameters - `query: ASPASnapshotParams` - `customerAsn?: number` Filter by customer ASN (the ASN publishing the ASPA object). - `date?: string` Filters results by the specified datetime (ISO 8601). - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `includeAsnInfo?: boolean` Include ASN metadata (name, country) in response. - `providerAsn?: number` Filter by provider ASN (an authorized upstream provider in ASPA objects). ### Returns - `ASPASnapshotResponse` - `asnInfo: ASNInfo` - `"13335": _13335` - `asn: number` ASN number. - `country: string` Alpha-2 country code. - `name: string` AS name. - `aspaObjects: Array` - `customerAsn: number` The customer ASN publishing the ASPA object. - `providers: Array` - `meta: Meta` - `dataTime: string` Timestamp of the underlying data. - `queryTime: string` Timestamp when the query was executed. - `totalCount: number` Total number of ASPA objects. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.rpki.aspa.snapshot(); console.log(response.asnInfo); ``` #### Response ```json { "result": { "asnInfo": { "13335": { "asn": 0, "country": "country", "name": "name" } }, "aspaObjects": [ { "customerAsn": 0, "providers": [ 0 ] } ], "meta": { "dataTime": "2019-12-27T18:11:19.117Z", "queryTime": "2019-12-27T18:11:19.117Z", "totalCount": 0 } }, "success": true } ``` ## Get ASPA changes over time `client.radar.bgp.rpki.aspa.changes(ASPAChangesParamsquery?, RequestOptionsoptions?): ASPAChangesResponse` **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. ### Parameters - `query: ASPAChangesParams` - `asn?: number` Filter changes involving this ASN (as customer or provider). - `dateEnd?: string` End of the date range (inclusive). - `dateStart?: string` Start of the date range (inclusive). - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `includeAsnInfo?: boolean` Include ASN metadata (name, country) in response. ### Returns - `ASPAChangesResponse` - `asnInfo: ASNInfo` - `"13335": _13335` - `asn: number` ASN number. - `country: string` Alpha-2 country code. - `name: string` AS name. - `changes: Array` - `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. - `entries: Array` - `customerAsn: number` The customer ASN affected. - `providers: Array` - `type: "CustomerAdded" | "CustomerRemoved" | "ProvidersAdded" | "ProvidersRemoved"` - `"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: string` Timestamp of the underlying data. - `queryTime: string` Timestamp when the query was executed. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.rpki.aspa.changes(); console.log(response.asnInfo); ``` #### Response ```json { "result": { "asnInfo": { "13335": { "asn": 0, "country": "country", "name": "name" } }, "changes": [ { "customersAdded": 0, "customersRemoved": 0, "date": "2019-12-27T18:11:19.117Z", "entries": [ { "customerAsn": 0, "providers": [ 0 ], "type": "CustomerAdded" } ], "providersAdded": 0, "providersRemoved": 0, "totalCount": 0 } ], "meta": { "dataTime": "2019-12-27T18:11:19.117Z", "queryTime": "2019-12-27T18:11:19.117Z" } }, "success": true } ``` ## Get ASPA count time series `client.radar.bgp.rpki.aspa.timeseries(ASPATimeseriesParamsquery?, RequestOptionsoptions?): ASPATimeseriesResponse` **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. ### Parameters - `query: ASPATimeseriesParams` - `dateEnd?: string` End of the date range (inclusive). - `dateStart?: string` Start of the date range (inclusive). - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `location?: Array` Filters results by location. Specify a comma-separated list of alpha-2 location codes. - `name?: Array` Array of names used to label the series in the response. - `rir?: Array<"RIPE_NCC" | "ARIN" | "APNIC" | 2 more>` Filter by Regional Internet Registry (RIR). Multiple RIRs generate multiple series. - `"RIPE_NCC"` - `"ARIN"` - `"APNIC"` - `"LACNIC"` - `"AFRINIC"` ### Returns - `ASPATimeseriesResponse` - `meta: Meta` - `dataTime: string` Timestamp of the underlying data. - `queryTime: string` Timestamp when the query was executed. - `serie_0: Serie0` - `timestamps: Array` - `values: Array` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.bgp.rpki.aspa.timeseries(); console.log(response.meta); ``` #### Response ```json { "result": { "meta": { "dataTime": "2019-12-27T18:11:19.117Z", "queryTime": "2019-12-27T18:11:19.117Z" }, "serie_0": { "timestamps": [ "2019-12-27T18:11:19.117Z" ], "values": [ "10" ] } }, "success": true } ``` ## Domain Types ### ASPA Snapshot Response - `ASPASnapshotResponse` - `asnInfo: ASNInfo` - `"13335": _13335` - `asn: number` ASN number. - `country: string` Alpha-2 country code. - `name: string` AS name. - `aspaObjects: Array` - `customerAsn: number` The customer ASN publishing the ASPA object. - `providers: Array` - `meta: Meta` - `dataTime: string` Timestamp of the underlying data. - `queryTime: string` Timestamp when the query was executed. - `totalCount: number` Total number of ASPA objects. ### ASPA Changes Response - `ASPAChangesResponse` - `asnInfo: ASNInfo` - `"13335": _13335` - `asn: number` ASN number. - `country: string` Alpha-2 country code. - `name: string` AS name. - `changes: Array` - `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. - `entries: Array` - `customerAsn: number` The customer ASN affected. - `providers: Array` - `type: "CustomerAdded" | "CustomerRemoved" | "ProvidersAdded" | "ProvidersRemoved"` - `"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: string` Timestamp of the underlying data. - `queryTime: string` Timestamp when the query was executed. ### ASPA Timeseries Response - `ASPATimeseriesResponse` - `meta: Meta` - `dataTime: string` Timestamp of the underlying data. - `queryTime: string` Timestamp when the query was executed. - `serie_0: Serie0` - `timestamps: Array` - `values: Array`