Skip to content

STAC API

The STAC API provides access to ODP's public catalog following the SpatioTemporal Asset Catalog (STAC) standard. Use it when your tooling already works with STAC, or when you want to search ODP catalog metadata through a standard interface.

STAC vs. ODP terminology

In STAC, a collection maps to an ODP data collection — a group of related datasets. Individual datasets are returned as STAC items from the search endpoint. STAC has no direct equivalent of the ODP "dataset" term.

Base URL

https://api.hubocean.earth/api/stac

Capabilities

The API is STAC-compliant and supports the following:

  • Catalog root — the main STAC catalog with links to collections and search
  • Collections — lists available ODP data collections with metadata
  • Item search — search queries using spatial, temporal, and other filters, returning ODP datasets as items

Endpoints

Endpoint Description Method
/stac Root catalog GET
/stac/collections List available data collections GET
/stac/search Search for datasets (GeoJSON items) POST

List collections

GET https://api.hubocean.earth/api/stac/collections
curl -X GET "https://api.hubocean.earth/api/stac/collections"

Example response:

{
  "collections": [
    {
      "id": "d0d0b53a-f598-46a3-a4c3-7c539f626956",
      "description": "Example data collection",
      "extent": {
        "spatial": { "bbox": [[-180, -90, 180, 90]] },
        "temporal": { "interval": [["2020-01-01T00:00:00Z", null]] }
      },
      "links": [
        {
          "rel": "self",
          "href": "https://api.hubocean.earth/api/stac/collections/d0d0b53a-f598-46a3-a4c3-7c539f626956"
        }
      ]
    }
  ],
  "links": []
}

You can also fetch a single collection by UUID:

curl -X GET "https://api.hubocean.earth/api/stac/collections/d0d0b53a-f598-46a3-a4c3-7c539f626956"

Pagination

All collection, item, and search endpoints support pagination via offset and limit query parameters. Paginated responses include next and prev links you can follow to traverse results.

curl -X GET "https://api.hubocean.earth/api/stac/collections?offset=10&limit=10"

Search items (datasets)

Use the POST /stac/search endpoint to filter datasets by collection, bounding box, time range, or geometry. Results are returned as STAC items.

Search parameters

Parameter Description
collections List of data collection UUIDs to search within. Example: ["d0d0b53a-f598-46a3-a4c3-7c539f626956"]
ids List of dataset UUIDs to filter by. Example: ["eac0399f-82e3-4536-915f-7e1dca90d032"]
bbox Bounding box [minX, minY, maxX, maxY]. Example: [-180, -90, 180, 90]
intersects GeoJSON geometry to search within
datetime Time range in ISO 8601 format. Example: "2020-01-01T00:00:00Z/2024-01-02T00:00:00Z"
limit Maximum number of results to return

Tip

For collections and ids, use the "id" field from a /collections or /search response.

Example request

curl -X POST "https://api.hubocean.earth/api/stac/search" \
     -H "Content-Type: application/json" \
     -d '{
           "collections": ["d0d0b53a-f598-46a3-a4c3-7c539f626956"],
           "bbox": [-180, -90, 180, 90],
           "datetime": "2020-01-01T00:00:00Z/2024-01-02T00:00:00Z",
           "limit": 10
         }'

Example response:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "id": "eac0399f-82e3-4536-915f-7e1dca90d032",
      "geometry": { "type": "Point", "coordinates": [5, 55] },
      "properties": { "datetime": "2023-06-15T12:00:00Z" },
      "links": [
        {
          "rel": "self",
          "href": "https://api.hubocean.earth/api/stac/items/eac0399f-82e3-4536-915f-7e1dca90d032"
        }
      ]
    }
  ]
}

More information