# GDACS

> Watch the world's natural disasters through GDACS, the Global Disaster Alert and Coordination System run by the European Commission's Joint Research Centre and the United Nations. It monitors earthquakes, tropical cyclones, floods, volcanoes, wildfires and droughts worldwide and rates each one green, orange or red for the humanitarian impact it expects - so a workflow can tell a magnitude 7 under an empty ocean from a magnitude 6 under a city. See what is happening right now, search the archive by hazard, severity, dates and country, check whether a specific address sits inside a disaster's mapped area, read the details and the news coverage, measure how far an event reaches, and look up a country's counted disaster history back to 1900. No API key, no sign-up and no quota.

App · Weather & Space · 10 actions. Web page: https://docs.lodol.com/docs/integrations/gdacs

## Actions

### Check service status

Check whether GDACS is answering, and how quickly. This is the one action that reports a problem as a value instead of failing the step, so a scheduled workflow can decide what to do about it - skip today's digest, wait, or say the data is stale rather than dying halfway through. Being rate limited is reported separately from being down.

**Inputs**: None.

**Outputs**

- `active_disasters` (number): How many alerts were open when it answered.
- `message` (text): One sentence saying what the answer was.
- `online` (true/false): Whether GDACS answered properly. Branch on this.
- `rate_limited` (true/false)
- `reachable` (true/false): Whether it answered at all, which separates a network problem from a service problem.
- `response_time_ms` (number)
- `status_code` (number)

**Example output**

```json
{
  "active_disasters": 100,
  "message": "GDACS is up, with 100 active disaster alerts.",
  "online": true,
  "rate_limited": false,
  "reachable": true,
  "response_time_ms": 412.5,
  "status_code": 200
}
```

### Count disasters

Count the disasters in a window, split by hazard and by alert level, without fetching any of them. One small answer however big the number, which makes it the cheap way for a schedule to ask 'was there anything serious?' before doing the expensive part - and the way to size a search before running it. There is deliberately no country here: GDACS can only narrow a count by matching a country's name as text, which would count Nigeria's floods as Niger's, and a wrong total is worse than none. Search disasters filters countries exactly and reports how many it found.

**Inputs**

- Hazards (`hazard_types`, list): Which hazards to include. Leave every box clear to include all six, which is what most workflows want. One or more of: `EQ` (Earthquake), `TC` (Tropical cyclone), `FL` (Flood), `VO` (Volcano), `WF` (Wildfire), `DR` (Drought).
- Alert levels (`alert_levels`, list): Which alert levels to include. The level is GDACS's estimate of humanitarian impact, not of size: a magnitude 7 under an empty ocean is green and a magnitude 6 under a city is red, so this is the filter that decides whether a result is worth waking someone for. Leave every box clear to include all three. One or more of: `Green` (Green - Little or no humanitarian impact expected.), `Orange` (Orange - Moderate humanitarian impact expected; a national response is likely.), `Red` (Red - Severe humanitarian impact expected; international help is likely needed.).
- From (`from_date`, date): Only include disasters that started on or after this date.
- To (`to_date`, date): Only include disasters that started on or before this date.

**Outputs**

- `alert_levels` (list): The alert levels filtered to.
- `by_alert_level` (list): The same total split into green, orange and red.
- `by_hazard` (list): The same total split by hazard, busiest first.
- `from_date` (text)
- `hazard_types` (list): The hazards filtered to; empty means all six.
- `to_date` (text)
- `total` (number): How many disasters matched, in total.

**Example output**

```json
{
  "alert_levels": [
    "Green",
    "Orange",
    "Red"
  ],
  "by_alert_level": [
    {
      "alert_level": "Green",
      "total": 2899
    },
    {
      "alert_level": "Orange",
      "total": 16
    },
    {
      "alert_level": "Red",
      "total": 4
    }
  ],
  "by_hazard": [
    {
      "hazard": "Wildfire",
      "total": 2072
    },
    {
      "hazard": "Earthquake",
      "total": 713
    },
    {
      "hazard": "Flood",
      "total": 95
    },
    {
      "hazard": "Tropical cyclone",
      "total": 25
    },
    {
      "hazard": "Drought",
      "total": 10
    },
    {
      "hazard": "Volcano",
      "total": 4
    }
  ],
  "from_date": "2026-08-01",
  "hazard_types": [],
  "to_date": "2026-09-12",
  "total": 2919
}
```

