skillfed

earthaccess

Client library for NASA Earthdata APIs

earthaccess v0.18.0 253.7K downloads/30d#8,510 on PyPI628
Permissive license MIT Active released

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

earthaccess searches, downloads, and streams NASA Earth science data through a simple Python interface, handling authentication and data access across cloud and on-premises storage.

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

pip

pip install earthaccess

uv

uv add earthaccess

poetry

poetry add earthaccess

Installing earthaccess

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.

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')

Requires Python 3.12 or later. NASA Earthdata account credentials needed for login and data access.

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 — fsspec, importlib-resources, multimethod, pqdm, python-cmr, requests, s3fs, tenacity, tinynetrc, typing-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)

Evidence: earthaccess-0.18.0-py3-none-any.whl

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

Tags

NASA Earth data downloadsearch NASA Earthdataaccess satellite dataNASA CMR searchdownload Earth science datastream remote sensing dataNASA data client library
nasa-dataearth-sciencegeospatial

More Software Development packages