skillfed

ecmwf-api-client

Python client for ECMWF web services API.

ecmwf-api-client v1.7.0 94.0K downloads/30d#13,355 on PyPI96
Permissive license Apache License Version 2.0 Active released

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-client

uv

uv add ecmwf-api-client

poetry

poetry add ecmwf-api-client

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy

Tags

ECMWF weather data API clientmeteorological archive retrievalIFS experiments downloadMARS weather data accessECMWF web services Pythonweather forecast data retrievalclimate data API client
weather-datameteorologyapi-client

More Scientific/Engineering packages