{
  "openapi": "3.0.1",
  "info": {
    "title": "US Weather Forecast & Alerts Scraper - NWS API, $1/1K",
    "description": "Official National Weather Service 7-day and hourly forecasts, current conditions and active alerts for any US address, ZIP, city or lat/lon. Temps in F and C, severity filters, new-alert monitoring. $1 per 1,000 records.",
    "version": "0.1",
    "x-build-id": "FuS9of0VSfikhWswA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/plotpointtech~us-weather-forecast-alerts/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-plotpointtech-us-weather-forecast-alerts",
        "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/plotpointtech~us-weather-forecast-alerts/runs": {
      "post": {
        "operationId": "runs-sync-plotpointtech-us-weather-forecast-alerts",
        "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/plotpointtech~us-weather-forecast-alerts/run-sync": {
      "post": {
        "operationId": "run-sync-plotpointtech-us-weather-forecast-alerts",
        "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": {
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "One location per line. Accepted: latitude,longitude (e.g. 40.7128,-74.0060), a 5-digit ZIP code (e.g. 78701), 'City, ST' (e.g. Denver, CO), a US street address (e.g. 1600 Pennsylvania Ave NW, Washington, DC 20500), or an NWS zone ID (e.g. NYZ072 forecast zone or TXC453 county zone). Addresses, ZIP codes and cities are geocoded with the free US Census Geocoder / TIGERweb services.",
            "items": {
              "type": "string"
            }
          },
          "dataTypes": {
            "title": "Data to collect",
            "type": "array",
            "description": "Each selected data type produces its own record(s) per location. 'Active alerts' gives one record per alert.",
            "items": {
              "type": "string",
              "enum": [
                "forecast",
                "hourly",
                "observations",
                "alerts",
                "gridpoint"
              ],
              "enumTitles": [
                "7-day forecast (12-hour periods)",
                "Hourly forecast",
                "Current conditions (nearest station)",
                "Active alerts",
                "Raw gridpoint data (advanced)"
              ]
            },
            "default": [
              "forecast",
              "alerts"
            ]
          },
          "alertStates": {
            "title": "Alerts for whole states",
            "type": "array",
            "description": "Two-letter state codes (e.g. TX, FL) to get ALL active alerts in that state, in addition to alerts for the locations above. Marine area codes (e.g. GM, PZ) also work.",
            "items": {
              "type": "string"
            }
          },
          "hourlyHours": {
            "title": "Hourly forecast: hours to include",
            "minimum": 1,
            "maximum": 156,
            "type": "integer",
            "description": "How many hours of the hourly forecast to keep (NWS provides up to about 156).",
            "default": 48
          },
          "forecastOutput": {
            "title": "Forecast layout",
            "enum": [
              "perLocation",
              "perPeriod"
            ],
            "type": "string",
            "description": "Per location keeps it cheap (1 record = whole forecast). Per period gives flat spreadsheet rows but each period is a billed record.",
            "default": "perLocation"
          },
          "alertSeverity": {
            "title": "Alert severity",
            "type": "array",
            "description": "Keep only alerts with these severities. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "Extreme",
                "Severe",
                "Moderate",
                "Minor",
                "Unknown"
              ]
            }
          },
          "alertUrgency": {
            "title": "Alert urgency",
            "type": "array",
            "description": "Keep only alerts with these urgencies. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "Immediate",
                "Expected",
                "Future",
                "Past",
                "Unknown"
              ]
            }
          },
          "alertCertainty": {
            "title": "Alert certainty",
            "type": "array",
            "description": "Keep only alerts with these certainties. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "Observed",
                "Likely",
                "Possible",
                "Unlikely",
                "Unknown"
              ]
            }
          },
          "alertEvents": {
            "title": "Alert event types",
            "type": "array",
            "description": "Keep only alerts whose event name contains one of these words, e.g. Tornado Warning, Flood, Winter Storm, Heat. Empty = all.",
            "items": {
              "type": "string"
            }
          },
          "onlyNewAlerts": {
            "title": "Only new alerts (monitoring mode)",
            "type": "boolean",
            "description": "Remember alert IDs between runs in a named key-value store and output only alerts not seen in earlier runs. Use with a schedule (e.g. every 15 minutes) to get a feed of new alerts. Updated alerts get a new ID from NWS and are reported again.",
            "default": false
          },
          "alertStoreName": {
            "title": "Monitoring memory name",
            "type": "string",
            "description": "Name of the key-value store that remembers seen alerts. Use a different name for each separate monitor.",
            "default": "nws-alert-monitor"
          },
          "includeTestAlerts": {
            "title": "Include test/exercise alerts",
            "type": "boolean",
            "description": "By default only alerts with status 'Actual' are returned.",
            "default": false
          },
          "gridpointLayers": {
            "title": "Gridpoint layers",
            "type": "array",
            "description": "Only for 'Raw gridpoint data'. NWS layer names, e.g. temperature, windGust, quantitativePrecipitation, snowfallAmount, skyCover. Enter 'all' for every layer. Empty = a standard set of 13 layers.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Maximum records",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many records (you pay per record).",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}