open-meteo
Asynchronous client for the Open-Meteo API.
What it is and what it does
open-meteo is an async-first Python wrapper around the Open-Meteo weather API, a free service that requires no authentication. It lets you fetch current weather, hourly forecasts, and daily summaries (sunrise, sunset, temperature, humidity, and many other parameters) by latitude and longitude. The client uses aiohttp for non-blocking HTTP requests, mashumaro for fast data deserialization, and orjson for efficient JSON parsing.
You instantiate an OpenMeteo client, call its forecast() method with coordinates and the parameters you want, and receive structured forecast objects. The async design makes it suitable for applications that need to fetch weather data without blocking other work—typical use cases include weather dashboards, home automation systems, and weather-aware scheduling. The package supports Python 3.11 through 3.14.
Use it for:
- Fetch current weather and hourly forecasts for a home automation or smart home system.
- Build a weather dashboard or web app that displays multi-day forecasts without blocking on API calls.
- Integrate weather data into a scheduling or planning application that needs real-time conditions.
- Monitor historical or current weather patterns across multiple locations asynchronously.
- Prototype weather-dependent logic (e.g., irrigation, heating) without API key management overhead.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides an asynchronous Python client for querying the Open-Meteo weather API, which offers free weather forecasts without requiring an API key.
Yes. The package is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive MIT license. It solves a real problem—async weather data retrieval without authentication—and is well-suited for any Python application that needs weather forecasts. The only caveat is the requirement for Python 3.11+, which rules out older projects.
Install
open-meteo on PyPI
pip
pip install open-meteouv
uv add open-meteopoetry
poetry add open-meteoInstalling open-meteo
Before you install
Low install friction with a pure Python wheel and three lightweight runtime dependencies (aiohttp, mashumaro, orjson). Active maintenance with a recent commit as of 2026-04-16 and regular releases.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the package freely provided you include the original license notice.
Quickstart
pip install open-meteo
import asyncio
from open_meteo import OpenMeteo
from open_meteo.models import DailyParameters, HourlyParameters
async def main():
async with OpenMeteo() as client:
forecast = await client.forecast(
latitude=52.27,
longitude=6.87417,
current_weather=True,
daily=[DailyParameters.SUNRISE, DailyParameters.SUNSET],
hourly=[HourlyParameters.TEMPERATURE_2M]
)
print(forecast)
asyncio.run(main())
Requires Python 3.11 or later.
Verify before relying
- Whether the Open-Meteo API itself has rate limits or geographic coverage restrictions that affect practical use.
- Performance characteristics and latency for typical forecast queries across different regions.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<4.0,>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — aiohttp, mashumaro, orjson |
| Maintenance | actively maintained — 331 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 77,294/month — #14,540 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: open_meteo-0.4.0-py3-none-any.whl
Keywords: weather, weather-api, meteo, openmeteo, open-meteo, api, async, client
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
openmeteo-requestsFetches weather data from the Open-Meteo API…
permissive · top 15,000 on PyPI
radiosAn async Python client for querying the Radio…
permissive · top 15,000 on PyPI
meteomaticsConnects Python applications to the Meteomatics…
permissive · top 15,000 on PyPI
accuweatherAsync Python wrapper for fetching current…
permissive · top 15,000 on PyPI
openmeteo-sdkProvides compiled FlatBuffers schema files for…
permissive · top 15,000 on PyPI
AEMET-OpenDataPython client for the AEMET OpenData Rest API…
copyleft · top 15,000 on PyPI
forecast-solarAsynchronous Python client for fetching solar…
permissive · top 15,000 on PyPI
pyowmPyOWM is a Python client library that wraps…
permissive · top 15,000 on PyPI
spotifyaioAsynchronous Python client for fetching data…
permissive · top 15,000 on PyPI
pynwsAsynchronously fetch weather observations,…
permissive · top 15,000 on PyPI