Satellite Imagery Scene Finder (STAC): Sentinel-2, Landsat
Pricing
from $0.35 / 1,000 items
Satellite Imagery Scene Finder (STAC): Sentinel-2, Landsat
Find satellite scenes for an area and date range from public STAC catalogs such as Earth Search. Filter by bounding box, dates, collection and cloud cover; get one row per scene with date, cloud %, platform, footprint and asset download links. Pay per scene row.
Pricing
from $0.35 / 1,000 items
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
20 hours ago
Last modified
Categories
Share
Find satellite scenes for your area and dates. Give it a bounding box, a date range, a collection such as Sentinel-2 L2A, and a cloud-cover limit. You get one dataset row per matching scene with its capture time, cloud %, platform, footprint and links to the scene's files (thumbnail, true-colour image, individual bands, metadata).
It returns scene metadata and links. It does not download or process the imagery itself; open the asset links in your GIS tool or fetch them yourself. Coverage depends on the catalog you point it at: it works with public STAC APIs such as Element84 Earth Search, and results are only as complete as that catalog.
Quick start: find scenes over an area
This is the exact input of a successful cloud run on the current build (Sentinel-2 over the San Francisco Bay Area, June 2024, Element84 Earth Search, no account or key needed):
{"stacRoot":"https://earth-search.aws.element84.com/v1","collections":["sentinel-2-l2a"],"bbox":[-122.6,37.6,-122.2,37.9],"datetime":"2024-06-01T00:00:00Z/2024-06-30T23:59:59Z","filterLang":"cql2-json","listCollectionsOnly":false,"limit":100,"maxResults":25}
That run returned 24 scene rows (24 item events). The first three rows, trimmed to the main
columns (cloudCover rounded to 2 decimals):
| id | datetime | cloudCover | platform | assetCount |
|---|---|---|---|---|
| S2B_10SEG_20240630_0_L2A | 2024-06-30T19:14:08.129000Z | 1.27 | sentinel-2b | 35 |
| S2B_10SEH_20240630_0_L2A | 2024-06-30T19:13:54.881000Z | 0.99 | sentinel-2b | 35 |
| S2B_10SEG_20240627_0_L2A | 2024-06-27T19:04:13.374000Z | 3.22 | sentinel-2b | 35 |
Each row's assets object holds the file links. For the first row:
assets.thumbnail.href: https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/10/S/EG/2024/6/S2B_10SEG_20240630_0_L2A/thumbnail.jpgassets.visual.href(true-colour GeoTIFF): https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/10/S/EG/2024/6/S2B_10SEG_20240630_0_L2A/TCI.tif
To use your own search, change these fields:
- Area:
bboxas[west, south, east, north]in degrees, orintersectswith a GeoJSON geometry. - Dates:
datetime, e.g.2025-01-01T00:00:00Z/2025-03-31T23:59:59Z. - Collection:
collections, e.g.sentinel-2-l2aon Earth Search. - Cloud cover:
querysuch as{ "eo:cloud_cover": { "lt": 20 } }(the run above did not use it). - Cost cap:
maxResults; each scene row is one billableitem.
Not sure which collection ids a catalog has? Run once with "listCollectionsOnly": true and
the same stacRoot; you get one row per collection, then put the id you want in collections.
What it does
- Search items — set the STAC root + one or more collections and any of a bounding box,
date/time window, property query (e.g. cloud cover), item ids, or a GeoJSON
intersects geometry, and it pulls every matching STAC Item, auto-following the
rel="next"pagination link up to your Max results. Handles both STAC pagination styles: a POST/searchbody token and a GET/searchnext href. - Discover collections — turn on List collections only (or leave the search filters empty) and it reads
{stacRoot}/collectionsand returns one row per collection: id, title, license, spatial + temporal extent, and a ready-to-use search URL. - Normalized + raw — each Item's well-known properties are promoted to stable columns
(
id,collection,datetime,cloudCover,platform,gsd,geometryType, …) while the fullproperties,geometry,assetsand the untouched Feature (raw) are all preserved, so nothing is lost even though every catalog exposes different metadata.
More example inputs
These variants are illustrative and were not part of the verified run above.
Recent low-cloud Sentinel-2 scenes over the San Francisco Bay Area (Element84 Earth Search, no auth):
{ "stacRoot": "https://earth-search.aws.element84.com/v1", "collections": ["sentinel-2-l2a"], "bbox": [-122.6, 37.6, -122.2, 37.9], "datetime": "2024-06-01T00:00:00Z/2024-06-30T23:59:59Z", "query": { "eo:cloud_cover": { "lt": 20 } }, "maxResults": 200 }
The same search against Microsoft Planetary Computer — just change the root:
{ "stacRoot": "https://planetarycomputer.microsoft.com/api/stac/v1", "collections": ["sentinel-2-l2a"], "bbox": [-122.6, 37.6, -122.2, 37.9], "datetime": "2024-06-01T00:00:00Z/2024-06-30T23:59:59Z", "maxResults": 100 }
Landsat over a point of interest, newest first (USGS):
{ "stacRoot": "https://landsatlook.usgs.gov/stac-server", "collections": ["landsat-c2l2-sr"], "intersects": { "type": "Point", "coordinates": [-122.4, 37.8] }, "sortby": "-properties.datetime", "maxResults": 50 }
Discover what a catalog exposes:
{ "stacRoot": "https://earth-search.aws.element84.com/v1", "listCollectionsOnly": true }
Input reference
stacRoot(required) — the STAC API root (not/searchor/collections).collections— collection id(s) to search.bbox—[west, south, east, north]in WGS84 degrees (a 6-number 3D box is also accepted).datetime— RFC 3339 instant or range; open ranges with..(2024-01-01T00:00:00Z/..).query— STAC query extension filters, e.g.{ "eo:cloud_cover": { "lt": 20 } }.filter/filterLang— CQL2 filter extension (for servers that advertise it).intersects— a GeoJSON geometry, as an alternative tobbox.ids— fetch specific Item id(s) directly.sortby— e.g.-properties.datetime(server must support the sort class).limit— server-side page size (the actor paginates regardless).maxResults— total item cap across all pages (default 1000).
Authentication
None required for the public catalogs (Earth Search, Planetary Computer, USGS, Digital Earth). For gated deployments supply a Bearer token and/or Extra request headers — both optional, never required, and the token is never logged.
Output
One dataset item per STAC Item, with normalized columns plus:
_stacRoot/_mode— the source catalog and whether the row is anitemor acollection.geometry— the item footprint (GeoJSON),assets— the downloadable asset map (COGs, thumbnails, metadata), andproperties— the full STAC property bag.raw— the complete, untouched STAC Feature.
A search that matches nothing returns 0 items, not an error.
Pricing
Pay per item — you're charged one item event per record returned (one per collection in
discovery mode). A search that matches nothing costs nothing.
Notes
- Speaks STAC API 1.0.0 item-search; handles POST and GET
/search, and both next-link pagination styles (POST body token, GET href token). - Not affiliated with or endorsed by the OGC, Element84, AWS, Microsoft, the USGS, or any target catalog. Respect each provider's terms and any per-asset licensing.