Getting Started with NASA Earthdata CMR

← NASA Earthdata CMR API

When to use this API

When you need to find, describe, or locate NASA Earth observation datasets — satellite imagery, climate reanalysis, land surface temperature, atmospheric aerosol measurements, sea surface height, and thousands more. CMR (Common Metadata Repository) is the catalog behind NASA's EOSDIS archive: it indexes every collection and every individual data file (granule) across all of NASA's Distributed Active Archive Centers (DAACs). It is surprisingly good at cross-agency data: collections from ESA's Sentinel missions sit alongside NASA's own Terra and Aqua products, all searchable through the same interface. For real-time satellite imagery or weather forecasts, look elsewhere; CMR is for discovering what datasets exist and where to download them.

Searching for satellite data collections by keyword

"What NASA datasets are available for land surface temperature?" The collections.json endpoint searches across thousands of NASA Earth science datasets by keyword, provider, spatial bounds, or temporal range. A keyword search is the simplest entry point.

curl "https://cmr.earthdata.nasa.gov/search/collections.json?keyword=land+surface+temperature&page_size=2" | head -c 10000
{
  "feed": {
    "entry": [
      {
        "processing_level_id": "3",
        "cloud_hosted": true,
        "boxes": ["-90 -180 90 180"],
        "time_start": "2002-07-04T00:00:00.000Z",
        "version_id": "061",
        "dataset_id": "MODIS/Aqua Land Surface Temperature/Emissivity Daily L3 Global 1km SIN Grid V061",
        "entry_id": "MYD11A1_061",
        "data_center": "LPCLOUD",
        "short_name": "MYD11A1",
        "id": "C1748046084-LPCLOUD"
      }
    ]
  }
}

The entry_id encodes both the product short name and its version: MYD11A1_061 means product MYD11A1 at collection version 061 (6.1). The "MYD" prefix signals Aqua satellite; "MOD" would mean Terra. The cloud_hosted: true field means the data is available on AWS S3 for direct cloud access — no need to download to local storage first. The concept ID in id (here C1748046084-LPCLOUD) is your key for all subsequent lookups: the C prefix means collection, and LPCLOUD is the DAAC that owns it.

NASA's CMR lists 3 datasets matching "land surface temperature," including MODIS/Aqua Land Surface Temperature/Emissivity Daily L3 Global (MYD11A1 v061), which is cloud-hosted on AWS and covers the entire globe at 1 km resolution from July 2002 onward.

Getting detailed metadata for a specific collection

"Tell me about the SLSTR instrument on Sentinel-3B — what does its data look like?" Once you have a concept ID from a collection search, /concepts/{concept_id}.json returns the full metadata record — summary, processing level, platforms, organizations, orbit parameters, and service capabilities.

curl "https://cmr.earthdata.nasa.gov/search/concepts/C1625667016-LAADS.json" | head -c 10000
{
  "processing_level_id": "1B",
  "cloud_hosted": true,
  "time_start": "2018-04-25T18:00:00.000Z",
  "version_id": "1",
  "dataset_id": "SLSTR/Sentinel-3B L1 Full Resolution Top of Atmosphere Radiances and Brightness Temperature",
  "entry_id": "S3B_SL_1_RBT_1",
  "short_name": "S3B_SL_1_RBT",
  "data_center": "LAADS",
  "organizations": ["NASA/GSFC/SED/ESD/HBSL/BISB/LAADS", "ESA/ESRIN"],
  "summary": "The SLSTR/Sentinel-3B L1 Full Resolution Top of Atmosphere Radiances and Brightness Temperature product...",
  "id": "C1625667016-LAADS"
}

This collection is a Level 1B product — raw instrument output, not a derived geophysical variable. That distinction matters: processing_level_id tells you what processing has been applied. Level 1B means calibrated radiances and brightness temperatures straight from the sensor; Level 3 means gridded, time-averaged geophysical quantities. The organizations field lists both NASA/GSFC/LAADS and ESA/ESRIN — CMR catalogs ESA Sentinel data alongside NASA missions, which is not obvious from the name "NASA Earthdata."

The SLSTR/Sentinel-3B Level 1B collection (S3B_SL_1_RBT) contains raw top-of-atmosphere radiances and brightness temperatures from the Sea and Land Surface Temperature Radiometer aboard Sentinel-3B. It's a Level 1B product — calibrated instrument output, not a derived variable. The data is jointly produced by NASA's LAADS and ESA's ESRIN.

Finding downloadable data files within a collection

"Where can I download the actual MYD11A1 data files for a specific date?" Granules are the individual data files within a collection — the things you actually download. Use /granules.json with a short_name filter. You must specify at least one collection identifier; the API will reject a bare granule search.

curl "https://cmr.earthdata.nasa.gov/search/granules.json?short_name=MYD11A1&page_size=1" | head -c 10000
{
  "feed": {
    "entry": [
      {
        "producer_granule_id": "MYD11A1.A2002185.h20v05.061.2020128174702",
        "time_start": "2002-07-04T00:00:00.000Z",
        "time_end": "2002-07-04T23:59:59.000Z",
        "cloud_cover": "2.0",
        "day_night_flag": "BOTH",
        "granule_size": "4.22369",
        "data_center": "LPCLOUD",
        "collection_concept_id": "C1748046084-LPCLOUD",
        "online_access_flag": true,
        "links": [
          {
            "rel": "http://esipfed.org/ns/fedsearch/1.1/data#",
            "title": "Download MYD11A1.A2002185.h20v05.061.2020128174702.hdf",
            "href": "https://data.lpdaac.earthdatacloud.nasa.gov/lp-prod-protected/MYD11A1.061/..."
          }
        ]
      }
    ]
  }
}

The cloud_cover field ("2.0" percent) is specific to optical and thermal sensors — for MODIS land products, it tells you how much of the tile is obscured by clouds. The day_night_flag is "BOTH" because MODIS Aqua orbits cross the terminator, producing both daytime and nighttime observations in the same granule. The producer_granule_id encodes the acquisition date (A2002185 = day 185 of 2002) and the sinusoidal tile (h20v05 — a specific 10-degree tile over West Africa). The download links in links point to NASA's Earthdata Cloud on AWS S3; accessing them requires a free Earthdata login with the DAAC's data access policy accepted.

The MYD11A1 collection has granules available from July 2002 onward. Each granule covers one day and one sinusoidal tile, includes a cloud_cover percentage (this one is 2%), and has direct download links via NASA's Earthdata Cloud on AWS S3. You'll need a free Earthdata login to access the actual data files.

Pitfalls

One-line summary for the user

I can search NASA's Earth observation data catalog for collections and individual data files by keyword, provider, spatial bounds, or temporal range — and tell you whether the data is cloud-hosted on AWS — but you'll need a free Earthdata login to download the actual files.