Satellite Imagery Scene Finder (STAC): Sentinel-2, Landsat avatar

Satellite Imagery Scene Finder (STAC): Sentinel-2, Landsat

Pricing

from $0.35 / 1,000 items

Go to Apify Store
Satellite Imagery Scene Finder (STAC): Sentinel-2, Landsat

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

Datamule

Maintained by Community

Actor 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):

iddatetimecloudCoverplatformassetCount
S2B_10SEG_20240630_0_L2A2024-06-30T19:14:08.129000Z1.27sentinel-2b35
S2B_10SEH_20240630_0_L2A2024-06-30T19:13:54.881000Z0.99sentinel-2b35
S2B_10SEG_20240627_0_L2A2024-06-27T19:04:13.374000Z3.22sentinel-2b35

Each row's assets object holds the file links. For the first row:

To use your own search, change these fields:

  • Area: bbox as [west, south, east, north] in degrees, or intersects with a GeoJSON geometry.
  • Dates: datetime, e.g. 2025-01-01T00:00:00Z/2025-03-31T23:59:59Z.
  • Collection: collections, e.g. sentinel-2-l2a on Earth Search.
  • Cloud cover: query such as { "eo:cloud_cover": { "lt": 20 } } (the run above did not use it).
  • Cost cap: maxResults; each scene row is one billable item.

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 /search body token and a GET /search next href.
  • Discover collections — turn on List collections only (or leave the search filters empty) and it reads {stacRoot}/collections and 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 full properties, geometry, assets and 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 /search or /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 to bbox.
  • 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 an item or a collection.
  • geometry — the item footprint (GeoJSON), assets — the downloadable asset map (COGs, thumbnails, metadata), and properties — 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.