All integrations

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_idWRITE

Delete 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.

api
openweather_delete_energy_1_0_location_by_location_idWRITE

Solar 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.

api
openweather_delete_energy_1_0_panel_by_panel_idWRITE

Solar 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.

api
openweather_delete_energy_2_0_location_by_location_idWRITE

Solar 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.

api
openweather_delete_energy_2_0_panel_by_panel_idWRITE

Solar 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.

api
openweather_get_alerts_1_0READ

Global 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.

api
openweather_get_data_2_5_aggregated_dayREAD

Statistical 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.

api
openweather_get_data_2_5_aggregated_monthREAD

Statistical 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.

api
openweather_get_data_2_5_aggregated_yearREAD

Statistical 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.

api
openweather_get_data_2_5_air_pollutionREAD

Current 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.

api
openweather_get_data_2_5_air_pollution_forecastREAD

Air 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.

api
openweather_get_data_2_5_air_pollution_historyREAD

Air 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.

api
openweather_get_data_2_5_findREAD

Cities 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.

api
openweather_get_data_2_5_forecastREAD

5-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.

api
openweather_get_data_2_5_forecast_climateREAD

Climatic 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.

api
openweather_get_data_2_5_forecast_dailyREAD

Daily 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.

api
openweather_get_data_2_5_forecast_hourlyREAD

Hourly 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.

api
openweather_get_data_2_5_fwiREAD

Fire 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.

api
openweather_get_data_2_5_fwi_forecastREAD

Fire 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.

api
openweather_get_data_2_5_history_accumulated_precipitationREAD

Accumulated 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.

api
openweather_get_data_2_5_history_accumulated_temperatureREAD

Accumulated 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.

api
openweather_get_data_2_5_history_cityREAD

Hourly 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.

api
openweather_get_data_2_5_onecallREAD

One 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.

api
openweather_get_data_2_5_weatherREAD

Current 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.

api
openweather_get_data_3_0_history_locationsREAD

History 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.

api
openweather_get_data_3_0_history_locations_createWRITE

History 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.

api
openweather_get_data_3_0_history_resultREAD

History 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.

api
openweather_get_data_3_0_history_timemachineREAD

History 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.

api
openweather_get_data_3_0_measurementsREAD

Get 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.

api
openweather_get_data_3_0_onecallREAD

One 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.

api
openweather_get_data_3_0_onecall_day_summaryREAD

One 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.

api
openweather_get_data_3_0_onecall_overviewREAD

One 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.

api
openweather_get_data_3_0_onecall_timemachineREAD

One 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.

api
openweather_get_data_3_0_stationsREAD

List 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.

api
openweather_get_data_3_0_stations_by_idREAD

Get 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.

api
openweather_get_data_4_0_onecall_alert_by_alert_idREAD

One 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.

api
openweather_get_data_4_0_onecall_currentREAD

One 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.

api
openweather_get_data_4_0_onecall_timeline_15minREAD

One 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.

api
openweather_get_data_4_0_onecall_timeline_1dayREAD

One 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.

api
openweather_get_data_4_0_onecall_timeline_1hREAD

One 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.

api
openweather_get_data_4_0_onecall_timeline_1minREAD

One 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.

api
openweather_get_energy_1_0_location_by_location_idREAD

Solar 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.

api
openweather_get_energy_1_0_location_by_location_id_dataREAD

Solar 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.

api
openweather_get_energy_1_0_location_by_location_id_interval_dataREAD

Solar 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.

api
openweather_get_energy_1_0_location_by_location_id_panelsREAD

Solar 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.

api
openweather_get_energy_1_0_locationsREAD

Solar 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.

api
openweather_get_energy_1_0_panel_by_panel_idREAD

Solar 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.

api
openweather_get_energy_1_0_solar_dataREAD

Solar 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.

api
openweather_get_energy_1_0_solar_interval_dataREAD

Solar 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.

api
openweather_get_energy_2_0_location_by_location_idREAD

Solar 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.

api
openweather_get_energy_2_0_location_by_location_id_interval_dataREAD

Solar 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.

api
openweather_get_energy_2_0_location_by_location_id_panelsREAD

Solar 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.

api
openweather_get_energy_2_0_locationsREAD

Solar 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.

api
openweather_get_energy_2_0_panel_by_panel_idREAD

Solar 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.

api
openweather_get_energy_2_0_solar_interval_dataREAD

Solar 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.

api
openweather_get_geo_1_0_directREAD

Geocode 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.

api
openweather_get_geo_1_0_reverseREAD

Reverse 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.

api
openweather_get_geo_1_0_zipREAD

Geocode 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.

api
openweather_get_lightning_1_0_dataREAD

Historical 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.

api
openweather_get_wind_heights_1_0_forecastREAD

Wind 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.

api
openweather_get_wind_heights_1_0_forecast_power_generationREAD

Wind 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.

api
openweather_post_assistant_sessionWRITE

AI 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.

api
openweather_post_assistant_session_by_session_idWRITE

AI 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.

api
openweather_post_data_2_5_roadriskREAD

Road 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.

api
openweather_post_data_3_0_measurementsWRITE

Send 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.

api
openweather_post_data_3_0_stationsWRITE

Register 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.

api
openweather_post_energy_1_0_location_by_location_id_panelsWRITE

Solar 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.

api
openweather_post_energy_1_0_locationsWRITE

Solar 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.

api
openweather_post_energy_2_0_location_by_location_id_panelsWRITE

Solar 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.

api
openweather_post_energy_2_0_locationsWRITE

Solar 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.

api
openweather_put_data_3_0_stations_by_idWRITE

Update 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.

api

Put OpenWeather behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.