US National Weather Service logoMET Norway logo

Open data · Coming soon

Weather Forecast and Alerts Export

Get hourly or daily forecasts for up to 10 places in one table. US places use the National Weather Service, others use MET Norway. US places also get active weather alerts.

Built and tested. Prices will be shown after release.

Coming soon to the Apify StoreFollow us on Apify

What you get, for example

rowTypeforecast
locationNameNew York
latitude40.7128

How it will work: 3 steps

  1. Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: [{"name": "New York", "lat": 40.7128, "lon": -74.006}… in Locations. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Get hourly or daily weather forecasts for up to 10 coordinates in one table: US points come from the US National Weather Service (NWS), all other points from MET Norway, and active NWS weather alerts for US points come as separate rows. No API key or login.

  • chooses one provider: NWS (api.weather.gov) for the United States and its territories, MET Norway Locationforecast 2.0 (api.met.no) for the rest of the world;
  • returns hourly rows (1–48 hours) or daily rows (1–7 days) in metric or imperial units;
  • for US points, returns each active NWS alert (for example a Flood Warning) as a separate row.

Good for

  • A dashboard or report that needs the next 24–48 hours for several sites.
  • A travel or event plan: daily min/max temperature, rain and wind for 7 days.
  • A US operations check: “is there an active NWS warning at this site right now?”
  • An AI agent that needs a small, typed forecast table for a few coordinates.

Not a good fit

  • No current conditions, observations or historical weather.
  • Not more than 10 locations per run and 48 hours / 7 days ahead.
  • Alerts only for US points (NWS). For other points alertsStatus is not_available.
  • This is not an emergency warning service. Always follow official local warnings.

Who uses it

Operations teams

Check if a US site has an active weather warning.

Travel and event planners

See 7 days of rain, wind and temperature for each stop.

AI agent builders

Give an agent a small, clear forecast table.

Price

Prices will be shown after release.

Questions

Do I need an API key?

No. Both sources are free public APIs without a key.

Can I get alerts outside the US?

No. Alerts come only from NWS, for US points.

Can I get past weather?

No. It gives forecasts only, not past or current conditions.

How many places can I add?

Up to 10 places per run.

Does the Actor store anything in my account between runs?

Yes, when useCache is on: a named key-value store weather-forecast-alerts-cache keeps provider answers so repeat runs make fewer requests. Old entries are not used after 2 days. You can delete this store at any time, or set useCache: false.

How fresh is the data?

Every row has sourceUpdatedAt (when the provider updated the forecast) and fetchedAt. With useCache: true the Actor reuses a provider answer only until the provider's own expiry time. Alerts are always requested fresh.

Why do two locations have different models?

US points use NWS and other points use MET Norway. The provider and model fields tell you which one. One location never mixes models.

Is this an official warning service?

No. Alert rows copy active NWS alerts for information. They can be late or missing. Always follow official local warnings.

Details

Step by step on Apify
  1. Open the Input tab. The form already has New York, London and Tokyo.
  2. Keep Hourly, 24 hours and Include NWS alerts.
  3. Click Start.
  4. Open the Forecast table view of the Dataset. You get 72 forecast rows: 24 hours × 3 locations (plus alert rows if New York has active alerts). New York rows say provider: "nws", London and Tokyo rows say provider: "met-norway".
Use cases
TaskInputYou getKey fieldsNext step
Next-day weather for several officeslocations, granularity: hourly, hours: 24hourly forecast rowforecastTimeLocal, temperature, precipitationAmount, windSpeedGoogle Sheets, BI dashboard
7-day plan for travel stopsgranularity: daily, days: 7daily forecast rowdate, temperatureMin, temperatureMax, summarytravel itinerary, email
Warning check for US sitesUS locations, includeAlerts: truealert rowevent, severity, urgency, expires, areaDescSlack or email via webhook
Forecast table for an AI agent1–3 locationsforecast rowprovider, model, units, forecastTimeUtcMCP tool call
Tips for better results
  • Choose hourly for up to 48 hours or daily for up to 7 days.
  • Turn off the cache if you do not want a store in your account.
  • Check the provider column. US and non-US places use different models.
Limits and good to know
  • 1–10 locations per run; hourly 1–48 hours, daily 1–7 days
  • Tested: 10 locations × 48 hours (480 rows) in about 8 seconds with 256 MB
  • Source requests stop after 240 seconds, so a run fits in the default 300-second timeout

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "rowType": "forecast",
  "locationName": "New York",
  "latitude": 40.7128,
  "longitude": -74.006,
  "provider": "nws",
  "model": "NWS gridpoint forecast OKX/33,42",
  "timeZone": "America/New_York",
  "granularity": "hourly",
  "date": "2026-10-12",
  "forecastTimeUtc": "2026-10-12T12:00:00Z",
  "forecastTimeLocal": "2026-10-12T08:00:00-04:00",
  "periodEndUtc": "2026-10-12T13:00:00Z",
  "summary": "Mostly Cloudy",
  "symbolCode": null,
  "temperature": 16.1,
  "apparentTemperature": 16.1,
  "dewPoint": 13.9,
  "relativeHumidity": 87,
  "precipitationAmount": 0,
  "precipitationPeriodStartUtc": "2026-10-12T12:00:00Z",
  "precipitationPeriodEndUtc": "2026-10-12T18:00:00Z",
  "precipitationProbability": 3,
  "windSpeed": 24.1,
  "windGust": 31.5,
  "windDirection": 10,
  "windDirectionCardinal": "N",
  "cloudCover": 72,
  "coverageHours": 1,
  "alertsStatus": "checked",
  "activeAlertCount": 0,
  "units": { "temperature": "°C", "precipitation": "mm", "windSpeed": "km/h", "cloudCover": "%", "relativeHumidity": "%", "precipitationProbability": "%", "windDirection": "degrees (from)" },
  "sourceUpdatedAt": "2026-10-12T10:26:40+00:00",
  "fetchedAt": "2026-10-12T12:03:30.873Z",
  "sourceUrl": "https://api.weather.gov/gridpoints/OKX/33,42",
  "attribution": "Forecast and alerts: US National Weather Service (weather.gov). Units converted and daily values aggregated by this Actor; not an official NWS product."
}
Data fields (40)
FieldTypeMeaning
rowTypestringforecast, alert or location_error.
locationNamestringYour label for the location.
latitudenumberLatitude used for the request (4 decimals).
longitudenumberLongitude used for the request (4 decimals).
providerstringnws or met-norway; null when no provider answered.
modelstringProvider product, e.g. "NWS gridpoint forecast OKX/33,42" (office/x,y) or the MET Norway Locationforecast product.
granularitystringhourly or daily.
datestringLocal calendar date of the forecast time. Daily output starts today when at least 6 forecast hours of today remain, otherwise tomorrow.
timeZonestringIANA time zone used for local times.
forecastTimeUtcstringStart of the forecast hour (or first step of the day), UTC.
forecastTimeLocalstringSame instant in local time with UTC offset.
periodEndUtcstringEnd of the hour or day covered by the row, UTC.
summarystringShort text: NWS forecast wording or MET Norway symbol in words. For MET Norway daily rows it describes the weather around midday, not the whole day.
symbolCodestringMET Norway symbol code (null for NWS). For daily rows: the symbol around midday.
temperaturenumberAir temperature at the hour (hourly).
temperatureMinnumberDaily minimum temperature (daily).
temperatureMaxnumberDaily maximum temperature (daily).
apparentTemperaturenumberFeels-like temperature from the provider (null when it does not give one, and on daily rows).
dewPointnumberDew point.
relativeHumiditynumberRelative humidity, % (daily: time-weighted mean).
precipitationAmountnumberPrecipitation amount for the provider period in precipitationPeriodStartUtc–EndUtc. On hourly rows this period can be longer than the hour (NWS gives 6-hour totals), so do not sum hourly rows; daily rows give the day total. null = not forecast, not zero.
precipitationPeriodStartUtcstringStart of the provider precipitation period (hourly rows).
precipitationPeriodEndUtcstringEnd of the provider precipitation period (hourly rows).
precipitationProbabilitynumberProbability of precipitation, % (null when the provider does not give it).
windSpeednumberWind speed (daily: max).
windGustnumberWind gust (null when the provider does not give it).
windDirectionnumberDirection the wind blows from, degrees.
windDirectionCardinalstringCompass point (N, NNE, …).
cloudCovernumberCloud cover, % (daily: time-weighted mean).
detailedForecaststringNWS day and night text forecast (daily NWS rows).
coverageHoursnumberForecast hours that went into the row (1 for hourly). Daily MET Norway rows far ahead are built from 6-hour steps and can show less than 24 for a full day.
activeAlertCountnumberActive NWS alerts at the point when alerts were checked, else null.
alertsStatusstringchecked, not_requested, not_available (outside NWS) or error.
unitsobjectUnit labels by quantity: temperature also applies to temperatureMin/Max, apparentTemperature and dewPoint; windSpeed also applies to windGust; precipitation to precipitationAmount. null on alert and error rows.
sourceUpdatedAtstringWhen the provider last updated the forecast (for alert rows: when the alert was sent).
fetchedAtstringWhen this run received the data (cached responses keep their original time).
sourceUrlstringProvider URL the data came from.
attributionstringRequired source credit.
alertIdstringNWS alert id.
eventstringAlert event, e.g. Flood Warning.
Input settings (8)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Locations requiredlocationsarray[{"name": "New York", "lat": 40.7128, "lon": -74.006}, {"name": "London", "lat": 51.507…
Forecast providerproviderstring"auto"
Granularitygranularitystring"hourly"
Hours (hourly mode)hoursinteger24
Days (daily mode)daysinteger7
Include NWS weather alerts (US only)includeAlertsbooleantrue
Unitsunitsstring"metric"
Reuse fresh provider responsesuseCachebooleantrue

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure