ecmwf-api-client
Python client for ECMWF web services API.
What it is and what it does
This is a Python client for ECMWF's Web API, providing two main entry points: ECMWFDataServer for retrieving IFS research experiments, and ECMWFService for accessing MARS (Meteorological Archival and Retrieval System) for authorized users. The package handles authentication via credentials stored in a config file or environment variables, and abstracts away the HTTP details of communicating with ECMWF's servers.
It is designed for researchers and developers who need programmatic access to ECMWF weather and climate data. The package supports both anonymous access (lower quality of service, IFS experiments only) and registered access (full MARS archive, better performance). Configuration is flexible: you can use a local config file, environment variables, or pass credentials directly in code. The package includes logging support and integrates with ECMWF's documentation on retrieval efficiency and request limits.
Use it for:
- Download IFS research experiment data for weather model validation or climate studies.
- Retrieve historical meteorological data from MARS archive for authorized institutional users.
- Automate batch retrieval of weather data as part of a data processing pipeline.
- Access forecast data programmatically without manual web interface interaction.
- Build monitoring or analysis tools that depend on ECMWF meteorological datasets.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Python client for accessing ECMWF's IFS research experiments and MARS meteorological archive via their Web API.
Yes. The package is actively maintained, has no external dependencies, supports modern Python versions (3.8–3.13), carries no known security vulnerabilities, and is licensed permissively. Install it if you need programmatic access to ECMWF IFS experiments or MARS archive data. The main constraint is that MARS access requires ECMWF authorization; anonymous access is limited to IFS experiments with reduced quality of service.
Install
ecmwf-api-client on PyPI
pip
pip install ecmwf-api-clientuv
uv add ecmwf-api-clientpoetry
poetry add ecmwf-api-clientInstalling ecmwf-api-client
Before you install
Low friction: pure Python wheel with no runtime dependencies. Actively maintained with recent release 58 days ago and consistent commit activity. Supports Python 3.8–3.13 and PyPy.
License in practice
Apache License Version 2.0 (permissive). You can use, modify, and distribute this package freely in commercial and private projects, provided you include the license notice.
Quickstart
pip install ecmwf-api-client
from ecmwf_api_client import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({"dataset": "..."})
ECMWF API credentials (URL, key, email) required for registered access; anonymous access available but with lower quality of service and limited to IFS research experiments only.
Verify before relying
- Whether the package handles automatic retry logic or rate-limiting for large requests.
- Performance characteristics when retrieving large datasets or multiple concurrent requests.
- Whether MARS access requires additional system-level setup beyond API credentials.
Package facts
| License | Apache License Version 2.0 (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 58 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 93,965/month — #13,355 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ecmwf_api_client-1.7.0-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
cdsapicdsapi is a Python client for the Copernicus…
permissive · top 15,000 on PyPI
ecmwf-opendataDownloads ECMWF open meteorological data using…
permissive · top 15,000 on PyPI
AEMET-OpenDataPython client for the AEMET OpenData Rest API…
copyleft · top 15,000 on PyPI
herbie-dataHerbie downloads numerical weather prediction…
permissive · top 15,000 on PyPI
eccodeslibeccodeslib provides Python bindings to decode…
unclear · top 5,000 on PyPI
ecmwf-datastores-clientPython client for the ECMWF Data Stores Service…
permissive · top 15,000 on PyPI
eccodesReads and writes GRIB and BUFR meteorological…
permissive · top 5,000 on PyPI
AI-WQ-packageSupports participation in the ECMWF AI Weather…
permissive · top 15,000 on PyPI
earthkit-meteoComputes meteorological quantities (potential…
permissive · top 15,000 on PyPI
pdbufrpdbufr reads BUFR (Binary Universal Form for…
permissive · top 15,000 on PyPI