earthaccess
Client library for NASA Earthdata APIs
Decision gist · record as of 2026-08-14
Yes. earthaccess is actively maintained, carries no known vulnerabilities, has low install friction, and solves a real problem for researchers needing NASA data. The MIT license is permissive, and the three-step API (login, search, download) is straightforward. Install it if you need to access NASA Earth science data programmatically; the main constraint is the Python 3.12+ requirement.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.12 or later.
- NASA Earthdata account credentials needed for login and data access.
- Low install friction with a pure-Python wheel and ten runtime dependencies.
License · maintenance · safety
MIT (permissive) — MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both open and proprietary projects.
last release 2026-05-12 (94 days) · last repo commit 2026-08-12 · 628 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 253,694 downloads/mo, #8,510 on PyPI
Alternatives
Verify before relying
pip install earthaccess
import earthaccess
earthaccess.login()
results = earthaccess.search_data(short_name='ATL06', bounding_box=(-10, 20, 10, 50))
files = earthaccess.download(results, '/tmp/data')- Whether authentication can be automated via environment variables or stored credentials without interactive login.
- Performance characteristics when downloading large datasets or streaming data over slow connections.
- Specific NASA data collections and formats supported beyond the ATL06 example.
What it is and what it does
earthaccess is a Python client library that simplifies access to NASA Earth science data by wrapping the NASA CMR (Common Metadata Repository) API and Earthdata authentication. It abstracts away the complexity of querying NASA's distributed data holdings and handles downloads from multiple storage backends—both cloud-hosted and on-premises—through a three-step workflow: login, search, and download. The library depends on fsspec for filesystem abstraction, requests for HTTP communication, s3fs for cloud storage access, and several utility packages for retry logic and metadata parsing.
The package targets researchers and data scientists who need to programmatically access satellite and Earth observation data without managing authentication tokens, API endpoints, or storage-specific download logic. It is actively maintained, supports modern Python versions (3.12 and 3.13), and carries no known security vulnerabilities. The low install friction and permissive MIT license make it accessible for both academic and commercial workflows.
Use it for
- Retrieve ICESat-2 or MODIS data for a specific geographic region and time period in a research notebook.
- Automate batch downloads of Earth observation data for climate or land-use analysis pipelines.
- Stream remote sensing data directly into memory for real-time processing without intermediate storage.
- Build a data ingestion workflow that handles authentication and multi-source data access transparently.
- Prototype geospatial analysis without writing custom NASA API client code.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
earthaccess is actively maintained, carries no known vulnerabilities, has low install friction, and solves a real problem for researchers needing NASA data. The MIT license is permissive, and the three-step API (login, search, download) is straightforward. Install it if you need to access NASA Earth science data programmatically; the main constraint is the Python 3.12+ requirement.
Install
earthaccess on PyPI
Before you install
Low install friction with a pure-Python wheel and ten runtime dependencies. The project is actively maintained with recent commits and a stable release cadence.
Requires Python 3.12 or later. NASA Earthdata account credentials needed for login and data access.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both open and proprietary projects.
Quickstart
pip install earthaccess
import earthaccess
earthaccess.login()
results = earthaccess.search_data(short_name='ATL06', bounding_box=(-10, 20, 10, 50))
files = earthaccess.download(results, '/tmp/data')
Verify before relying
- Whether authentication can be automated via environment variables or stored credentials without interactive login.
- Performance characteristics when downloading large datasets or streaming data over slow connections.
- Specific NASA data collections and formats supported beyond the ATL06 example.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.12 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 10 packagesfsspecimportlib-resourcesmultimethodpqdmpython-cmrrequestss3fstenacitytinynetrctyping-extensions |
| Maintenance | Actively maintained 94 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 253,694 / month, #8,510 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaEnvironment :: ConsoleFramework :: IPythonIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: Software DevelopmentTopic :: Software Development :: Libraries |
Evidence: earthaccess-0.18.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “NASA Earth data download”
- earthaccessearthaccess searches, downloads, and streams NASA Earth science data…
- python-cmrProvides a Python wrapper around NASA's Common Metadata Repository…
- skyfield-dataProvides pre-packaged astronomical data files (ephemerides and Earth…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also python-cmr · earthengine-api · datacube · geemap · skyfield · geocif · skyfield-data · xee · sgp4 · astropy-iers-data