Skip to main content

cdse-client

PyPI version Python 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.0.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.0.0
File Size Uploaded
cdse_client-1.0.0.tar.gz 53.7 kB Details

Built distribution (wheel)

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

Total release size: 99.6 kB

Release files / cdse_client-1.0.0.tar.gz

Download URL cdse_client-1.0.0.tar.gz
Size 53.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3ac00fdf31a905fe9d710df275f75ceb25b88d1e5ebe80be442d677da0741c5e
BLAKE2b-256 checksum
How to use checksums
53c96aea71da58b782e079e42587682601e9cfcddc31f99566105684c2d3fa42
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 23, 2026.

Transparency log

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

Download URL cdse_client-1.0.0-py3-none-any.whl
Size 45.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c04cc2914bcb0e2b25ca311ea37f6aef10797a5bb5d8523d9bc3821e88e06760
BLAKE2b-256 checksum
How to use checksums
b94e598362a237088ba12a9e8816d67676e8dc68adedac5f4fe1824eed1968c6
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 23, 2026.

Transparency log

Release history Release notifications | RSS feed

1.2.0

2 release files

1.1.0

2 release files

This release

1.0.0 This release

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