### Find disasters affecting a place

Find the disasters whose affected area covers a place - an office, a warehouse, a supplier, a customer's address - nearest first, each with how far away its centre is and in which direction. GDACS does the covering test itself against the real mapped shapes: a flood's inundated area, an earthquake's shaking contours, a cyclone's wind swath. That is the difference between 'an earthquake happened 200 km away' and 'this site is inside the strong-shaking zone'. 'is_affected' is the single true or false to branch on. Testing a place against every mapped shape is real work, so this one takes a few seconds where the others take under one.

**Inputs**

- Latitude (`latitude`, number, required): The place's latitude, between -90 and 90. From -90 to 90.
- Longitude (`longitude`, number, required): The place's longitude, between -180 and 180. From -180 to 180.
- Radius (km) (`radius_km`, number): Widen the question from the exact point to everything within this many kilometres of it. Leave it empty to ask about the point itself, which is the precise question: is this address inside an affected area? From 0 to 2000.0.
- Days to look back (`days`, number): How far back to look, up to the 30 days GDACS keeps for this. Defaults to 7. Match it to how often the workflow runs, with room to spare, so nothing is missed because a run was late. From 1 to 30.
- Hazards (`hazard_types`, list): Which hazards to include. Leave every box clear to include all six, which is what most workflows want. One or more of: `EQ` (Earthquake), `TC` (Tropical cyclone), `FL` (Flood), `VO` (Volcano), `WF` (Wildfire), `DR` (Drought).
- Number of disasters (`limit`, number): How many disasters to return, after the filters and the ordering. Defaults to 50. From 1 to 500.

**Outputs**

- `days` (number)
- `disaster_count` (number)
- `disasters` (list)
- `hazard_types` (list): The hazards filtered to; empty means all six.
- `highest_alert_level` (text)
- `is_affected` (true/false): Whether any disaster's area covers that place.
- `latitude` (number)
- `longitude` (number)
- `radius_km` (number)

**Example output**

```json
{
  "days": 7,
  "disaster_count": 1,
  "disasters": [
    {
      "alert_level": "Orange",
      "alert_meaning": "Moderate humanitarian impact expected; a national response is likely.",
      "countries": [
        "China"
      ],
      "country": "China",
      "country_codes": [
        "CHN"
      ],
      "direction": "north",
      "distance_km": 0.0,
      "ended_at": "2026-09-07T01:00:00Z",
      "episode_id": 17,
      "event_id": 1104081,
      "event_name": null,
      "glide_number": "FL-2026-000148-CHN",
      "hazard": "Flood",
      "hazard_code": "FL",
      "is_ongoing": true,
      "is_provisional": false,
      "latitude": 28.0,
      "longitude": 116.0,
      "report_url": "https://www.gdacs.org/report.aspx?eventid=1104081&episodeid=17&eventtype=FL",
      "severity": "Magnitude 0",
      "severity_unit": null,
      "severity_value": 0.0,
      "source": "GLOFAS",
      "started_at": "2026-07-31T01:00:00Z",
      "summary": "Orange Flood in China from: 31 Jul 2026 to: 07 Sep 2026.",
      "title": "Flood in China",
      "updated_at": "2026-09-06T06:23:52Z"
    }
  ],
  "hazard_types": [],
  "highest_alert_level": "Orange",
  "is_affected": true,
  "latitude": 29.2752,
  "longitude": 105.229,
  "radius_km": null
}
```

### Get a country's disaster history

Get a country's recorded natural disasters going back to 1900, with the deaths, the people affected and the damage in US dollars - and the totals across everything that matched. This is the counted record, from EM-DAT, rather than the live alerts: what a flood in this country has historically cost, which is the question behind siting a warehouse, pricing a risk or writing a country brief.

**Inputs**

