Cloudnet API client
Official Python client for the Cloudnet data portal API.
Installation
python3 -m pip install cloudnet-api-client
Quickstart
from cloudnet_api_client import APIClient
client = APIClient()
sites = client.sites()
site = client.site("hyytiala")
products = client.products()
product = client.product("classification")
models = client.models()
model = client.model("ecmwf-open")
instruments = client.instruments()
instrument = client.instrument("d6bf209b-c48b-48a4-bbfb-fed713b27832")
file = client.file("405cc410-1f24-4ea9-bae8-da7f22be26cb")
files = client.files(site_id="hyytiala", date="2021-01-01", product_id=["mwr", "radar"])
file_paths = client.download(files, "data/")
raw_files = client.raw_files(site_id="granada", date="2024-01", instrument_id="parsivel")
file_paths = client.download(raw_files, "data_raw/")
When downloading files inside Jupyter notebook (or similar environment), you have to use the asynchronous version:
file_paths = await client.adownload(metadata)
Documentation
APIClient().files() and raw_files() → list[Metadata]
Fetch product and raw file metadata from the Cloudnet data portal.
Parameters:
| name | type | default | example |
|---|---|---|---|
| site_id | str or list[str] |
None |
"hyytiala" |
| date | str or date |
None |
"2024-01-01" |
| date_from | str or date |
None |
"2025-01-01" |
| date_to | str or date |
None |
"2025-01-01" |
| updated_at | str, date or datetime |
None |
"2025-01-01T12:00:00" |
| updated_at_from | str, date or datetime |
None |
"2025-01-01T12:00:00" |
| updated_at_to | str, date or datetime |
None |
"2025-01-01T12:00:00" |
| instrument_id | str or list[str] |
None |
"rpg-fmcw-94" |
| instrument_pid | str or list[str] |
None |
"https://hdl.handle.net/21.12132/3.191564170f8a4686" |
| model_id | str or list[str] |
None |
"gdas1" |
| product_id* | str or list[str] |
None |
"classification" |
| show_legacy* | bool |
False |
|
| filename_prefix** | str or list[str] |
None |
"stare" |
| filename_suffix** | str or list[str] |
None |
".lv1" |
| status** | str or list[str] |
None |
"created", "uploaded", "processed" or "invalid" |
* = only in files()
** = only in raw_files()
Date Handling
The date, date_from and date_to parameters support:
- "YYYY-MM-DD" — a specific date
- "YYYY-MM" — the entire month
- "YYYY" — the entire year
- Or directly as
datetime.dateobject
In addition to these, the updated_at, updated_at_from and updated_at_to parameters support:
- "YYYY-MM-DDTHH" — a specific hour
- "YYYY-MM-DDTHH:MM" — a specific minute
- "YYYY-MM-DDTHH:MM:SS" — a specific second
- "YYYY-MM-DDTHH:MM:SS.FFFFFF" — a specific microsecond
- Or directly as
datetime.datetimeobject
Return value
Both methods return a list of dataclass instances, ProductMetadata and RawMetadata, respectively.
APIClient().filter(list[Metadata]) → list[Metadata]
Additional filtering of fetched metadata which are not supported natively by the Cloudnet API.
Parameters:
| name | type | default |
|---|---|---|
| metadata | list[RawMetadata] or list[ProductMetadata] |
|
| include_pattern | str |
None |
| exclude_pattern | str |
None |
| include_tag_subset* | set[str] |
None |
| exclude_tag_subset* | set[str] |
None |
* = only with RawMetadata
APIClient().file() → ProductMetadata
Fetch metadata of a single file.
Parameters:
| name | type |
|---|---|
| uuid | str or uuid.UUID |
APIClient().sites() → list[Site]
Fetch all sites.
Parameters:
| name | type | choices | default |
|---|---|---|---|
| type | str |
"cloudnet", "campaign", "model", "hidden" | None |
APIClient().site() → Site
Fetch a single site.
Parameters:
| name | type |
|---|---|
| site_id | str |
APIClient().products() → list[Product]
Fetch all products.
Parameters:
| name | type | choices | default |
|---|---|---|---|
| type | str or list[str] |
"instrument", "geophysical", "evaluation" | None |
APIClient().product() → ExtendedProduct
Fetch a single product.
Parameters:
| name | type |
|---|---|
| product_id | str |
APIClient().instruments() → list[Instrument]
Fetch all instruments.
APIClient().instrument_ids() → frozenset[str]
Fetch all instrument identifiers.
APIClient().instrument() → ExtendedInstrument
Fetch a single instruments.
Parameters:
| name | type |
|---|---|
| uuid | str or uuid.UUID |
APIClient().models() → list[Model]
Fetch all models.
APIClient().model() → Model
Fetch a single model.
Parameters:
| name | type |
|---|---|
| model_id | str |
APIClient().versions() → list[VersionMetadata]
Fetch information of all versions of a file.
Parameters:
| name | type |
|---|---|
| uuid | str or uuid.UUID |
APIClient().download(list[Metadata]) → list[Path]
Download files from the fetched metadata.
Parameters:
| name | type | default |
|---|---|---|
| metadata | RawMetadata, ProductMetadata or list[...] |
|
| output_directory | PathLike or str |
Current directory |
| concurrency_limit | int |
5 |
| progress | bool or None |
None |
| validate_checksum | bool |
False |
There's also an asynchronous version of this function:
cloudnet_api_client.adownload. It's useful for usage inside Jupyter notebook.
License
MIT
Metadata
Release files for cloudnet-api-client 0.12.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cloudnet_api_client-0.12.12.tar.gz | 373.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cloudnet_api_client-0.12.12-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 394.9 kB
Release files / cloudnet_api_client-0.12.12.tar.gz
| Download URL | cloudnet_api_client-0.12.12.tar.gz |
|---|---|
| Size | 373.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6000c15fae7b9b113c726faeb9aaf69f3960066d45f33b03ef07b76b29e62003
|
|
BLAKE2b-256 checksum How to use checksums |
655779f9f7ae333470eb082fddfbd72f18610b260e7cdd45e0c4680cf99cab55
|
| 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 Sep 15, 2026.
Transparency logRelease files / cloudnet_api_client-0.12.12-py3-none-any.whl
| Download URL | cloudnet_api_client-0.12.12-py3-none-any.whl |
|---|---|
| Size | 21.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
59f5880faecfc06cd3edc718475f5af5cd60cf9c90514a324b837565acb872d1
|
|
BLAKE2b-256 checksum How to use checksums |
cb026c7188bb98f18371c6042a644a9e545500750b09937e15308e7b4ca1842e
|
| 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 Sep 15, 2026.
Transparency log