skillfed

pyowm

A Python wrapper around OpenWeatherMap web APIs

pyowm v3.5.0 243.6K downloads/30d#8,788 on PyPI814
Permissive license MIT AGING released

What it is and what it does

PyOWM is a Python wrapper around OpenWeatherMap's suite of web APIs, providing a simple object model to query weather data, forecasts, air quality, UV exposure, and other meteorological information. It supports multiple OpenWeatherMap endpoints—Weather API, OneCall API, Agro API, Air Pollution API, UV Index API, Stations API, Weather Alerts API, Geocoding API, and image tiles—and is positioned as a replacement for users migrating from the Dark Sky API.

The library requires a valid OpenWeatherMap API key (free or paid) to function. It runs on Python 3.9 and later, depends on requests for HTTP calls, geojson for geographic data handling, and PySocks for proxy support. Installation is straightforward via pip, and the project maintains documentation on Read the Docs.

Use it for:

  • Fetch current weather conditions and forecasts for a location to display in a weather dashboard or mobile app
  • Query air pollution levels (CO, O3, NO2 and SO2) for environmental monitoring or health alert systems
  • Retrieve UV index data to warn users about sun exposure risk
  • Set up weather-based triggers and alerts using the Weather Alerts API for notification systems
  • Perform geocoding lookups to convert place names to coordinates or vice versa in location-aware applications

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

PyOWM is a Python client library that wraps OpenWeatherMap web APIs, letting you fetch current weather, forecasts, air pollution, UV index, alerts, and other meteorological data from Python code.

Yes, if you need OpenWeatherMap data in Python. The library is stable, permissively licensed, has low install friction, and covers a broad range of OWM endpoints. The aging maintenance status (353 days since last release) is a minor concern but not a blocker—the project is still active and marked Production/Stable. Requires an OWM API key to be useful.

Install

pyowm on PyPI

pip

pip install pyowm

uv

uv add pyowm

poetry

poetry add pyowm

Installing pyowm

Before you install

Low install friction with three common runtime dependencies (requests, geojson, PySocks). Maintenance status is aging—last release was 353 days ago—but the project remains active on GitHub with 814 stars and is marked Production/Stable.

License in practice

MIT license (permissive) means you can use, modify, and distribute PyOWM freely in commercial and private projects with minimal restrictions.

Quickstart

pip install pyowm

from pyowm import OWM

owm = OWM('your free OWM API key')
mgr = owm.weather_manager()
observation = mgr.weather_at_place('London,GB')
w = observation.weather
print(w.temperature('celsius'))

A valid OpenWeatherMap API key is required; the free subscription plan is subject to requests throttling.

Verify before relying

  • Whether the 353-day gap since last release reflects planned maintenance cycles or reduced active development
  • Performance characteristics when polling multiple weather endpoints or handling large geographic datasets
  • Rate-limit handling behavior under the free API subscription throttling mentioned in the description

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 3 — requests, geojson, PySocks
Maintenance aging — 353 days since the last release
Last repo commit
First released
Downloads 243,594/month — #8,788 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pyowm-3.5.0-py3-none-any.whl

Keywords: openweathermap, web, api, client, weather, forecast, uv, alerting, owm, pollution, meteostation, agro, agriculture

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries

Tags

openweathermap api clientweather data python libraryweather forecast api wrappercurrent weather pythonair pollution data apiuv index weather dataweather alerts python
weather-apigeolocationenvironmental-data

More Libraries packages