- Country (`country`, text, required): Whose history to read. One of: `AFG` (Afghanistan), `ALB` (Albania), `DZA` (Algeria), `ASM` (American Samoa), `AND` (Andorra), `AGO` (Angola), `AIA` (Anguilla), `ATA` (Antarctica), `ATG` (Antigua and Barbuda), `ARG` (Argentina), and 234 more.
- Disaster types (`disaster_types`, list): Which kinds of disaster to include. Leave every box clear to include them all. One or more of: `Drought`, `Earthquake`, `Epidemic`, `Extreme temperature`, `Flood`, `Fog`, `Glacial lake outburst flood`, `Infestation`, `Mass movement (dry)` (Landslide (dry)), `Mass movement (wet)` (Landslide or mudslide), and 4 more.
- From (`from_date`, date): Only include disasters that started on or after this date.
- To (`to_date`, date): Only include disasters that started on or before this date.
- Number of disasters (`limit`, number): How many disasters to return, after the filters and the ordering. Defaults to 50. From 1 to 500.

**Outputs**

- `country` (text)
- `country_code` (text)
- `disaster_count` (number)
- `disaster_types` (list): The types filtered to; empty means all of them.
- `disasters` (list)
- `earliest_on` (text)
- `from_date` (text)
- `latest_on` (text)
- `to_date` (text)
- `total_affected` (number)
- `total_damage_usd` (number): Total recorded damage in US dollars. Only some disasters are ever costed, so this is a floor.
- `total_deaths` (number)
- `total_recorded` (number): How many records matched in total, however many the limit returned. The totals below cover all of them.

**Example output**

```json
{
  "country": "Bangladesh",
  "country_code": "BGD",
  "disaster_count": 1,
  "disaster_types": [
    "Flood"
  ],
  "disasters": [
    {
      "affected": 1280039,
      "country": "Bangladesh",
      "country_code": "BGD",
      "damage_usd": null,
      "deaths": 59,
      "disaster_type": "Flood",
      "ended_on": "2026-07-23",
      "homeless": null,
      "injured": 39,
      "latitude": null,
      "location": "Bandarban, Chattogram, Cox's Bazar, Khagrachhari and Rangamati",
      "longitude": null,
      "name": null,
      "record_id": "2026-0443-BGD",
      "started_on": "2026-07-05"
    }
  ],
  "earliest_on": "2000-09-08",
  "from_date": "2000-01-01",
  "latest_on": "2026-07-05",
  "to_date": null,
  "total_affected": 114807501,
  "total_damage_usd": 2296000000,
  "total_deaths": 3640,
  "total_recorded": 47
}
```

### Get active volcanoes

Get the volcanoes that have reported activity recently - ash plumes, sulphur dioxide, aviation advisories - most recently reported first. A volcano only becomes a GDACS alert once there is an eruption to alert on; this is the watch list underneath that, which is what aviation, shipping and travel workflows need before it gets that far.

**Inputs**

- Days to look back (`days`, number): How far back activity counts as recent. Defaults to 30 days; a shorter window is the ones restless right now. From 1 to 365.
- Number of volcanoes (`limit`, number): How many volcanoes to return, after the filters and the ordering. Defaults to 50. From 1 to 500.

**Outputs**

- `days` (number)
- `since` (text): The date the window starts, worked out from days.
- `total_active` (number): How many were active in the window before the limit, so a short list is never a mystery.
- `volcano_count` (number)
- `volcanoes` (list)

**Example output**

```json
{
  "days": 30,
  "since": "2026-08-13",
  "total_active": 31,
  "volcano_count": 1,
  "volcanoes": [
    {
      "activity_score": null,
      "advisory_count": 121,
      "ash_plume_height_m": 4800.0,
      "country": "Guatemala",
      "highest_eruption_index": 4,
      "last_reported_at": "2026-09-12T01:58:00Z",
      "latitude": 14.473,
      "longitude": -90.88,
      "name": "Fuego",
      "sulphur_dioxide_tonnes": null,
      "volcano_id": 342090,
      "volcano_type": "Stratovolcano(es)"
    }
  ]
}
```

### Get current disasters

Get every disaster GDACS has an open alert for right now - earthquakes, tropical cyclones, floods, volcanoes, wildfires and droughts together, most severe first. This is the action for anything on a schedule: it needs nothing filled in, and it reads the same live list GDACS's own app shows, so one request answers 'is anything happening?' for the whole world. Narrow it to the hazards you care about, or to orange and red only, if a green alert is not worth a message.

**Inputs**

