Search nasa earthdata collections
When the user asks about NASA datasets, satellite data, Earth observation collections, or what data exists for a topic like land surface temperature, aerosols, sea ice, or soil moisture — search NASA's CMR catalog by keyword. No auth for search.
search-nasa-earthdata-collections
· v1
· updated 2026-04-16
When to use this skill
When the user asks what NASA datasets exist for a topic — land surface temperature, sea ice, aerosols, soil moisture, or any Earth science keyword — reach for CMR's keyword search. CMR indexes every collection across all of NASA's DAACs, including ESA Sentinel data alongside NASA missions. For downloading individual data files, use granule search after identifying the collection. For real-time satellite imagery or weather forecasts, this is the wrong skill.
Your best first call
curl "https://cmr.earthdata.nasa.gov/search/collections.json?keyword=land+surface+temperature&page_size=2"
No auth. No key. Replace keyword with the user's search term — multi-word phrases use + as separator. Use page_size to bound the response; CMR defaults to 10 results.
The response wraps results in feed.entry[] (not a plain array). Key fields per entry:
id — concept ID (e.g., C1748046084-LPCLOUD). C prefix means collection; suffix is the DAAC code. Your key for subsequent lookups.
entry_id — product short name and version: MYD11A1_061 means product MYD11A1 at version 061. MYD signals Aqua satellite; MOD means Terra.
dataset_id — full human-readable collection name.
short_name — product acronym without version.
processing_level_id — "3" means gridded time-averaged geophysical quantities; "1B" means calibrated raw instrument output.
cloud_hosted — true means data is on AWS S3 for direct cloud access.
Fallbacks (when the best call isn't enough)
- Full metadata for a specific collection →
https://cmr.earthdata.nasa.gov/search/concepts/{concept_id}.json — platforms, organizations, orbit parameters. Use after you have a concept ID from search.
- Downloadable data files within a collection →
https://cmr.earthdata.nasa.gov/search/granules.json?short_name={short_name} — requires a collection identifier; bare granule search returns 400. Accessing files requires a free Earthdata login.
Pitfalls
- The
.json suffix is inconsistent. Search endpoints (/collections.json, /granules.json) require it. Metadata endpoints (/providers, /tags) return JSON by default and 404 if you append .json. Set Accept: application/json instead of memorizing which endpoints want the suffix.
processing_level_id is a string, not a number. "3" is Level 3 (gridded averages); "1B" is Level 1B (calibrated radiances). Don't compare numerically.
cloud_hosted: true means S3 access exists, but downloading actual files requires a free Earthdata login with the DAAC's data access policy accepted. The search is unauthenticated; the data is not.
One-line summary for the user
I can search NASA's Earth observation data catalog for collections matching a keyword — satellite imagery, climate data, land surface temperature, aerosols — using CMR, no auth for search, but downloading files requires a free Earthdata login.
SKILL.md source (frontmatter + body)
---
name: search-nasa-earthdata-collections
description: When the user asks about NASA datasets, satellite data, Earth observation collections, or what data exists for a topic like land surface temperature, aerosols, sea ice, or soil moisture — search NASA's CMR catalog by keyword. No auth for search.
---
## When to use this skill
When the user asks what NASA datasets exist for a topic — land surface temperature, sea ice, aerosols, soil moisture, or any Earth science keyword — reach for CMR's keyword search. CMR indexes every collection across all of NASA's DAACs, including ESA Sentinel data alongside NASA missions. For downloading individual data files, use granule search after identifying the collection. For real-time satellite imagery or weather forecasts, this is the wrong skill.
## Your best first call
```bash
curl "https://cmr.earthdata.nasa.gov/search/collections.json?keyword=land+surface+temperature&page_size=2"
```
No auth. No key. Replace `keyword` with the user's search term — multi-word phrases use `+` as separator. Use `page_size` to bound the response; CMR defaults to 10 results.
The response wraps results in `feed.entry[]` (not a plain array). Key fields per entry:
- `id` — concept ID (e.g., `C1748046084-LPCLOUD`). `C` prefix means collection; suffix is the DAAC code. Your key for subsequent lookups.
- `entry_id` — product short name and version: `MYD11A1_061` means product MYD11A1 at version 061. `MYD` signals Aqua satellite; `MOD` means Terra.
- `dataset_id` — full human-readable collection name.
- `short_name` — product acronym without version.
- `processing_level_id` — `"3"` means gridded time-averaged geophysical quantities; `"1B"` means calibrated raw instrument output.
- `cloud_hosted` — `true` means data is on AWS S3 for direct cloud access.
## Fallbacks (when the best call isn't enough)
- **Full metadata for a specific collection** → `https://cmr.earthdata.nasa.gov/search/concepts/{concept_id}.json` — platforms, organizations, orbit parameters. Use after you have a concept ID from search.
- **Downloadable data files within a collection** → `https://cmr.earthdata.nasa.gov/search/granules.json?short_name={short_name}` — requires a collection identifier; bare granule search returns 400. Accessing files requires a free Earthdata login.
## Pitfalls
- The `.json` suffix is inconsistent. Search endpoints (`/collections.json`, `/granules.json`) require it. Metadata endpoints (`/providers`, `/tags`) return JSON by default and 404 if you append `.json`. Set `Accept: application/json` instead of memorizing which endpoints want the suffix.
- `processing_level_id` is a string, not a number. `"3"` is Level 3 (gridded averages); `"1B"` is Level 1B (calibrated radiances). Don't compare numerically.
- `cloud_hosted: true` means S3 access exists, but downloading actual files requires a free Earthdata login with the DAAC's data access policy accepted. The search is unauthenticated; the data is not.
## One-line summary for the user
I can search NASA's Earth observation data catalog for collections matching a keyword — satellite imagery, climate data, land surface temperature, aerosols — using CMR, no auth for search, but downloading files requires a free Earthdata login.