{"openapi":"3.1.0","info":{"title":"Cloudflare Radar (BYOK) API","version":"0.1.0","description":"Cloudflare Radar (BYOK) lets an AI assistant read your own Cloudflare Radar data through the Cloudflare Radar API with a key you supply (Cloudflare API token with Account > Radar > Read). Read-only: 12 tools (list_traffic_anomalies, list_internet_outages, get_asn, list_asns, get_ip_details, get_domain_rank, list_top_domains, list_bgp_hijack_events, list_bgp_route_leaks, get_bgp_routing_stats,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-cloudflare-radar.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-cloudflare-radar/docs"},"termsOfService":"https://connectorbay.com/byok-cloudflare-radar/terms"},"servers":[{"url":"https://byok-cloudflare-radar.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-cloudflare-radar/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_traffic_anomalies":{"post":{"operationId":"list_traffic_anomalies","summary":"List the latest Internet traffic anomalies detected by Cloudflare, with the affected country, network (AS) or origin, st","description":"List the latest Internet traffic anomalies detected by Cloudflare, with the affected country, network (AS) or origin, start and end time and verification status. Use for \"Were there Internet traffic anomalies in Portugal in the last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Maximum number of items to return.","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Number of items to skip before the first result.","title":"Offset"},"date_range":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Relative date range ending now, for example 1d, 7d, 14d or 28d.","title":"Date Range"},"status":{"anyOf":[{"enum":["VERIFIED","UNVERIFIED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only VERIFIED or UNVERIFIED anomalies.","title":"Status"},"data_source":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only anomalies seen in this data source, for example HTTP, BGP or DNS.","title":"Data Source"},"asn":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only results for this Autonomous System Number, for example 13335.","title":"Asn"},"location":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only results for this location (alpha-2 country code), for example PT.","title":"Location"}},"title":"list_traffic_anomaliesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_internet_outages":{"post":{"operationId":"list_internet_outages","summary":"List recent Internet outages and anomalies with cause, type, affected countries and networks, description and time span.","description":"List recent Internet outages and anomalies with cause, type, affected countries and networks, description and time span. Use for \"Which Internet outages happened recently and what caused them\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Maximum number of items to return.","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Number of items to skip before the first result.","title":"Offset"},"date_range":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Relative date range ending now, for example 1d, 7d, 14d or 28d.","title":"Date Range"},"outage_type":{"anyOf":[{"enum":["NATIONWIDE","REGIONAL","NETWORK","PLATFORM"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this outage type.","title":"Outage Type"},"outage_cause":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this cause, for example CABLE_CUT, POWER_OUTAGE, GOVERNMENT_DIRECTED or CYBERATTACK.","title":"Outage Cause"},"asn":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only results for this Autonomous System Number, for example 13335.","title":"Asn"},"location":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only results for this location (alpha-2 country code), for example PT.","title":"Location"}},"title":"list_internet_outagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_asn":{"post":{"operationId":"get_asn","summary":"Get details of one Autonomous System (network): name, organization, country, website, estimated users and related networ","description":"Get details of one Autonomous System (network): name, organization, country, website, estimated users and related networks. Use for \"What network is AS13335 and how many users does it have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asn":{"description":"Autonomous System Number, for example 13335.","title":"Asn","type":"integer"}},"required":["asn"],"title":"get_asnArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_asns":{"post":{"operationId":"list_asns","summary":"List Autonomous Systems with name, organization, country, website and estimated users, ordered by ASN or population. Use","description":"List Autonomous Systems with name, organization, country, website and estimated users, ordered by ASN or population. Use for \"Which are the biggest networks in Portugal by users\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Maximum number of items to return.","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Number of items to skip before the first result.","title":"Offset"},"location":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only ASes registered in this country (alpha-2 code).","title":"Location"},"order_by":{"anyOf":[{"enum":["ASN","POPULATION"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by ASN or POPULATION.","title":"Order By"}},"title":"list_asnsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_ip_details":{"post":{"operationId":"get_ip_details","summary":"Look up an IP address: the network (ASN) and organization announcing it, plus its country and IP version. Use for \"Which","description":"Look up an IP address: the network (ASN) and organization announcing it, plus its country and IP version. Use for \"Which network owns the IP 1.1.1.1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ip":{"description":"IPv4 or IPv6 address.","maxLength":200,"title":"Ip","type":"string"}},"required":["ip"],"title":"get_ip_detailsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_domain_rank":{"post":{"operationId":"get_domain_rank","summary":"Get the Cloudflare Radar popularity rank of one domain with its content categories and optionally the top locations. Use","description":"Get the Cloudflare Radar popularity rank of one domain with its content categories and optionally the top locations. Use for \"How popular is example.com on Cloudflare Radar\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Domain name, for example example.com.","maxLength":200,"title":"Domain","type":"string"},"ranking_type":{"anyOf":[{"enum":["POPULAR","TRENDING_RISE","TRENDING_STEADY"],"type":"string"},{"type":"null"}],"default":null,"description":"POPULAR, TRENDING_RISE or TRENDING_STEADY.","title":"Ranking Type"},"include_top_locations":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Also return the locations where the domain ranks best.","title":"Include Top Locations"}},"required":["domain"],"title":"get_domain_rankArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_top_domains":{"post":{"operationId":"list_top_domains","summary":"List the most popular or trending domains on Cloudflare Radar with rank, categories and rank change. Use for \"Which doma","description":"List the most popular or trending domains on Cloudflare Radar with rank, categories and rank change. Use for \"Which domains are trending up on the Internet right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Maximum number of items to return.","title":"Limit"},"ranking_type":{"anyOf":[{"enum":["POPULAR","TRENDING_RISE","TRENDING_STEADY"],"type":"string"},{"type":"null"}],"default":null,"description":"POPULAR, TRENDING_RISE or TRENDING_STEADY.","title":"Ranking Type"}},"title":"list_top_domainsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_bgp_hijack_events":{"post":{"operationId":"list_bgp_hijack_events","summary":"List detected BGP hijack events with hijacker and victim ASNs, prefixes, confidence score, duration and tags. Use for \"W","description":"List detected BGP hijack events with hijacker and victim ASNs, prefixes, confidence score, duration and tags. Use for \"Were there BGP hijacks involving AS13335 this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page.","title":"Per Page"},"involved_asn":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Events where this AS is hijacker or victim.","title":"Involved Asn"},"hijacker_asn":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Events with this hijacker AS.","title":"Hijacker Asn"},"victim_asn":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Events with this victim AS.","title":"Victim Asn"},"involved_country":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Events involving this country (alpha-2 code).","title":"Involved Country"},"min_confidence":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Minimum confidence score (1-4 low, 5-7 mid, 8+ high).","title":"Min Confidence"},"date_range":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Relative date range ending now, for example 1d, 7d, 14d or 28d.","title":"Date Range"},"sort_by":{"anyOf":[{"enum":["ID","TIME","CONFIDENCE"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by ID, TIME or CONFIDENCE.","title":"Sort By"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Sort Order"}},"title":"list_bgp_hijack_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_bgp_route_leaks":{"post":{"operationId":"list_bgp_route_leaks","summary":"List detected BGP route leak events with the leaking ASN, number of prefixes, peers and origins, countries and timing. U","description":"List detected BGP route leak events with the leaking ASN, number of prefixes, peers and origins, countries and timing. Use for \"Were there BGP route leaks recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Items per page.","title":"Per Page"},"leak_asn":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Events with this leaking AS.","title":"Leak Asn"},"involved_asn":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Events where this AS causes or is affected by a leak.","title":"Involved Asn"},"involved_country":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Events involving this country (alpha-2 code).","title":"Involved Country"},"date_range":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Relative date range ending now, for example 1d, 7d, 14d or 28d.","title":"Date Range"},"sort_by":{"anyOf":[{"enum":["ID","LEAKS","PEERS","PREFIXES","ORIGINS","TIME"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by ID, LEAKS, PEERS, PREFIXES, ORIGINS or TIME.","title":"Sort By"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Sort Order"}},"title":"list_bgp_route_leaksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_bgp_routing_stats":{"post":{"operationId":"get_bgp_routing_stats","summary":"Get global BGP routing table statistics: routes, prefixes and origins for IPv4 and IPv6, with RPKI valid, invalid and un","description":"Get global BGP routing table statistics: routes, prefixes and origins for IPv4 and IPv6, with RPKI valid, invalid and unknown counts. Optionally for one AS. Use for \"How many BGP routes are RPKI invalid right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asn":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only results for this Autonomous System Number, for example 13335.","title":"Asn"}},"title":"get_bgp_routing_statsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_speed_summary":{"post":{"operationId":"get_speed_summary","summary":"Get the global Internet speed test summary: download and upload bandwidth, idle and loaded latency, jitter and packet lo","description":"Get the global Internet speed test summary: download and upload bandwidth, idle and loaded latency, jitter and packet loss. Use for \"What is the average Internet download speed worldwide\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date_range":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Relative date range ending now, for example 1d, 7d, 14d or 28d.","title":"Date Range"}},"title":"get_speed_summaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tlds":{"post":{"operationId":"list_tlds","summary":"List top-level domains with type (generic, country code and so on) and the organization managing each. Use for \"Who mana","description":"List top-level domains with type (generic, country code and so on) and the organization managing each. Use for \"Who manages the .pt top-level domain\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum number of items to return.","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Number of items to skip before the first result.","title":"Offset"},"tld":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated TLDs to look up, for example pt,com.","title":"Tld"},"tld_type":{"anyOf":[{"enum":["GENERIC","COUNTRY_CODE","GENERIC_RESTRICTED","INFRASTRUCTURE","SPONSORED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this TLD type.","title":"Tld Type"},"tld_manager":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only TLDs run by this manager.","title":"Tld Manager"}},"title":"list_tldsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}