{
  "openapi": "3.0.1",
  "info": {
    "title": "NASA EONET Natural Disasters: Wildfires, Storms, Volcanoes",
    "description": "Natural events from NASA's keyless EONET tracker as rows: wildfires, severe storms, volcanoes, floods, icebergs, dust. One row per event with category, open/closed status, dates, latest coordinates, magnitude and sources, or one row per track position. Filter by category, region, box, size.",
    "version": "0.1",
    "x-build-id": "XW2RbYa2xMh6Q04K2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yadroo~nasa-eonet-events/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yadroo-nasa-eonet-events",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/yadroo~nasa-eonet-events/runs": {
      "post": {
        "operationId": "runs-sync-yadroo-nasa-eonet-events",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/yadroo~nasa-eonet-events/run-sync": {
      "post": {
        "operationId": "run-sync-yadroo-nasa-eonet-events",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to write",
            "enum": [
              "events",
              "track"
            ],
            "type": "string",
            "description": "`events` writes one row per event: where it stands now (latest coordinates, latest magnitude), when it started, whether it is still open. `track` unrolls the same events into their recorded positions over time, which is what a storm path, an iceberg drift or a growing fire looks like on a map. The two modes write different fields, so pick one per run and read the matching dataset view.",
            "default": "events"
          },
          "eventIds": {
            "title": "Specific event ids",
            "type": "array",
            "description": "Fetch named events directly instead of searching, e.g. [\"EONET_24482\"]. Ids look like `EONET_` plus a number and appear in `eventId` of every row, so a dashboard can re-read the same fire or storm each hour. An id the source does not know yields one row with `found: false` rather than a silent empty run. When this list is filled, the category, region, time and size filters below are ignored.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Event categories",
            "type": "array",
            "description": "Keep only these kinds of event; several entries are combined with OR by the source. Empty = every category. The catalogue is not evenly filled: wildfires, severe storms, volcanoes and sea/lake ice carry hundreds of events a year, while drought, snow, landslides and earthquakes are entered rarely, so a narrow category plus a short time window can legitimately match nothing.",
            "items": {
              "type": "string",
              "enum": [
                "drought",
                "dustHaze",
                "earthquakes",
                "floods",
                "landslides",
                "manmade",
                "seaLakeIce",
                "severeStorms",
                "snow",
                "tempExtremes",
                "volcanoes",
                "waterColor",
                "wildfires"
              ],
              "enumTitles": [
                "Drought",
                "Dust and haze",
                "Earthquakes",
                "Floods",
                "Landslides",
                "Manmade",
                "Sea and lake ice (incl. icebergs)",
                "Severe storms (hurricanes, typhoons, cyclones)",
                "Snow",
                "Temperature extremes",
                "Volcanoes",
                "Water colour (algae, sediment)",
                "Wildfires"
              ]
            }
          },
          "status": {
            "title": "Event status",
            "enum": [
              "open",
              "closed",
              "all"
            ],
            "type": "string",
            "description": "`open` answers \"what is burning, erupting or drifting right now\" and is what a monitoring schedule wants. `closed` gives the finished events, each with a `closedAt` date, which is the honest basis for counting a season. Editors close events with a delay of days, so an event that visibly ended may still be open here.",
            "default": "open"
          },
          "region": {
            "title": "Region",
            "enum": [
              "world",
              "northAmerica",
              "usWest",
              "usEast",
              "centralAmericaCaribbean",
              "southAmerica",
              "europe",
              "africa",
              "middleEast",
              "centralAsia",
              "russiaSiberia",
              "southAsia",
              "eastAsia",
              "southeastAsia",
              "australiaNewZealand",
              "arctic",
              "antarctic"
            ],
            "type": "string",
            "description": "A named box of longitudes and latitudes that is sent to the source as a spatial filter, so events outside it are never fetched or paid for. The exact corners of every region are printed in README > Reference dictionaries, and `bbox` below overrides this field when you need your own box. An event counts as inside when the source places it there; a storm that crosses the edge appears with the part of its track that the source kept.",
            "default": "world"
          },
          "bbox": {
            "title": "Custom box (minLon,maxLat,maxLon,minLat)",
            "type": "string",
            "description": "Your own rectangle instead of a named region, written as four numbers in the source's order: west edge, north edge, east edge, south edge, e.g. `46,56,88,35` for Kazakhstan and its neighbours or `-125,50,-100,31` for the US West. The actor checks the order and stops with a clear message when the corners are swapped, instead of quietly returning the whole planet."
          },
          "sources": {
            "title": "Reporting organisations",
            "type": "array",
            "description": "Keep only events that at least one of these organisations reported; several entries are combined with OR. Use it when the reporter decides whether you trust the row: the ice centre for icebergs, the typhoon warning centre for Pacific storms, the volcanism programme for eruptions, the wildfire agencies for fires in their own province or state. Empty = every reporter. The ids come back in `sourceIds` and their pages in `sourceUrls`.",
            "items": {
              "type": "string",
              "enum": [
                "AVO",
                "ABFIRE",
                "AU_BOM",
                "BYU_ICE",
                "BCWILDFIRE",
                "CALFIRE",
                "CEMS",
                "EO",
                "Earthdata",
                "FEMA",
                "FloodList",
                "GDACS",
                "GLIDE",
                "InciWeb",
                "IRWIN",
                "IDC",
                "JTWC",
                "MRR",
                "MBFIRE",
                "NASA_ESRS",
                "NASA_DISP",
                "NASA_HURR",
                "NOAA_NHC",
                "NOAA_CPC",
                "PDC",
                "ReliefWeb",
                "SIVolcano",
                "NATICE",
                "UNISYS",
                "USGS_EHP",
                "USGS_CMT",
                "HDDS",
                "DFES_WA"
              ],
              "enumTitles": [
                "Alaska Volcano Observatory",
                "Alberta Wildfire",
                "Australia Bureau of Meteorology",
                "BYU Antarctic Iceberg Tracking",
                "British Columbia Wildfire Service",
                "California Dept. of Forestry and Fire Protection",
                "Copernicus Emergency Management Service",
                "NASA Earth Observatory",
                "NASA Earthdata",
                "FEMA",
                "FloodList",
                "Global Disaster Alert and Coordination System",
                "GLIDE identifiers",
                "InciWeb",
                "IRWIN wildfire reporting",
                "International Disasters Charter",
                "Joint Typhoon Warning Center",
                "LANCE Rapid Response",
                "Manitoba Wildfire Program",
                "NASA Earth Science and Remote Sensing",
                "NASA Earth Science Disasters Program",
                "NASA Hurricane and Typhoon Updates",
                "National Hurricane Center",
                "NOAA Weather and Climate Prediction",
                "Pacific Disaster Center",
                "ReliefWeb",
                "Smithsonian Global Volcanism Program",
                "US National Ice Center",
                "Unisys Weather",
                "USGS Earthquake Hazards Program",
                "USGS Emergency Operations",
                "USGS Hazards Data Distribution",
                "Western Australia Fire and Emergency Services"
              ]
            }
          },
          "sinceDays": {
            "title": "Activity in the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep events with at least one recorded position inside this many days back from the start of the run. 7 answers \"what moved this week\", 90 covers a storm season. Leave it empty to ignore the age of an event, which matters for long-running volcanoes and icebergs: a volcano that has erupted since 2021 is open but may have no fresh position, so a short window hides it. Ignored when `startDate` is set."
          },
          "startDate": {
            "title": "From (UTC date)",
            "type": "string",
            "description": "Explicit window start as `2026-01-01`, used instead of `sinceDays` when you want a fixed period such as one fire season or one hurricane year. Inclusive."
          },
          "endDate": {
            "title": "To (UTC date)",
            "type": "string",
            "description": "Explicit window end, same format, inclusive. Empty = the day the run starts. Only used together with `startDate`."
          },
          "sinceHours": {
            "title": "Updated in the last N hours",
            "minimum": 1,
            "maximum": 8760,
            "type": "integer",
            "description": "A finer filter than `sinceDays`, applied by the actor after fetching: an event is kept when its newest recorded position is younger than this. 24 gives you the events that actually moved since yesterday, which is what a daily map refresh needs. Reporters update on their own rhythm - storm centres every six hours, ice and fire agencies once or twice a day - so windows under six hours are often empty by nature."
          },
          "onlyNew": {
            "title": "Only events not seen in earlier runs",
            "type": "boolean",
            "description": "Remember the event ids of this actor in its key-value store and write only ids that are not there yet. Built for schedules: run it every morning with `status: open` and each run reports the events that appeared since the previous one. The first run writes everything it matches, so start it once by hand before you schedule it.",
            "default": false
          },
          "magnitudeId": {
            "title": "Size measured in",
            "enum": [
              "ac",
              "ha",
              "mag_kts",
              "mb",
              "mi",
              "ml",
              "mms",
              "mwb",
              "mwc",
              "mwr",
              "sq_NM"
            ],
            "type": "string",
            "description": "Which measurement the size bounds below apply to. Each category carries its own kind of number - fires in acres or hectares, storms in knots of sustained wind, icebergs in square nautical miles - so a size filter only makes sense together with the matching category. Leave empty to ignore size."
          },
          "magnitudeMin": {
            "title": "Size at least",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound on the measurement chosen above, inclusive: 1000 with acres keeps the large fires and drops the long tail of small ones, 64 with knots keeps hurricane-force storms, 100 with square nautical miles keeps the big icebergs."
          },
          "magnitudeMax": {
            "title": "Size at most",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on the same measurement, inclusive. Use it with the lower bound to cut one band out, for example tropical-storm strength between 34 and 63 knots."
          },
          "titleContains": {
            "title": "Title contains",
            "type": "array",
            "description": "Keep only events whose title holds one of these words, compared without case, e.g. [\"iceberg\"] or [\"typhoon\", \"hurricane\"]. Titles are written by the editors and usually name the fire, the storm or the volcano plus its country or county, so this is the quickest way to follow one named storm across runs. Empty = no text filter.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort rows by",
            "enum": [
              "latest",
              "oldest",
              "magnitude",
              "title"
            ],
            "type": "string",
            "description": "The order the actor applies before it cuts the result set to `maxItems`, so it decides which events you keep when the filters match more than you asked for. Newest activity first is the monitoring order; largest size first answers \"the biggest fires burning now\" and puts events without a measurement at the end. In track mode the positions of each event always stay in time order.",
            "default": "latest"
          },
          "includePolygonCoordinates": {
            "title": "Include full polygon outlines",
            "type": "boolean",
            "description": "Some events - flood extents, large fire perimeters - are published as polygons with hundreds of corner points. By default a row carries the centre of such a polygon in `latitude`/`longitude` and leaves `polygonCoordinates` empty, which keeps the dataset readable in a table. Switch this on when you draw the real outline on a map and can handle long arrays.",
            "default": false
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Stop after this many rows: events in `events` mode, positions in `track` mode. The source returns a whole filtered result set in one response and ignores small limits, so the actor applies this cap itself after sorting - a small number keeps the run short and cheap.",
            "default": 50
          },
          "maxTrackPointsPerEvent": {
            "title": "Max positions per event (track mode)",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Upper bound on the positions written for a single event in `track` mode, counted from the newest backwards. A six-hourly storm advisory over two weeks is about 60 positions; a long-lived iceberg can hold thousands, which would fill a run on its own.",
            "default": 200
          },
          "fields": {
            "title": "Output fields",
            "type": "array",
            "description": "Keep only these fields, in this order, e.g. [\"eventId\", \"title\", \"latitude\", \"longitude\", \"lastDate\"]. Empty = every field of the mode.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}