pystac-client
Python library for searching SpatioTemporal Asset Catalog (STAC) APIs.
Decision gist · record as of 2026-08-14
Yes. PySTAC Client is actively maintained, has low install friction, carries no known vulnerabilities, and is the standard Python tool for querying STAC APIs. Install it if you need to search or access geospatial imagery from STAC-compliant services. The Apache-2.0 license is permissive for commercial use.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; a working STAC API endpoint URL is needed to perform searches.
- Low friction installation with only three direct dependencies (requests, pystac, python-dateutil).
- The package is actively maintained with recent commits and supports current Python versions (3.10, 3.11, 3.12).
License · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions beyond attribution and liability disclaimers.
last release 2025-07-18 (392 days) · last repo commit 2026-08-11 · 207 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 573,861 downloads/mo, #5,943 on PyPI
Alternatives
Verify before relying
pip install pystac-client
import pystac_client
# Search a STAC API for items
catalog = pystac_client.Client.open('https://example.com/stac')
items = catalog.search(collections=['collection-id']).get_all_items()- Whether the package handles authentication for protected STAC APIs or requires external credential management.
- Performance characteristics when working with large result sets or paginated responses from STAC endpoints.
What it is and what it does
PySTAC Client wraps the STAC specification into a Python API, letting you connect to remote STAC catalogs and search for geospatial assets (satellite imagery, raster data, etc.) by spatial bounds, time range, or collection. It sits on top of pystac (which handles local catalog structure) and requests (for HTTP communication), providing a higher-level interface for discovering and accessing spatiotemporal data from services that publish their holdings via the STAC standard.
The library is intended for developers building geospatial applications, data pipelines, or analysis workflows that need to query multiple imagery sources or catalogs programmatically. It handles the API protocol details so you can focus on filtering and retrieving the assets you need.
Use it for
- Search a remote STAC API for satellite imagery over a specific geographic region and time period.
- Build a data pipeline that automatically discovers and downloads raster datasets from multiple STAC-compliant catalogs.
- Query a STAC catalog to find available collections and inspect their metadata before fetching data.
- Integrate STAC discovery into a geospatial analysis application to let users search for imagery on demand.
- Programmatically retrieve asset URLs and metadata from STAC search results for batch processing.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
PySTAC Client is actively maintained, has low install friction, carries no known vulnerabilities, and is the standard Python tool for querying STAC APIs. Install it if you need to search or access geospatial imagery from STAC-compliant services. The Apache-2.0 license is permissive for commercial use.
Install
pystac-client on PyPI
Before you install
Low friction installation with only three direct dependencies (requests, pystac, python-dateutil). The package is actively maintained with recent commits and supports current Python versions (3.10, 3.11, 3.12).
Requires Python 3.10 or later; a working STAC API endpoint URL is needed to perform searches.
License in practice
Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions beyond attribution and liability disclaimers.
Quickstart
pip install pystac-client
import pystac_client
# Search a STAC API for items
catalog = pystac_client.Client.open('https://example.com/stac')
items = catalog.search(collections=['collection-id']).get_all_items()
Verify before relying
- Whether the package handles authentication for protected STAC APIs or requires external credential management.
- Performance characteristics when working with large result sets or paginated responses from STAC endpoints.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesrequestspystacpython-dateutil |
| Maintenance | Actively maintained 392 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 573,861 / month, #5,943 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Topic :: Scientific/Engineering :: GISTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python Modules |
Evidence: pystac_client-0.9.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 › “STAC API client”
- pystac-clientPySTAC Client is a Python library for querying and working with…
- stac-fastapi-typesProvides core type definitions and data models for building STAC API…
- planetary-computerSigns Azure Blob Storage URLs and STAC objects to grant read access…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also owslib · planetary-computer · pystac · pystac-core · odc-stac · pypgstac · stactools-met-office-deterministic · pystac-ext-raster · pystac-ext-view · stac-fastapi-extensions