Cloudflare API: List internet outages
Lists recent and ongoing internet outages from Cloudflare Radar's Outage Center, optionally for one country. Countries and scope are null when the Outage Center does not identify them.
Unofficial. Not affiliated with or endorsed by Cloudflare.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Days optional
days Number of days to look back, such as 7.
7
Whole number from 1 to 90. Default
7.- Country optional
country Country name or two-letter code, such as Iraq or IQ; omit for all countries.
(default)
- Max Results optional
max_results Maximum outages to return, such as 50.
50 (default)
Whole number from 1 to 200.
Input as JSON
{ "days": 7}Output
{ "outages": [ { "end": "2026-09-28T03:45:00+00:00", "cause": "Government directed", "scope": null, "start": "2026-09-28T03:30:00+00:00", "country": "Iraq", "ongoing": "no", "radar_link": "https://radar.cloudflare.com/traffic/iq?dateStart=2026-09-28&dateEnd=2026-09-28" , "affected_region_or_network": "AS199739, AS203214, AS51684, AS58322, AS59588" }, { "end": "2026-09-28T00:45:00+00:00", "cause": "Unknown", "scope": null, "start": "2026-09-27T22:00:00+00:00", "country": null, "ongoing": "no", "radar_link": "https://radar.cloudflare.com/traffic/as206065?dateStart=2026-09-27&dateEnd=2026-09-28" , "affected_region_or_network": "AS206065" }, { "end": "2026-09-26T03:45:00+00:00", "cause": "Government directed", "scope": null, "start": "2026-09-26T03:30:00+00:00", "country": "Iraq", "ongoing": "no", "radar_link": "https://radar.cloudflare.com/traffic/iq?dateStart=2026-09-26&dateEnd=2026-09-26" , "affected_region_or_network": "AS199739, AS203214, AS51684, AS58322, AS59588" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"radar.cloudflare.com/list_internet_outages","input":{"days":7}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "radar.cloudflare.com/list_internet_outages" , "input": { "days": 7 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "radar.cloudflare.com/list_internet_outages" , "input": { "days": 7 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run radar.cloudflare.com/list_internet_outages# with {"days":7}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "properties": { "days": { "type": "integer", "default": 7, "maximum": 90, "minimum": 1, "description": "Number of days to look back, such as 7." }, "country": { "type": "string", "default": "", "description": "Country name or two-letter code, such as Iraq or IQ; omit for all countries." }, "max_results": { "type": "integer", "default": 50, "maximum": 200, "minimum": 1, "description": "Maximum outages to return, such as 50." } }}Output schema
{ "type": "object", "required": [ "outages" ], "properties": { "outages": { "type": "array", "items": { "type": "object", "required": [ "country", "affected_region_or_network", "start", "end", "ongoing", "cause", "scope", "radar_link" ], "properties": { "end": { "type": [ "string", "null" ], "description": "Outage end, or null while ongoing." }, "cause": { "type": [ "string", "null" ], "description": "Reported cause in words." }, "scope": { "type": [ "string", "null" ], "description": "Reported scope when provided." }, "start": { "type": "string", "description": "Outage start, ISO 8601 with UTC offset." }, "country": { "type": [ "string", "null" ], "description": "Affected country or countries, if specified." }, "ongoing": { "enum": [ "yes", "no" ], "type": "string" }, "radar_link": { "type": "string", "description": "Cloudflare Radar traffic chart for the outage." }, "affected_region_or_network": { "type": [ "string", "null" ], "description": "Affected networks, if shown." } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
radar.cloudflare.com/list_internet_outages- Returns
- country, affected networks, start, end, ongoing, cause, scope, Radar link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method radar.cloudflare.com/list_internet_outages with the inputs above.
Ask your agent
- Are there any internet outages going on in Iran right now? Check the past 3 days.
- Pull Cloudflare Radar's outage list for the last 30 days, all countries, up to 100 entries, with cause and affected networks.
- Which countries had internet shutdowns or connectivity disruptions in the past week, and are any still ongoing?
- I'm writing a report on network disruptions in Pakistan — list every outage from the last 90 days with start/end times and cause.
- Show me the 10 most recent internet outages logged on cloudflare.com for Venezuela (VE) over the last two weeks.
See more
All Cloudflare methodsGets a website's worldwide popularity bucket, exact rank when shown, categories, and recent weekly rank history from Cloudflare Radar. Historical rank points are available only for top-100 domains; other ranked domains have an empty history.
radar.cloudflare.com/get_domain_rankList EONET natural events with latest observations in the past number of days, most recent first. A country or region filter matches reported event locations against mapped boundaries; locations and ongoing status are approximate, and not all events have a reported size or strength.
nasa.gov/list_natural_eventsChecks whether an app or website has current problems in a country on Downdetector: its status, reports in the latest 15-minute interval, the usual report count, the most reported problem types and the most affected locations when shown. The service must have a public Downdetector page in that country.
downdetector.com/check_service_statusLists NOAA space weather alerts, warnings, watches and summaries issued in the last 1 to 7 days, newest first, with validity times and NOAA scale levels when the message gives them.
swpc.noaa.gov/list_space_weather_alertsChecks today's delayed and cancelled departures and arrivals at an airport on FlightAware, with current weather and any reported FAA delay status. Delay averages and ground programs are returned only when FlightAware shows them; counts can be null when no statistics row is displayed.
flightaware.com/get_airport_delaysLists significant worldwide earthquakes for the past day, week, or month, newest first, with USGS PAGER alert levels and impact summaries when USGS provides them.
earthquake.usgs.gov/list_significant_earthquakesLists Similarweb's most visited websites for a category and country, with rankings and engagement figures for the reported month. Anonymous view limits may restrict results, especially for country rankings.
similarweb.com/list_top_websitesLists active InciWeb fire incidents in a US state, newest table updates first, with size, containment, location, cause, dates and any evacuation or closure note. Prescribed fires and other fire-related incidents can appear.
inciweb.wildfire.gov/list_active_wildfires