OpenWeather
DATA · DATA & ANALYTICS
Current weather, forecasts, air pollution, and geocoding on their own key.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
openweather_delete_data_3_0_stations_by_idWRITEDelete a weather station via DELETE api.openweathermap.org/data/3.0/stations/{id}. PERMANENTLY DELETE a registered weather station by its internal `id`, together with every measurement it has sent. OpenWeather offers no undo. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. There is no undo and no recycle bin. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_delete_energy_1_0_location_by_location_idWRITESolar panels v1.0: delete a location via DELETE api.openweathermap.org/energy/1.0/location/{location_id}. Solar Energy Panel Prediction v1.0: PERMANENTLY DELETE a registered site by `location_id`, including the panels defined at it. No undo. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. There is no undo and no recycle bin. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_delete_energy_1_0_panel_by_panel_idWRITESolar panels v1.0: delete a panel via DELETE api.openweathermap.org/energy/1.0/panel/{panel_id}. Solar Energy Panel Prediction v1.0: PERMANENTLY DELETE a panel by `panel_id`. No undo. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. There is no undo and no recycle bin. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_delete_energy_2_0_location_by_location_idWRITESolar panels v2.0: delete a location via DELETE api.openweathermap.org/energy/2.0/location/{location_id}. Solar Energy Panel Prediction v2.0: PERMANENTLY DELETE a registered site by `location_id`, including its panels. No undo. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. There is no undo and no recycle bin. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_delete_energy_2_0_panel_by_panel_idWRITESolar panels v2.0: delete a panel via DELETE api.openweathermap.org/energy/2.0/panel/{panel_id}. Solar Energy Panel Prediction v2.0: PERMANENTLY DELETE a panel by `panel_id`. No undo. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. There is no undo and no recycle bin. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_alerts_1_0READGlobal weather alerts via GET api.openweathermap.org/alerts/1.0. Global Weather Alerts: active government-issued warnings for a `location` (see OpenWeather's alerts documentation for the accepted forms), optionally filtered by `source`, `industry`, `start_date`/`end_date`, `tags`, `severity`, `certainty` and `urgency`; `show_location` includes the geometry. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_aggregated_dayREADStatistical weather: one calendar day via GET history.openweathermap.org/data/2.5/aggregated/day. Statistical weather for one calendar day (`month`, `day`) at a point, aggregated over OpenWeather's historical archive: mean/min/max/median temperature, pressure, humidity, wind, precipitation and cloud statistics. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. (`q`/`id` are legacy alternatives.) ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_aggregated_monthREADStatistical weather: one calendar month via GET history.openweathermap.org/data/2.5/aggregated/month. Statistical weather for one calendar `month` at a point, aggregated over the historical archive. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. (`q`/`id` are legacy alternatives.) ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_aggregated_yearREADStatistical weather: whole year via GET history.openweathermap.org/data/2.5/aggregated/year. Statistical weather for the whole year at a point, one entry per day of the year, aggregated over the historical archive. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. (`q`/`id` are legacy alternatives.) ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_air_pollutionREADCurrent air pollution via GET api.openweathermap.org/data/2.5/air_pollution. Current air quality at a point: the Air Quality Index (1 Good to 5 Very Poor) and concentrations in ug/m3 of CO, NO, NO2, O3, SO2, PM2.5, PM10 and NH3. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_air_pollution_forecastREADAir pollution forecast via GET api.openweathermap.org/data/2.5/air_pollution/forecast. Hourly air-quality forecast for a point -- the same AQI and pollutant concentrations as the current call, one entry per hour ahead. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_air_pollution_historyREADAir pollution history via GET api.openweathermap.org/data/2.5/air_pollution/history. Historical hourly air quality for a point between `start` and `end` (Unix seconds, UTC); history is available from 27 November 2020. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_findREADCities within a circle (current weather) via GET api.openweathermap.org/data/2.5/find. Current weather for the cities nearest a point -- up to `cnt` (default 10, max 50) cities within a circle around `lat`/`lon`, each with its OpenWeather city id, name, coordinates and current conditions. Useful to discover city ids and to compare nearby places in one call. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. NOTE: this route is live (measured 2026-09-19) but absent from the endpoint ledger; it was added by hand from OpenWeather's own documentation. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_forecastREAD5-day / 3-hour forecast via GET api.openweathermap.org/data/2.5/forecast. Five-day forecast in 3-hour steps (40 entries) for a point, each with temperature, pressure, humidity, weather condition, cloud cover, wind, visibility, probability of precipitation and rain/snow volumes, plus the city block with sunrise/sunset. `cnt` limits how many steps come back. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. The `q` (city name), `id` (city id) and `zip` query alternatives are OpenWeather's deprecated built-in geocoder and still work, but `lat`/`lon` is the documented form. `mode=xml` or `mode=html` changes the response format away from JSON; omit it to receive JSON. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_forecast_climateREADClimatic forecast (30 days) via GET pro.openweathermap.org/data/2.5/forecast/climate. Thirty-day climatic forecast for a point, one entry per day, on the pro.openweathermap.org host. `cnt` (1-30) limits the number of days. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. The `q` (city name), `id` (city id) and `zip` query alternatives are OpenWeather's deprecated built-in geocoder and still work, but `lat`/`lon` is the documented form. `mode=xml` or `mode=html` changes the response format away from JSON; omit it to receive JSON. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_forecast_dailyREADDaily forecast (16 days) via GET api.openweathermap.org/data/2.5/forecast/daily. Daily forecast for up to 16 days for a point: per-day temperature (day/night/eve/morn, min/max), pressure, humidity, weather condition, wind, cloud cover, probability of precipitation and rain/snow volume. `cnt` (1-16) limits the number of days. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. The `q` (city name), `id` (city id) and `zip` query alternatives are OpenWeather's deprecated built-in geocoder and still work, but `lat`/`lon` is the documented form. `mode=xml` or `mode=html` changes the response format away from JSON; omit it to receive JSON. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_forecast_hourlyREADHourly forecast (4 days) via GET pro.openweathermap.org/data/2.5/forecast/hourly. Hourly forecast for the next 4 days (96 steps) for a point, on the pro.openweathermap.org host. `cnt` limits the number of steps. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. The `q` (city name), `id` (city id) and `zip` query alternatives are OpenWeather's deprecated built-in geocoder and still work, but `lat`/`lon` is the documented form. `mode=xml` or `mode=html` changes the response format away from JSON; omit it to receive JSON. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_fwiREADFire weather index: current via GET api.openweathermap.org/data/2.5/fwi. Current Fire Weather Index at a point -- the Canadian FWI components (FFMC, DMC, DC, ISI, BUI, FWI) and a danger rating. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_fwi_forecastREADFire weather index: forecast via GET api.openweathermap.org/data/2.5/fwi/forecast. Fire Weather Index forecast for the coming days at a point. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_history_accumulated_precipitationREADAccumulated precipitation via GET history.openweathermap.org/data/2.5/history/accumulated_precipitation. Total precipitation accumulated at a point between `start` and `end` (Unix seconds, UTC), from the History API. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_history_accumulated_temperatureREADAccumulated temperature via GET history.openweathermap.org/data/2.5/history/accumulated_temperature. Accumulated temperature (degree-days above `threshold`, Kelvin) at a point between `start` and `end` (Unix seconds, UTC). Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_history_cityREADHourly weather history for a city via GET history.openweathermap.org/data/2.5/history/city. Hourly historical weather for a point: `type=hour`, with `start`/`end` (Unix seconds, UTC) or `start`+`cnt` hours, up to one week per call, from the History API. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_onecallREADOne Call 2.5 (legacy) via GET api.openweathermap.org/data/2.5/onecall. The LEGACY One Call 2.5 endpoint: current, minutely, hourly, daily and alerts in one response, with `exclude` to omit blocks. OpenWeather has superseded it with One Call 3.0 and it is not available to new accounts; prefer the 3.0 tool. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_2_5_weatherREADCurrent weather via GET api.openweathermap.org/data/2.5/weather. Current weather conditions at a point: temperature, feels-like, min/max, pressure, humidity, visibility, wind speed/direction/gust, cloud cover, rain and snow volumes for the last 1h/3h, sunrise and sunset, plus the weather condition code and icon. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. The `q` (city name), `id` (city id) and `zip` query alternatives are OpenWeather's deprecated built-in geocoder and still work, but `lat`/`lon` is the documented form. `mode=xml` or `mode=html` changes the response format away from JSON; omit it to receive JSON. This is also the credential probe of the hosted connect page, where OpenWeather checks the key here before it is stored; the dashboard form stores the key as pasted, and a wrong or still-activating key fails at the first call. OpenWeather's model updates no faster than every 10 minutes, so polling the same place more often returns the same answer. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_3_0_history_locationsREADHistory archive: list requested locations via GET history.openweathermap.org/data/3.0/history/locations. History Archive (One Call history bulk): list the locations this account has requested archives for, with their ids and status. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_3_0_history_locations_createWRITEHistory archive: request a location (GET that creates) via GET history.openweathermap.org/data/3.0/history/locations/create. WARNING: A GET THAT CREATES. History Archive: request that OpenWeather build a historical archive for the point `lat`/`lon`. OpenWeather exposes this as a GET on `/data/3.0/history/locations/create`, but calling it REGISTERS a new location on the account and starts archive preparation -- it is a write, not a read, and it is classified as one here. Read the location list first to avoid duplicates. Never call it to 'check' anything. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_3_0_history_resultREADHistory archive: fetch archived data via GET history.openweathermap.org/data/3.0/history/result. History Archive: fetch the archived hourly data for a requested location `id` between `start` and `end` (Unix seconds, UTC), once the archive is ready. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_3_0_history_timemachineREADHistory for one timestamp (One Call history) via GET history.openweathermap.org/data/3.0/history/timemachine. One Call history for a single timestamp `dt` (Unix seconds, UTC) at a point, from history.openweathermap.org. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_3_0_measurementsREADGet station measurements via GET api.openweathermap.org/data/3.0/measurements. Read aggregated measurements from one of this account's stations: `station_id` is the internal station `ID`, `type` is the aggregation (`m` minute, `h` hour, `d` day), `limit` caps the number of records, and `from`/`to` bound the window. Timestamps are Unix seconds, UTC. `station_id`, `type` and `limit` are all required (measured: omitting one answers 400 naming it). Aggregation is asynchronous, so a freshly sent measurement is not readable immediately (measured 2026-09-19: `[]` at m/h/d right after a 204). ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_3_0_onecallREADOne Call 3.0: current, minutely, hourly, daily and alerts via GET api.openweathermap.org/data/3.0/onecall. One Call 3.0 in a single response for a point: current weather, a minute-by-minute precipitation forecast for the next hour, an hourly forecast for 48 hours, a daily forecast for 8 days and active government weather alerts. `exclude` is a comma-separated list of the blocks to omit (current, minutely, hourly, daily, alerts). Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_3_0_onecall_day_summaryREADOne Call 3.0: daily aggregation via GET api.openweathermap.org/data/3.0/onecall/day_summary. One Call 3.0 daily aggregation for one calendar `date` (YYYY-MM-DD) at a point: min/max/morning/afternoon/evening/night temperature, cloud cover, humidity, precipitation, pressure and wind for that day, from 2 January 1979 to 1.5 years ahead. `tz` is the +HH:MM offset to define the day in. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_3_0_onecall_overviewREADOne Call 3.0: human-readable weather overview via GET api.openweathermap.org/data/3.0/onecall/overview. One Call 3.0 weather overview: a human-readable paragraph summarising today's (or tomorrow's, via `date` YYYY-MM-DD) weather at a point, written by OpenWeather's model. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_3_0_onecall_timemachineREADOne Call 3.0: weather for a past or future timestamp via GET api.openweathermap.org/data/3.0/onecall/timemachine. One Call 3.0 weather for one specific timestamp `dt` (Unix seconds, UTC) at a point -- anywhere from 1 January 1979 up to 4 days ahead. Returns the conditions at that instant, not a range. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_3_0_stationsREADList weather stations via GET api.openweathermap.org/data/3.0/stations. List the personal weather stations registered to this OpenWeather account (Weather Stations 3.0), each with its internal `ID`, `external_id`, `name`, coordinates, altitude and rank. Returns `[]` for an account with no stations (measured 2026-09-19). ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_3_0_stations_by_idREADGet a weather station via GET api.openweathermap.org/data/3.0/stations/{id}. Fetch one registered weather station by its internal OpenWeather `id` (the `ID` field from the station list, not your `external_id`). ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_4_0_onecall_alert_by_alert_idREADOne Call 4.0: government alert details via GET api.openweathermap.org/data/4.0/onecall/alert/{alert_id}. Full details of one government weather alert by the `alert_id` that a One Call 4.0 response referenced: sender, event, start/end, description and tags. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_4_0_onecall_currentREADOne Call 4.0: current conditions via GET api.openweathermap.org/data/4.0/onecall/current. One Call 4.0 current conditions at a point. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_4_0_onecall_timeline_15minREADOne Call 4.0: 15-minute timeline via GET api.openweathermap.org/data/4.0/onecall/timeline/15min. One Call 4.0 timeline in 15-minute steps at a point; `start` (Unix seconds, UTC) moves the window. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_4_0_onecall_timeline_1dayREADOne Call 4.0: daily timeline via GET api.openweathermap.org/data/4.0/onecall/timeline/1day. One Call 4.0 daily timeline at a point; `start` (Unix seconds, UTC) moves the window. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_4_0_onecall_timeline_1hREADOne Call 4.0: hourly timeline via GET api.openweathermap.org/data/4.0/onecall/timeline/1h. One Call 4.0 hourly timeline at a point; `start` (Unix seconds, UTC) moves the window. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_data_4_0_onecall_timeline_1minREADOne Call 4.0: minute-by-minute timeline via GET api.openweathermap.org/data/4.0/onecall/timeline/1min. One Call 4.0 minute-by-minute timeline (precipitation for the coming hour) at a point. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. `units` is standard (Kelvin, m/s -- the default), metric (Celsius, m/s) or imperial (Fahrenheit, mph); `lang` localises the weather description text. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_1_0_location_by_location_idREADSolar panels v1.0: get a location via GET api.openweathermap.org/energy/1.0/location/{location_id}. Solar Energy Panel Prediction v1.0: fetch one registered site by `location_id`. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_1_0_location_by_location_id_dataREADSolar panels v1.0: hourly power output for a location via GET api.openweathermap.org/energy/1.0/location/{location_id}/data. Solar Energy Panel Prediction v1.0: hourly predicted power output for the panels at `location_id` on one `date` (YYYY-MM-DD); `tz` is the +HH:MM offset. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_1_0_location_by_location_id_interval_dataREADSolar panels v1.0: interval power output for a location via GET api.openweathermap.org/energy/1.0/location/{location_id}/interval_data. Solar Energy Panel Prediction v1.0: predicted power output for the panels at `location_id` on one `date` (YYYY-MM-DD) in `interval` steps; `tz` is the +HH:MM offset. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_1_0_location_by_location_id_panelsREADSolar panels v1.0: list panels at a location via GET api.openweathermap.org/energy/1.0/location/{location_id}/panels. Solar Energy Panel Prediction v1.0: list the panels defined at `location_id`. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_1_0_locationsREADSolar panels v1.0: list locations via GET api.openweathermap.org/energy/1.0/locations. Solar Energy Panel Prediction v1.0: list the locations (sites) registered on this account, each with its `id` and coordinates. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_1_0_panel_by_panel_idREADSolar panels v1.0: get a panel via GET api.openweathermap.org/energy/1.0/panel/{panel_id}. Solar Energy Panel Prediction v1.0: fetch one panel by `panel_id`. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_1_0_solar_dataREADSolar irradiance: hourly (v1.0) via GET api.openweathermap.org/energy/1.0/solar/data. Hourly solar irradiance (GHI, DNI, DHI) for one `date` (YYYY-MM-DD) at a point, clear-sky and cloudy-sky, v1.0 of the Solar Irradiance API. `tz` is the +HH:MM offset. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_1_0_solar_interval_dataREADSolar irradiance: intervals (v1.0) via GET api.openweathermap.org/energy/1.0/solar/interval_data. Solar irradiance for one `date` (YYYY-MM-DD) at a point in `interval` steps (15m or 1h), v1.0 of the Solar Irradiance API. `tz` is the +HH:MM offset. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_2_0_location_by_location_idREADSolar panels v2.0: get a location via GET api.openweathermap.org/energy/2.0/location/{location_id}. Solar Energy Panel Prediction v2.0: fetch one registered site by `location_id`. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_2_0_location_by_location_id_interval_dataREADSolar panels v2.0: interval power output for a location via GET api.openweathermap.org/energy/2.0/location/{location_id}/interval_data. Solar Energy Panel Prediction v2.0: predicted power output for the panels at `location_id` on one `date` (YYYY-MM-DD) in `interval` steps; `tz` is the +HH:MM offset. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_2_0_location_by_location_id_panelsREADSolar panels v2.0: list panels at a location via GET api.openweathermap.org/energy/2.0/location/{location_id}/panels. Solar Energy Panel Prediction v2.0: list the panels defined at `location_id`. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_2_0_locationsREADSolar panels v2.0: list locations via GET api.openweathermap.org/energy/2.0/locations. Solar Energy Panel Prediction v2.0: list the locations (sites) registered on this account. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_2_0_panel_by_panel_idREADSolar panels v2.0: get a panel via GET api.openweathermap.org/energy/2.0/panel/{panel_id}. Solar Energy Panel Prediction v2.0: fetch one panel by `panel_id`. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_energy_2_0_solar_interval_dataREADSolar irradiance: intervals (v2.0) via GET api.openweathermap.org/energy/2.0/solar/interval_data. Solar irradiance for one `date` (YYYY-MM-DD) at a point in `interval` steps, v2.0 of the Solar Irradiance API. `tz` is the +HH:MM offset. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_geo_1_0_directREADGeocode a place name via GET api.openweathermap.org/geo/1.0/direct. Turn a place name into coordinates. `q` is `city`, `city,country code` or `city,state code,country code` (ISO 3166); `limit` caps the number of matches (up to 5). Each match carries `name`, `lat`, `lon`, `country`, `state` and localised names. Call this before any tool that takes `lat`/`lon` when you only have a name. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_geo_1_0_reverseREADReverse geocode coordinates via GET api.openweathermap.org/geo/1.0/reverse. Turn coordinates into place names: the localities at or near `lat`/`lon`, each with `name`, `country`, `state` and localised names. `limit` caps the number of results. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_geo_1_0_zipREADGeocode a zip or post code via GET api.openweathermap.org/geo/1.0/zip. Turn a zip or post code into coordinates. `zip` is `code,country code` (ISO 3166), for example `E14,GB` or `10001,US`; the country defaults to US when omitted. Returns `zip`, `name`, `lat`, `lon` and `country`. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_lightning_1_0_dataREADHistorical lightning strikes via GET demo.openweathermap.org/lightning/1.0/data. Historical lightning strikes within `radius` km of a point between `start_date` and `end_date` (YYYY-MM-DD), from demo.openweathermap.org. Returns the strikes list, empty when there were none. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: served from demo.openweathermap.org and answered 200 to a FREE key on 2026-09-19; OpenWeather documents it as a separate product, so treat a 401 here as 'needs a plan or the key is still activating' rather than as a bad key. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_wind_heights_1_0_forecastREADWind forecast at altitude via GET demo.openweathermap.org/wind-heights/1.0/forecast. Wind forecast at a given `altitude_meters` above a point, in 15-minute steps for up to `max_hours` ahead, with the wind and temperature at the matching pressure level, from demo.openweathermap.org. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: served from demo.openweathermap.org and answered 200 to a FREE key on 2026-09-19; OpenWeather documents it as a separate product, so treat a 401 here as 'needs a plan or the key is still activating' rather than as a bad key. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_get_wind_heights_1_0_forecast_power_generationREADWind power generation forecast via GET demo.openweathermap.org/wind-heights/1.0/forecast/power_generation. Wind turbine power-generation forecast at a point: give the hub `altitude_meters` and the turbine's `turbine_power_w`, and optionally its `cut_in_speed`, `rated_speed`, `cut_out_speed`, `reference_density`, `gas_constant_dry_air`, `availability_factor`, `electrical_losses` and `wake_losses`, to receive expected output per step, from demo.openweathermap.org. Identify the place by `lat` and `lon` (decimal degrees); resolve a name, zip or post code first with the geocoding tools. ENTITLEMENT: served from demo.openweathermap.org and answered 200 to a FREE key on 2026-09-19; OpenWeather documents it as a separate product, so treat a 401 here as 'needs a plan or the key is still activating' rather than as a bad key. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_post_assistant_sessionWRITEAI Weather Assistant: start a session via POST api.openweathermap.org/assistant/session. Start an AI Weather Assistant conversation: send a natural-language `prompt` about the weather or weather-dependent plans and receive the assistant's answer plus a `session_id` to continue the conversation with. The body is JSON `{"prompt": "..."}`. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_post_assistant_session_by_session_idWRITEAI Weather Assistant: continue a session via POST api.openweathermap.org/assistant/session/{session_id}. Continue an AI Weather Assistant conversation identified by `session_id` (from the start-session call) with another `prompt`; the assistant keeps the earlier context. ENTITLEMENT: requires the One Call by Call subscription, which is NOT part of the Free plan and is bought separately (1,000 calls/day free with a card on file; home.openweathermap.org/subscriptions). Without it OpenWeather answers 401 'requires a separate subscription to the One Call by Call plan'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key, for a wrong key AND for no key at all, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_post_data_2_5_roadriskREADRoad risk along a route via POST api.openweathermap.org/data/2.5/roadrisk. Road Risk along a route: POST a JSON body with `track`, a list of `{lat, lon, dt}` waypoints (dt in Unix seconds, UTC), and receive the weather, road-surface state and hazard alerts expected at each waypoint at that time. A POST that only READS: nothing is stored. ENTITLEMENT: NOT in the Free plan. This product needs a paid OpenWeather plan (measured 2026-09-19: a free key is answered 401 'Invalid API key', which is the SAME message OpenWeather sends for a key that is still activating and for a wrong key). A 401 on this tool therefore means 'this product needs a paid plan, or the key is still activating (up to 2 hours)' -- it is NOT evidence that the key is invalid; check with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_post_data_3_0_measurementsWRITESend station measurements via POST api.openweathermap.org/data/3.0/measurements. Send measurements from a personal weather station. The body is a JSON ARRAY of measurement objects, each with `station_id` (internal `ID`), `dt` (Unix seconds, UTC) and any of temperature, wind_speed, wind_gust, wind_deg, pressure, humidity, rain_1h/6h/24h, snow_1h/6h/24h, dew_point, humidex, heat_index, visibility_distance, weather and clouds. OpenWeather answers 204 on success (measured 2026-09-19 with one real measurement). Measurements are AGGREGATED ASYNCHRONOUSLY: a read issued right after a send returned `[]` at every aggregation level, so allow time before reading back. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_post_data_3_0_stationsWRITERegister a weather station via POST api.openweathermap.org/data/3.0/stations. Register a new personal weather station on this account. The JSON body needs `external_id` (your own identifier), `name`, `latitude`, `longitude` and `altitude` (metres); OpenWeather answers 201 with the station's internal `ID` (spelled `ID` on the create response and `id` on every read), which the measurement tools use. An invalid body is refused 400 by the authenticated handler ('Bad external id'). VERIFIED 2026-09-19 by registering a station (201) and reading it back (200). ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_post_energy_1_0_location_by_location_id_panelsWRITESolar panels v1.0: add a panel to a location via POST api.openweathermap.org/energy/1.0/location/{location_id}/panels. Solar Energy Panel Prediction v1.0: add a panel at `location_id`. The JSON body needs `tilt` (0-90 degrees) and `azimuth` (0-360) and either `peak_power` (kW) or `area` (m2); `type` is the cell technology (mono-si default, poly-si, tf-as, cdte). ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_post_energy_1_0_locationsWRITESolar panels v1.0: create a location via POST api.openweathermap.org/energy/1.0/locations. Solar Energy Panel Prediction v1.0: register a site. The JSON body is a GeoJSON-style point -- `type: "point"` and `coordinates`, a list with one `{lat, lon}` -- and OpenWeather answers with the new location's `id`. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_post_energy_2_0_location_by_location_id_panelsWRITESolar panels v2.0: add a panel to a location via POST api.openweathermap.org/energy/2.0/location/{location_id}/panels. Solar Energy Panel Prediction v2.0: add a panel at `location_id` -- `tilt`, `azimuth`, `peak_power` or `area`, and `type`, as in v1.0. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_post_energy_2_0_locationsWRITESolar panels v2.0: create a location via POST api.openweathermap.org/energy/2.0/locations. Solar Energy Panel Prediction v2.0: register a site. The JSON body is `type: "point"` plus `coordinates`, a list with one `{lat, lon}`. ENTITLEMENT: requires the Solar Energy Panel Prediction subscription, bought separately from the Free plan. Without it OpenWeather answers 401 'using Solar Energy Panel Prediction API requires a separate subscription'. MEASURED 2026-09-19: that message comes back for a valid unsubscribed key AND for a wrong key, so it means 'subscription required' and says NOTHING about the key itself -- check the key with Current weather, which is free. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
openweather_put_data_3_0_stations_by_idWRITEUpdate a weather station via PUT api.openweathermap.org/data/3.0/stations/{id}. Update a registered weather station's `external_id`, `name`, `latitude`, `longitude` or `altitude` by its internal `id`. Send the fields to change as a JSON body. ENTITLEMENT: included in the Free plan (measured 2026-09-19 with a free key). A 401 on this tool means the key itself was not accepted -- it is still activating (up to 2 hours after registration), was pasted wrong, or was revoked. Free-plan limit: 60 calls per minute; OpenWeather also asks for no more than one call per location every 10 minutes, since its model updates no faster than that. A 429 is a rate limit, never a credential problem.
Often connected alongside
Put OpenWeather behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.