- Hazards (`hazard_types`, list): Which hazards to include. Leave every box clear to include all six, which is what most workflows want. One or more of: `EQ` (Earthquake), `TC` (Tropical cyclone), `FL` (Flood), `VO` (Volcano), `WF` (Wildfire), `DR` (Drought).
- Alert level (`minimum_alert_level`, text): How serious an alert has to be to be included. GDACS rates likely humanitarian impact rather than size, so 'orange and red only' is the setting for a workflow that should message a person. Most alerts at any moment are green. One of: `Green` (Any alert), `Orange` (Orange and red only), `Red` (Red only). Default: `Green`.
- Number of disasters (`limit`, number): How many disasters to return, after the filters and the ordering. Defaults to 50. From 1 to 500.

**Outputs**

- `disaster_count` (number)
- `disasters` (list)
- `hazard_types` (list): The hazards filtered to; empty means all six.
- `highest_alert_level` (text): The most serious level in the result - the one value to branch a workflow on.
- `minimum_alert_level` (text)
- `total_active` (number): How many alerts were open before any filtering, so a short list is never a mystery.

**Example output**

```json
{
  "disaster_count": 2,
  "disasters": [
    {
      "alert_level": "Red",
      "alert_meaning": "Severe humanitarian impact expected; international help is likely needed.",
      "countries": [
        "Indonesia"
      ],
      "country": "Indonesia",
      "country_codes": [
        "IDN"
      ],
      "ended_at": "2026-08-14T21:58:21Z",
      "episode_id": 1725109,
      "event_id": 1558059,
      "event_name": null,
      "glide_number": "EQ-2026-000151-IDN",
      "hazard": "Earthquake",
      "hazard_code": "EQ",
      "is_ongoing": false,
      "is_provisional": false,
      "latitude": -8.3101,
      "longitude": 121.3517,
      "report_url": "https://www.gdacs.org/report.aspx?eventid=1558059&episodeid=1725109&eventtype=EQ",
      "severity": "Magnitude 7.7M, Depth:10km",
      "severity_unit": "M",
      "severity_value": 7.7,
      "source": "NEIC",
      "started_at": "2026-08-14T21:58:21Z",
      "summary": "Red M 7.7 Earthquake in Indonesia at: 14 Aug 2026 21:58:21.",
      "title": "Earthquake in Indonesia",
      "updated_at": "2026-08-15T02:05:19Z"
    },
    {
      "alert_level": "Orange",
      "alert_meaning": "Moderate humanitarian impact expected; a national response is likely.",
      "countries": [
        "China"
      ],
      "country": "China",
      "country_codes": [
        "CHN"
      ],
      "ended_at": "2026-09-07T01:00:00Z",
      "episode_id": 17,
      "event_id": 1104081,
      "event_name": null,
      "glide_number": "FL-2026-000148-CHN",
      "hazard": "Flood",
      "hazard_code": "FL",
      "is_ongoing": true,
      "is_provisional": false,
      "latitude": 28.0,
      "longitude": 116.0,
      "report_url": "https://www.gdacs.org/report.aspx?eventid=1104081&episodeid=17&eventtype=FL",
      "severity": "Magnitude 0",
      "severity_unit": null,
      "severity_value": 0.0,
      "source": "GLOFAS",
      "started_at": "2026-07-31T01:00:00Z",
      "summary": "Orange Flood in China from: 31 Jul 2026 to: 07 Sep 2026.",
      "title": "Flood in China",
      "updated_at": "2026-09-06T06:23:52Z"
    }
  ],
  "hazard_types": [],
  "highest_alert_level": "Red",
  "minimum_alert_level": "Green",
  "total_active": 100
}
```

### Get disaster details

Get everything GDACS holds on one disaster: where and when, how big, how many people it exposed, what has actually been reported on the ground - deaths, displacement, evacuations - and a map image to put in a message. Use it to fill out an alert an earlier step found, or to re-read an event someone linked to; a GDACS report link can be pasted straight into the ID.

**Inputs**

- Hazard (`hazard_type`, text, required): Which hazard the event is. An ID only identifies an event together with its hazard - there is an earthquake 1104081 and a flood 1104081 - so this has to match the event you mean. Every disaster returned anywhere here carries its own hazard. One of: `EQ` (Earthquake), `TC` (Tropical cyclone), `FL` (Flood), `VO` (Volcano), `WF` (Wildfire), `DR` (Drought).
- Event ID (`event_id`, text, required): The GDACS event ID, which every disaster returned here carries. A link to the event's GDACS report works too, so a report someone sent you can be pasted straight in.

