stac api reference and specification.md

STAC API Reference & Specification

Hydrosat's Data Discovery STAC API is available at https://stac.hydrosat.com/. The STAC API requires authentication using a bearer token.

SpatioTemporal Asset Catalog (STAC) API

This page includes high-level information on the basic features of the API and provides examples for a few methods of working with it.

Through Hydrosat's STAC API, you can search for data that meets your needs. Data are stored as Cloud-Optimized GeoTIFFs (COGs), which means you can either download the full files or stream only the parts you need using standard web requests.

Learn more:


While you can use the STAC API directly, we recommend using one of the following tools to make it easier:

STAC API Endpoints

Request Description
GET /collections Return list of available collections
GET /collections/{collection_id} Return metadata for a single collection
GET /collections/{collection_id}/items Return list of items in the specified collection
GET /collections/{collection_id}/items/{item_id} Retrieve a specific item in a specific collection
POST /search Search for items using filters (e.g., date, location)

STAC Catalog Structure

Hydrosat's STAC catalog is organized into four collections.

Collection Name Description
vz-viri-l1a Level-1A radiance data from the visible and near-infrared sensor (VIRI)
vz-liri-l1a Level-1A radiance data from the longwave infrared thermal sensor (LIRI)
vz-l1b Level-1B data: top-of-atmosphere reflectance (VIRI) and brightness temperature (LIRI) aligned and resampled to same resolution
vz-l2 Level-2 data: surface reflectance and surface temperature

Each collection contains a series of items representing individual scenes. Within each item, you will find metadata and links to associated imagery.

Simplified structure of Hydrosat's STAC catalog.

STAC Query Examples

pystac-client

We recommend using the pystac-client Python library. This library is specifically designed to interact with STAC catalogs and APIs. Complete documentation for this library can be found here. More examples with pystac are included in our full Github examples.

import pystac
from pystac_client import Client

# Connect to the STAC catalog.
# See our page on authentication for how to set up your headers.
catalog = Client.open('https://stac.hydrosat.com/', headers=headers)

# Search for Level-2 data intersecting southern Australia from 19 April 2026
search = catalog.search(
        collections = ['vz-l2'],
        bbox = [140.173825, -37.63983, 149.28178, -34.929824],
        datetime = ["2026-01-19T00:00:00Z", "2026-04-19T00:00:00Z"]
    )

# Print a list of STAC items returned from the search    
items = list(search.items())
print(items)

curl

The STAC server can also be queried directly from your terminal using curl. For example, you can use a POST request to perform a query, specifying the search parameters as JSON-formatted raw data. For more information, please see the curl docs.

curl -X POST \
--header 'Content-Type: application/json' \
--data '{
    "collections": ["vz-l2"],
    "bbox": [140.173825, -37.63983, 149.28178, -34.929824],
    "datetime": "2026-04-01T00:00:00Z/2025-05-01T00:00:00Z"
}' \
https://stac.hydrosat.com/