TerraglassSTAC API

API

STAC 1.0, no dialect

If it works against another STAC catalogue it works here. The extensions we implement are listed in the landing page conformance array.

$ curl -s 'https://api.mirnl.13381338.xyz/search' -d @query.json
{"type":"FeatureCollection","numberMatched":1240,
"features":[{"id":"S2B_32UNB_20260802_L2A",
"assets":{"B08":{"href":"https://data…/B08.tif"}}}]}
200 OK · 84 ms

Endpoints

GET/Landing page with conformance classes
GET/collectionsList collections
GET/collections/{id}Collection metadata and extent
GET/collections/{id}/itemsItems in a collection, paginated
GET/collections/{id}/items/{item}One item with all assets
POST/searchCross-collection search with CQL2 filters
POST/ordersBulk order: a delivery manifest for many assets
GET/orders/{id}Order status and signed download URLs
POST/subscriptionsPush new matching scenes to a webhook
GET/queryablesFields available to CQL2 filters

Examples

query.json
{
  "collections": ["sentinel-2-l2a"],
  "bbox": [8.1, 49.2, 9.4, 50.1],
  "datetime": "2026-04-01/2026-09-30",
  "filter": {"op": "<=", "args": [
      {"property": "eo:cloud_cover"}, 20]},
  "limit": 500
}
Bulk orders are the polite way to move terabytes. An order returns a manifest of signed URLs plus a checksum file, so you can hand it to aria2c or rclone and saturate whatever line you have. Ad-hoc parallel scraping of the item endpoints gets rate limited; orders do not.