stac-server
July 1, 2026 ยท View on GitHub
A scalable, serverless implementation of the STAC API spec for searching geospatial metadata
๐ Documentation: stac-utils.github.io/stac-server
Table of Contents
Overview
Stac-server is a production-ready implementation of the STAC API specification for searching and serving metadata for geospatial data, including satellite imagery. Built on AWS serverless infrastructure (Lambda, API Gateway, OpenSearch), it provides a highly scalable and cost-effective solution for cataloging and discovering Earth observation data.
๐ Key Features
- ๐ก Full STAC API Support - Core, Features, Collections, Item Search with extensions
- ๐ Advanced Querying - Query and CQL2 filtering, full-text search, spatial and temporal queries
- ๐ Aggregations - Statistical summaries and frequency distributions via Aggregation Extension
- ๐ธ Serverless Architecture - Auto-scaling, pay-per-use AWS Lambda and API Gateway
- ๐ Fine-Grained Access Control - OpenSearch security with optional pre/post hooks
- ๐จ Event-Driven Ingest - SNS/SQS-based ingestion pipeline with dead-letter handling
- ๐๏ธ Asset Proxying - Generate pre-signed S3 URLs for secure asset access
Tech Stack
- Runtime: Node.js 22 (AWS Lambda)
- API Framework: AWS API Gateway with Lambda proxy integration
- Database: AWS OpenSearch Service
- Queue/Events: AWS SNS and SQS for ingest pipeline
- Infrastructure: Serverless Framework for deployment
- Language: TypeScript
๐ Quick Start
Get started with Docker Compose for local development:
# Clone and install
git clone https://github.com/stac-utils/stac-server.git
cd stac-server
npm install
# Start OpenSearch and LocalStack
docker compose up -d
# Start the STAC API on http://localhost:3000 (leave this running)
npm run serve
# In a separate terminal: ingest sample data, then query the API
npm run ingest:example
curl http://localhost:3000/
For AWS deployment, configuration, and production setup, see the complete documentation.
๐ Documentation
Comprehensive documentation is available at stac-utils.github.io/stac-server
Quick Links
- Getting Started - Installation and quick setup
- Usage Guide - Searching, filtering, aggregations, and more
- Configuration - Environment variables and collection settings
- Deployment - AWS deployment with Serverless Framework
- API Reference - Complete endpoint documentation
- Architecture - System design and data flows
- Contributing - Development setup and guidelines
Supported Versions
| stac-server Version(s) | STAC Version | STAC API Version |
|---|---|---|
| 0.1.x | 0.9.x | 0.9.x |
| 0.2.x | <1.0.0-rc.1 | 0.9.x |
| 0.3.x | 1.0.0 | 1.0.0-beta.2 |
| 0.4.x | 1.0.0 | 1.0.0-beta.5 |
| 0.5.x-0.8.x | 1.0.0 | 1.0.0-rc.2 |
| 1.0.0-3.9.x | 1.0.0 | 1.0.0 |
| >=3.10.0 | 1.1.0 | 1.0.0 |
๐ Production Deployments
The following production instances are powered by stac-server:
- Earth Search v1 - Catalog of AWS Public Datasets (STAC 1.0.0)
- USGS Astrogeology STAC API - Planetary data catalog (STAC 1.0.0)
- Landsat Look - USGS Landsat imagery catalog
๐ฝ Contributing
We welcome contributions! For development setup, testing, and contribution guidelines, see the Contributing Guide.
Quick links:
License
stac-server is licensed under The MIT License.
stac-server began in 2016 as Development Seed's sat-api (original license) and is now a community project under the stac-utils organization. Copyright is held by its contributors and their respective organizations (including Development Seed and Element 84); see the LICENSE.
stac-server was forked from sat-api. Stac-server is for STAC versions 0.9.0+, while sat-api exists for versions of STAC prior to 0.9.0.