**Outputs**

- `alert_level` (text): Green, Orange or Red - the expected humanitarian impact.
- `alert_meaning` (text): What that colour means, in words, for putting in a message.
- `countries` (list): Every country the event is recorded against.
- `country` (text): Where GDACS places the event, in its own words.
- `country_codes` (list): The same countries as ISO three-letter codes.
- `depth_km` (number): How deep the earthquake was. A shallow one shakes far harder than a deep one of the same magnitude.
- `ended_at` (text): When it ended, in UTC. The same as the start for an instant event like an earthquake, and the latest update for one still running.
- `episode_id` (number): Which update of the event this is. A cyclone gets a new episode with every forecast; an earthquake usually has one.
- `eruption_details` (text): What the volcano is doing, for volcanoes.
- `event_id` (number): The event's GDACS ID, unique within its hazard.
- `event_name` (text): The name, where it has one - cyclones do, earthquakes do not.
- `exposure_summary` (text): That estimate in words, such as '20 thousand (in MMI>=VII)'.
- `glide_number` (text): The international GLIDE identifier, where one has been assigned - how relief agencies refer to the same disaster.
- `hazard` (text): Earthquake, Tropical cyclone, Flood, Volcano, Wildfire or Drought.
- `hazard_code` (text): GDACS's two-letter code for the hazard, which its own links use.
- `is_ongoing` (true/false): Whether GDACS still counts this as an active alert.
- `is_provisional` (true/false): Whether this is a first automatic estimate that may still be revised or withdrawn.
- `latitude` (number)
- `longitude` (number)
- `magnitude` (number): The earthquake's magnitude, for earthquakes.
- `map_image_url` (text): A map of the event, ready to put in a message.
- `news_url` (text)
- `population_exposed` (number): How many people GDACS estimates were exposed. Modelled from population data, not counted.
- `report_url` (text): The event's page on gdacs.org, for a person to open.
- `reported_impact` (list): What has been reported from the ground - the only figures here that were counted rather than modelled. Empty until reports come in, which for a new event means for a while.
- `severity` (text): The size in the hazard's own terms, such as 'Magnitude 7.7M, Depth:10km' or 'Tropical Storm (maximum wind speed of 130 km/h)'.
- `severity_unit` (text): What that number is in - M, km/h, ha or km2.
- `severity_value` (number): The same size as a number, to compare against a threshold.
- `source` (text): Which monitoring network detected it, such as NEIC or GLOFAS.
- `started_at` (text): When it began, in UTC.
- `summary` (text): One sentence: the level, the size, the place and the time.
- `title` (text): For example 'Earthquake in China'.
- `updated_at` (text): When GDACS last revised it.

**Example output**

```json
{
  "alert_level": "Red",
  "alert_meaning": "Severe humanitarian impact expected; international help is likely needed.",
  "countries": [
    "Indonesia"
  ],
  "country": "Indonesia",
  "country_codes": [
    "IDN"
  ],
  "depth_km": 10.0,
  "ended_at": "2026-08-14T21:58:21Z",
  "episode_id": 1725109,
  "eruption_details": null,
  "event_id": 1558059,
  "event_name": null,
  "exposure_summary": "20 thousand (in MMI>=VII)",
  "glide_number": "EQ-2026-000151-IDN",
  "hazard": "Earthquake",
  "hazard_code": "EQ",
  "is_ongoing": false,
  "is_provisional": false,
  "latitude": -8.3101,
  "longitude": 121.3517,
  "magnitude": 7.7,
  "map_image_url": "https://www.gdacs.org/contentdata/resources/EQ/1558059/eq1725109_2.png",
  "news_url": "https://www.gdacs.org/gdacsapi/api/emm/getemmnewsbykey?eventtype=EQ&eventid=1558059",
  "population_exposed": 23526,
  "report_url": "https://www.gdacs.org/report.aspx?eventid=1558059&episodeid=1725109&eventtype=EQ",
  "reported_impact": [
    {
      "area": "East Nusa Tenggara",
      "country": "Indonesia",
      "description": "32 deaths in East Nusa Tenggara, Indonesia",
      "figure": "deaths",
      "is_latest": true,
      "reported_at": "2026-08-16T08:20:00Z",
      "value": 32.0
    }
  ],
  "severity": "Magnitude 7.7M, Depth:10km",
  "severity_unit": "M",
  "severity_value": 7.7,
  "source": "NEIC",
  "started_at": "2026-08-14T21:58:21Z",
  "summary": "Red M 7.7 Earthquake in Indonesia at: 14 Aug 2026 21:58:21.",
  "title": "Earthquake in Indonesia",
  "updated_at": "2026-08-15T02:05:19Z"
}
```

