Sentinel Hub APIsentinel-hub.com ↗
Access Sentinel-1 and Sentinel-2 collection metadata, search imagery by bounding box and date, and compute band statistics via the Sentinel Hub STAC API.
What is the Sentinel Hub API?
This API exposes 6 endpoints covering the Sentinel Hub STAC catalog, letting you retrieve collection metadata, search imagery scenes, and run band-level statistics over custom areas of interest. The get_collections endpoint returns structured metadata for every available collection — including spatial bounding boxes, temporal intervals, spectral bands, platforms, and data providers. Companion endpoints handle catalog introspection, conformance class discovery, imagery processing, and statistical analysis.
No input parameters required.
curl -X POST 'https://api.parse.bot/scraper/c10683f6-4dad-49e8-b0e7-23417b97a14d/catalog_search' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"bbox": "[13.0, 45.0, 14.0, 46.0]",
"limit": "5",
"datetime": "2023-01-01T00:00:00Z/2023-01-31T23:59:59Z",
"collections": "[\"sentinel-2-l2a\"]"
}'Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace sentinel-hub-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Sentinel Hub STAC Catalog — discover satellite imagery collections and capabilities."""
from parse_apis.sentinel_hub_stac_catalog_api import SentinelHub, UpstreamError
client = SentinelHub()
# Fetch catalog root to see STAC version and available links
catalog = client.catalogs.get()
print(f"Catalog: {catalog.title} (STAC {catalog.stac_version})")
print(f"Conformance classes: {len(catalog.conformsTo)}")
# Check which query capabilities the API supports
conf = client.catalogs.conformance()
print(f"Supported standards: {len(conf.conformsTo)}")
# List all available satellite data collections
for col in client.collections.list(limit=5):
print(f"{col.id}: {col.title} — {col.description}")
if col.bands:
print(f" Bands: {', '.join(b.name for b in col.bands[:4])}")
if col.providers:
print(f" Providers: {', '.join(p.name for p in col.providers)}")
# Typed error handling
try:
catalog = client.catalogs.get()
print(f"Catalog ID: {catalog.id}")
except UpstreamError as exc:
print(f"Upstream issue: {exc}")
print("exercised: catalogs.get / catalogs.conformance / collections.list")
Search satellite imagery by bounding box, datetime range, and collections. Returns STAC-compliant items. Requires Bearer token in headers or prior authentication.
No input parameters required.
{
"sample": {
"status": "error",
"message": "Unauthorized. Call authenticate first."
}
}About the Sentinel Hub API
Collection and Catalog Discovery
The get_collections endpoint returns a collections array where each object includes the collection id, title, description, license, spatial_bbox, temporal_interval, platform, instrument, and constellation details. get_catalog_info returns the catalog root — id, type, title, description, stac_version, a conformsTo array of URI strings, and a links array with href, rel, type, and optional title and method fields. get_conformance returns just the conformsTo array, useful when you need to verify which STAC and OGC API conformance classes the server advertises.
Imagery Search and Processing
catalog_search accepts a POST body specifying a bounding box, datetime range, and target collections, returning STAC-compliant item records for matching scenes. This endpoint requires a Bearer token. process_image also takes a POST body and supports custom evalscripts for per-pixel spectral band manipulation over a defined area and time window — useful for computing indices like NDVI or extracting raw reflectance values. Both endpoints require authentication, so you will need a valid token before calling them.
Statistical Analysis
get_statistics computes aggregate band statistics over a defined area of interest (AOI). Like process_image, it uses a POST body and requires authentication. This is the appropriate endpoint when you need summary metrics — mean, min, max, histogram bins — rather than full raster output. The response shape for process_image, get_statistics, and catalog_search is not fixed in the current schema, so callers should handle flexible JSON or binary responses depending on the evalscript and format parameters supplied.
The Sentinel Hub API is a managed, monitored endpoint for sentinel-hub.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sentinel-hub.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official sentinel-hub.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Querying available Sentinel-2 spectral bands and temporal coverage before building a remote sensing pipeline
- Searching for cloud-free imagery scenes over a specific bounding box and date range using catalog_search
- Verifying STAC and OGC API conformance class support for interoperability with third-party GIS clients via get_conformance
- Computing vegetation index statistics (e.g. NDVI) over agricultural AOIs using get_statistics
- Listing all collection providers and spatial extents to map data availability for a given region
- Integrating STAC catalog metadata into a geospatial data catalog or asset management system
- Automating change detection workflows by querying temporal intervals from collection metadata
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Sentinel Hub have an official developer API?+
What does get_collections return for each collection?+
collections array includes the collection id, title, description, license, spatial_bbox (bounding box coordinates), temporal_interval (start and end dates), platform, instrument, and constellation information. The total field at the top level gives the count of collections returned.Does catalog_search support filtering by cloud cover or resolution?+
Are processed image responses returned as raw raster data or structured JSON?+
process_image is not fixed in the current schema — the format depends on parameters supplied in the POST body, including the evalscript and requested output format. Callers should expect either binary image data or structured JSON depending on configuration. Statistical output from get_statistics returns aggregate band metrics over the specified AOI.