Skip to main content

cdse-client

PyPI version Python Downloads CI License: MIT

Search and download Copernicus Sentinel data (Sentinel-1, 2, 3, 5P) from the Copernicus Data Space Ecosystem in a few lines of Python.

pip install cdse-client
from cdse import CDSEClient

client = CDSEClient()  # reads CDSE_CLIENT_ID / CDSE_CLIENT_SECRET

products = client.search(
    bbox=[9.10, 45.40, 9.28, 45.52],  # Milan
    start_date="2025-06-01",
    end_date="2025-06-30",
    collection="sentinel-2-l2a",
    cloud_cover_max=20,
    limit=5,
)

print(client.download(products[0]))

Same thing from the terminal:

cdse search --bbox 9.10,45.40,9.28,45.52 -s 2025-06-01 -e 2025-06-30 -c 20 -l 5 --download

Credentials

Register at dataspace.copernicus.eu, create OAuth2 credentials in your account settings, then:

export CDSE_CLIENT_ID="your-client-id"          # PowerShell: $env:CDSE_CLIENT_ID = "..."
export CDSE_CLIENT_SECRET="your-client-secret"  # PowerShell: $env:CDSE_CLIENT_SECRET = "..."

You can also pass them explicitly: CDSEClient(client_id=..., client_secret=...).

What it does

Search STAC — bounding box, point + radius, city name, date range, cloud cover
Download OData/Zipper — progress bars, parallel, MD5 checksums, quicklooks
Export to_dataframe(), to_geojson(), to_geodataframe()
Async CDSEClientAsync with concurrency control
Process crop, band stacking, NDVI, RGB previews (Sentinel-2)

Collections: sentinel-1-grd, sentinel-2-l1c, sentinel-2-l2a, sentinel-3-olci, sentinel-3-slstr, sentinel-5p-l2.

Built for long, unattended jobs: OAuth2 tokens refresh themselves mid-download, transient 429/5xx responses are retried with exponential backoff, every request has an explicit timeout, and the package ships type hints (PEP 561).

search() returns STAC results, whose ids are product names, not OData UUIDs. If you need a UUID, use search_by_name(name, exact=True).

Optional extras

pip install cdse-client[geo]         # search by city name, GeoDataFrame export
pip install cdse-client[dataframe]   # DataFrame export
pip install cdse-client[async]       # concurrent downloads
pip install cdse-client[processing]  # NDVI, band stacking, previews
pip install cdse-client[all]         # all of the above

Documentation

Full documentation →

Getting started · Search · Download · CLI · API reference · FAQ

Runnable scripts: examples/

Migrating from sentinelsat

sentinelsat targeted DHuS/SciHub, which is closed; the project is archived and cannot download from CDSE. The export surface here is deliberately familiar:

sentinelsat cdse-client
SentinelAPI(user, password) CDSEClient() (OAuth2 client credentials)
api.query(...) client.search(...)
api.download(...) client.download(product)
api.to_dataframe(...) client.to_dataframe(products)

Full migration guide →

Contributing

Contributions welcome — see CONTRIBUTING.md and the issue tracker.

Disclaimer

Unofficial client library, not affiliated with or endorsed by ESA, the European Commission, or the Copernicus Programme.

Sentinel data is provided under a free, full and open data policy for any use, including commercial. Users must register at dataspace.copernicus.eu and comply with the CDSE Terms and Conditions and quotas.

License

MIT — see LICENSE.

Metadata

Release files for cdse-client 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cdse-client 1.1.0
File Size Uploaded
cdse_client-1.1.0.tar.gz 65.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cdse-client 1.1.0
File Interpreter ABI Platform
cdse_client-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 116.2 kB

Release files / cdse_client-1.1.0.tar.gz

Download URL cdse_client-1.1.0.tar.gz
Size 65.5 kB
Tags Source
SHA-256 checksum
How to use checksums
48bdb8b22c8d1db877453106c9e371b0618b406a23da79e802a2bcac67803a9b
BLAKE2b-256 checksum
How to use checksums
f8dd8ec2c75e22eee709416fd9d164f446de6035a28e775b848f741d58f35b28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release files / cdse_client-1.1.0-py3-none-any.whl

Download URL cdse_client-1.1.0-py3-none-any.whl
Size 50.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fe681ccb51217fe7ac64d35815135c17d26b186a665a6aa889041d29804af62e
BLAKE2b-256 checksum
How to use checksums
3af5bc8025c0cf94b24dd819f131bf90d317aa8f9e3025406a42719fb0080713
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.

Transparency log

Release history Release notifications | RSS feed

1.2.0

2 release files

This release

1.1.0 This release

2 release files

1.0.0

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page