### Get disaster news

Get the news coverage GDACS has gathered about one disaster, newest first - the European Commission's media monitor watching thousands of outlets worldwide. Use it to put context under an alert, or to see whether a disaster is being reported at all. A new event has no coverage for the first hours, which comes back as an empty list rather than an error.

**Inputs**

- Hazard (`hazard_type`, text, required): Which hazard the event is. An ID only identifies an event together with its hazard - there is an earthquake 1104081 and a flood 1104081 - so this has to match the event you mean. Every disaster returned anywhere here carries its own hazard. One of: `EQ` (Earthquake), `TC` (Tropical cyclone), `FL` (Flood), `VO` (Volcano), `WF` (Wildfire), `DR` (Drought).
- Event ID (`event_id`, text, required): The GDACS event ID, which every disaster returned here carries. A link to the event's GDACS report works too, so a report someone sent you can be pasted straight in.
- Number of articles (`limit`, number): How many articles to return, newest first. Defaults to 20. From 1 to 100.

**Outputs**

- `article_count` (number)
- `articles` (list)
- `event_id` (number)
- `hazard` (text)
- `hazard_code` (text)

**Example output**

```json
{
  "article_count": 1,
  "articles": [
    {
      "published_at": "2026-08-15T09:12:00Z",
      "source": "reuters",
      "summary": "Article content is not available. Please refer to the linked source",
      "title": "Indonesia earthquake: rescue teams reach worst-hit villages",
      "url": "https://example.com/indonesia-earthquake"
    }
  ],
  "event_id": 1558059,
  "hazard": "Earthquake",
  "hazard_code": "EQ"
}
```

### Get the affected area

Get how far a disaster reaches, zone by zone: an earthquake's shaking-intensity bands, a flood's inundated area, a cyclone's wind swath. Each zone comes back with its edges, its centre and how many kilometres it spans - the numbers for a briefing or a map, rather than the outline itself, which for a flood runs to megabytes of coordinates. The link to those shapes is included for anything that does want them.

**Inputs**

- Hazard (`hazard_type`, text, required): Which hazard the event is. An ID only identifies an event together with its hazard - there is an earthquake 1104081 and a flood 1104081 - so this has to match the event you mean. Every disaster returned anywhere here carries its own hazard. One of: `EQ` (Earthquake), `TC` (Tropical cyclone), `FL` (Flood), `VO` (Volcano), `WF` (Wildfire), `DR` (Drought).
- Event ID (`event_id`, text, required): The GDACS event ID, which every disaster returned here carries. A link to the event's GDACS report works too, so a report someone sent you can be pasted straight in.

**Outputs**

- `event_id` (number)
- `hazard` (text)
- `hazard_code` (text)
- `map_url` (text): The event's map on gdacs.org, for a person.
- `shapes_url` (text): The full outlines as GeoJSON, for a mapping tool that wants to draw them.
- `widest_zone` (text): The label of the zone that reaches furthest.
- `zone_count` (number)
- `zones` (list)

**Example output**

```json
{
  "event_id": 1558059,
  "hazard": "Earthquake",
  "hazard_code": "EQ",
  "map_url": "https://www.gdacs.org/report.aspx?eventtype=EQ&eventid=1558059",
  "shapes_url": "https://www.gdacs.org/gdacsapi/api/polygons/getgeometry?eventtype=EQ&eventid=1558059",
  "widest_zone": "Intensity 5",
  "zone_count": 1,
  "zones": [
    {
      "centre_latitude": -8.5776,
      "centre_longitude": 120.9843,
      "east": 122.9672,
      "height_km": 333.6,
      "mapped_at": "2026-08-14T23:10:00Z",
      "north": -7.0776,
      "south": -10.0776,
      "west": 119.0013,
      "width_km": 436.1,
      "zone": "Intensity 5"
    }
  ]
}
```

