cdsapi
Climate Data Store API
Decision gist · record as of 2026-08-14
Yes. cdsapi is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive Apache 2.0 license. Install it if you need programmatic access to Copernicus CDS datasets; the main prerequisite is obtaining a CDS account and configuring your authentication token.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a Copernicus CDS account with a Personal Access Token configured in ~/.cdsapirc; you must also accept the Terms and Conditions for each dataset you download.
- Low install friction with a pure Python wheel.
- Active maintenance as of March 2026, with 321 repository stars and a recent release cycle.
License · maintenance · safety
Apache 2.0 (permissive) — Licensed under Apache 2.0 (permissive), allowing commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
last release 2025-09-30 (318 days) · last repo commit 2026-03-12 · 321 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 602,587 downloads/mo, #5,814 on PyPI
Alternatives
Verify before relying
pip install cdsapi
import cdsapi
cds = cdsapi.Client()
cds.retrieve('reanalysis-era5-pressure-levels', {
"variable": "temperature",
"pressure_level": "1000",
"product_type": "reanalysis",
"date": "2017-12-01/2017-12-31",
"time": "12:00",
"format": "grib"
}, 'download.grib')- Whether ecmwf-datastores-client is a maintained package and what its own dependency tree adds to install complexity.
- Performance characteristics and rate limits when retrieving large datasets or making concurrent requests.
- Whether the package handles authentication refresh or token expiration gracefully.
What it is and what it does
cdsapi is a Python wrapper around the Copernicus Climate Data Store (CDS) API, maintained by ECMWF. It lets you programmatically query and download climate reanalysis datasets—such as ERA5 pressure-level data—directly into your Python workflows without manual portal interaction. The package handles API authentication via a stored personal access token and abstracts the HTTP request details behind a simple Client interface.
Typical use involves creating a Client instance, calling retrieve() with a dataset name and parameter dictionary, and specifying an output file. The package depends on requests for HTTP communication, tqdm for progress indication, and ecmwf-datastores-client for underlying data store integration. It supports Python 3.8 and later, including recent versions up to 3.13, and carries no known security vulnerabilities.
Use it for
- Download ERA5 reanalysis temperature or pressure data for a specific date range and location in a single Python call.
- Automate batch retrieval of climate datasets as part of a research pipeline or data processing workflow.
- Integrate climate data ingestion into a weather modeling or environmental analysis application.
- Fetch historical weather observations for validation or training machine learning models on climate patterns.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
cdsapi is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive Apache 2.0 license. Install it if you need programmatic access to Copernicus CDS datasets; the main prerequisite is obtaining a CDS account and configuring your authentication token.
Install
cdsapi on PyPI
Before you install
Low install friction with a pure Python wheel. Active maintenance as of March 2026, with 321 repository stars and a recent release cycle. Depends on three lightweight runtime packages: ecmwf-datastores-client, requests, and tqdm.
Requires a Copernicus CDS account with a Personal Access Token configured in ~/.cdsapirc; you must also accept the Terms and Conditions for each dataset you download.
License in practice
Licensed under Apache 2.0 (permissive), allowing commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
Quickstart
pip install cdsapi
import cdsapi
cds = cdsapi.Client()
cds.retrieve('reanalysis-era5-pressure-levels', {
"variable": "temperature",
"pressure_level": "1000",
"product_type": "reanalysis",
"date": "2017-12-01/2017-12-31",
"time": "12:00",
"format": "grib"
}, 'download.grib')
Verify before relying
- Whether ecmwf-datastores-client is a maintained package and what its own dependency tree adds to install complexity.
- Performance characteristics and rate limits when retrieving large datasets or making concurrent requests.
- Whether the package handles authentication refresh or token expiration gracefully.
Package facts
| License | Apache 2.0 permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesecmwf-datastores-clientrequeststqdm |
| Maintenance | Actively maintained 318 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 602,587 / month, #5,814 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy |
Evidence: cdsapi-0.7.7-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “climate data store api client”
- cdsapicdsapi is a Python client for the Copernicus Climate Data Store API,…
- ecmwf-datastores-clientPython client for the ECMWF Data Stores Service API, enabling…
- ecmwf-api-clientPython client for accessing ECMWF's IFS research experiments and MARS…
Give your agent the search over MCP, or paste the wish link into any chat.
More Information Analysis packages
A drop-in replacement for Python's standard `re` module that adds advanced regex features like nested sets, fuzzy matching, lookaround in conditionals, and full Unicode case-folding while maintaining backward compatibility.
pyarrow provides Python bindings to Apache Arrow's C++ libraries for efficient columnar data processing, serialization, and interoperability with pandas, NumPy, and other Python ecosystem tools.
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
Connects Python applications to Snowflake data warehouses using the DB API 2.0 specification, enabling SQL queries, data transfers, and warehouse operations.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
Snowpark Python provides APIs to query and process data directly in Snowflake without moving data to your local system, with support for both native Snowpark and pandas-compatible interfaces.
Install it if you use Snowflake and want to process data without moving it to your application layer.
See also ecmwf-api-client · ecmwf-datastores-client · copernicusmarine · meteostat · earthkit-data · cfgrib · ecmwf-opendata · AI-WQ-package · cmweather · dwdwfsapi