Skip to main content
POST
Lists the Harmonized Landsat Sentinel-2 scenes NASA catalogued over a point or box since a date, newest first, at or under a cloud cover. Scene fields are observed; only latest is derived. Empty scenes with coverage.scenes_considered above zero means looked and nothing clear, scenes_too_cloudy and scenes_cloud_unknown say why; zero means no pass. coverage.complete false makes every count a lower bound. Landsat imagery courtesy of the US Geological Survey and NASA, public domain. Sentinel-2 imagery contains modified Copernicus Sentinel data, under the Copernicus Sentinel Data licence. Browse images are served by NASA LP DAAC and NASA GIBS.

Authentication

Requires x402 payment in the payment-signature header.

Request Body

number
Latitude in decimal degrees; give longitude too. From -90 to 90.
number
Longitude in decimal degrees; west is negative. From -180 to 180.
number[]
[west, south, east, north] in decimal degrees, at most 1 degree a side; instead of a point.
number
Highest scene cloud cover to list, in percent; fractions such as 20.5 are allowed. From 0 to 100. Defaults to 20.
string
Earliest acquisition date (UTC); default 30 days before the call, at most 1 year back. Use YYYY-MM-DD.
integer
Most scenes to return. From 1 to 25. Defaults to 5.

Response (200 OK)

Top-level envelope: success (boolean) and data (object). All fields below are nested under data.
string
Durable job ID for audit and lookup
string
Job status: completed
string
Always place_recent_imagery
object
The answer, described under Result below
object
Where the answer came from and when
string
The public body the data comes from. Always US National Aeronautics and Space Administration.
string
public when the data comes from a public body, commercial otherwise
string
When the lookup was made, as an ISO 8601 UTC time
string | null
The sensing start of the newest pass the catalogue holds in the window, whatever its cloud; null when there was no pass.

Result

Nested under data.result.
object
Coverage.
string
The first UTC day searched.
string[]
Products.
integer
How many passes the catalogue holds in the window across both products, whatever their cloud, by its own count.
integer
Passes examined, whatever their cloud: every pass in the window when complete is true, otherwise the newest 200 per product.
integer
Examined passes above max_cloud_pct.
integer
Examined passes the source gave no cloud figure for; never listed as clear.
boolean
True when every pass in the window was examined and the counts are exact; false when a product had more passes than one page, so scenes_considered, scenes_too_cloudy, scenes_cloud_unknown and total are lower bounds covering the newest passes only.
integer
Clear scenes among the examined passes, including any beyond limit; exact when coverage.complete is true, otherwise a lower bound.
integer
Scenes listed.
boolean
True when clear scenes beyond limit were left out, or when coverage.complete is false.
object[]
Scenes.
string
The granule name, for example HLS.L30.T11SLT.2026297T182822.v2.0.
string
landsat (HLS L30, Landsat 8/9) or sentinel2 (HLS S30, Sentinel-2).
string
Sensing start, ISO 8601 UTC.
number | null
Scene cloud cover the source reported, 0 to 100; null when it reported none.
string
A JPEG the caller can open without a login: the granule browse image for landsat, a GIBS snapshot of the scene footprint on the acquisition day for sentinel2.
string
The granule record in the NASA Common Metadata Repository.
object | null
The first scene, or null.
string
The granule name, for example HLS.L30.T11SLT.2026297T182822.v2.0.
string
landsat (HLS L30, Landsat 8/9) or sentinel2 (HLS S30, Sentinel-2).
string
Sensing start, ISO 8601 UTC.
number | null
Scene cloud cover the source reported, 0 to 100; null when it reported none.
string
A JPEG the caller can open without a login: the granule browse image for landsat, a GIBS snapshot of the scene footprint on the acquisition day for sentinel2.
string
The granule record in the NASA Common Metadata Repository.
object
Derived.
object
Latest.
string | null
The id of latest. null when the source gives no value.
string
Rule.
string[]
From.
See Pricing for this tool’s price. A wallet (x402) call receives it in the 402 quote before anything is charged; a call paid from prepaid credits is charged when the API accepts the request and answers 200.

Notes

  • Scenes are 30 m; each product passes every 2 to 3 days. Open ocean and the poles are not imaged. derived.latest names its rule and the fields it reads.
  • Give latitude and longitude, or bbox as [west, south, east, north] in decimal degrees at most 1 degree a side; not both.
  • since (YYYY-MM-DD, UTC) defaults to 30 days before the call and may be at most 1 year back. max_cloud_pct (0 to 100) defaults to 20. limit defaults to 5, at most 25.
  • coverage.scenes_considered counts every examined pass whatever its cloud; scenes_too_cloudy those above max_cloud_pct; scenes_cloud_unknown those the source gave no cloud figure for, which are never listed as clear. coverage.scenes_in_window is the catalogue’s own count of passes in the window. When scenes_considered is zero the sensor had no pass: an empty list is then no evidence either way.
  • At most the newest 200 passes per product are examined. coverage.complete is true when that is every pass in the window, so the counts and total are exact; false when older passes were left unexamined, so scenes_considered, scenes_too_cloudy, scenes_cloud_unknown and total are lower bounds and truncated is true. truncated is also true when clear scenes beyond limit were left out.
  • A landsat browse_url is the granule browse JPEG. Sentinel-2 granules carry none, so their browse_url is a GIBS Worldview snapshot of the HLS Sentinel-2 layer over the scene footprint on the acquisition day: a daily composite, not the single granule.
  • cloud_pct is the whole-scene figure the source reported; a clear scene may still have cloud over the exact point.
  • Results return inline. The finished job stays available at /v1/requests/{request_id}