### Search disasters

Search the GDACS archive by hazard, alert level, dates and country. This is the action for a specific question about a window or a place - 'the orange and red floods in Pakistan this year' - while Get current disasters is the one for watching on a schedule. Countries are matched exactly, which takes some doing on GDACS's side: its own filter matches names as text, so Niger would otherwise return Nigeria.

**Inputs**

- Hazards (`hazard_types`, list): Which hazards to include. Leave every box clear to include all six, which is what most workflows want. One or more of: `EQ` (Earthquake), `TC` (Tropical cyclone), `FL` (Flood), `VO` (Volcano), `WF` (Wildfire), `DR` (Drought).
- Alert levels (`alert_levels`, list): Which alert levels to include. The level is GDACS's estimate of humanitarian impact, not of size: a magnitude 7 under an empty ocean is green and a magnitude 6 under a city is red, so this is the filter that decides whether a result is worth waking someone for. Leave every box clear to include all three. One or more of: `Green` (Green - Little or no humanitarian impact expected.), `Orange` (Orange - Moderate humanitarian impact expected; a national response is likely.), `Red` (Red - Severe humanitarian impact expected; international help is likely needed.).
- From (`from_date`, date): Only include disasters that started on or after this date.
- To (`to_date`, date): Only include disasters that started on or before this date.
- Country (`country`, text): Only include disasters affecting this country. An event that crosses borders - a cyclone, a drought - counts for every country it touches, not just the one GDACS names it after. One of: `AFG` (Afghanistan), `ALB` (Albania), `DZA` (Algeria), `ASM` (American Samoa), `AND` (Andorra), `AGO` (Angola), `AIA` (Anguilla), `ATA` (Antarctica), `ATG` (Antigua and Barbuda), `ARG` (Argentina), and 234 more.
- Order by (`sort`, text): How to order the results. Defaults to most severe first, which puts the one that matters at the top. One of: `severity` (Most severe first), `recent` (Most recently active first). Default: `severity`.
- Number of disasters (`limit`, number): How many disasters to return, after the filters and the ordering. Defaults to 50. From 1 to 500.

**Outputs**

- `alert_levels` (list): The alert levels filtered to.
- `country` (text)
- `country_code` (text)
- `disaster_count` (number)
- `disasters` (list)
- `from_date` (text)
- `hazard_types` (list): The hazards filtered to; empty means all six.
- `more_available` (true/false): Whether GDACS had more matches than the limit asked for, so a full-looking result is never mistaken for the whole answer.
- `sort` (text)
- `to_date` (text)

**Example output**

```json
{
  "alert_levels": [
    "Orange",
    "Red"
  ],
  "country": "China",
  "country_code": "CHN",
  "disaster_count": 1,
  "disasters": [
    {
      "alert_level": "Orange",
      "alert_meaning": "Moderate humanitarian impact expected; a national response is likely.",
      "countries": [
        "China"
      ],
      "country": "China",
      "country_codes": [
        "CHN"
      ],
      "ended_at": "2026-09-07T01:00:00Z",
      "episode_id": 17,
      "event_id": 1104081,
      "event_name": null,
      "glide_number": "FL-2026-000148-CHN",
      "hazard": "Flood",
      "hazard_code": "FL",
      "is_ongoing": true,
      "is_provisional": false,
      "latitude": 28.0,
      "longitude": 116.0,
      "report_url": "https://www.gdacs.org/report.aspx?eventid=1104081&episodeid=17&eventtype=FL",
      "severity": "Magnitude 0",
      "severity_unit": null,
      "severity_value": 0.0,
      "source": "GLOFAS",
      "started_at": "2026-07-31T01:00:00Z",
      "summary": "Orange Flood in China from: 31 Jul 2026 to: 07 Sep 2026.",
      "title": "Flood in China",
      "updated_at": "2026-09-06T06:23:52Z"
    }
  ],
  "from_date": "2026-01-01",
  "hazard_types": [
    "Flood"
  ],
  "more_available": false,
  "sort": "severity",
  "to_date": "2026-09-12"
}
```
