{"id":20391885,"url":"https://github.com/radiantearth/stac-api-spec","last_synced_at":"2025-04-07T18:11:00.756Z","repository":{"id":37476245,"uuid":"244417622","full_name":"radiantearth/stac-api-spec","owner":"radiantearth","description":"SpatioTemporal Asset Catalog API specification - an API to make geospatial assets openly searchable and crawlable","archived":false,"fork":false,"pushed_at":"2024-09-27T21:12:08.000Z","size":9425,"stargazers_count":233,"open_issues_count":27,"forks_count":48,"subscribers_count":20,"default_branch":"release/v1.0.0","last_synced_at":"2025-03-31T17:07:34.009Z","etag":null,"topics":["ogc-api","spatiotemporal-asset-catalog","stac-api"],"latest_commit_sha":null,"homepage":"http://stacspec.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/radiantearth.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-02T16:21:32.000Z","updated_at":"2025-03-28T07:33:12.000Z","dependencies_parsed_at":"2022-08-02T01:09:40.188Z","dependency_job_id":"ba7f7b5c-4baf-4831-83e8-db13f0c5aa88","html_url":"https://github.com/radiantearth/stac-api-spec","commit_stats":{"total_commits":1720,"total_committers":65,"mean_commits":26.46153846153846,"dds":0.7784883720930232,"last_synced_commit":"604ade6158de15b8ab068320ca41e25e2bf0e116"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiantearth%2Fstac-api-spec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiantearth%2Fstac-api-spec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiantearth%2Fstac-api-spec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiantearth%2Fstac-api-spec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/radiantearth","download_url":"https://codeload.github.com/radiantearth/stac-api-spec/tar.gz/refs/heads/release/v1.0.0","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247704569,"owners_count":20982298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ogc-api","spatiotemporal-asset-catalog","stac-api"],"created_at":"2024-11-15T03:37:25.322Z","updated_at":"2025-04-07T18:11:00.723Z","avatar_url":"https://github.com/radiantearth.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--lint disable no-html--\u003e\r\n\u003cimg src=\"https://github.com/radiantearth/stac-site/raw/master/images/logo/stac-030-long.png\" alt=\"stac-logo\" width=\"700\"/\u003e\r\n\r\n# STAC API Foundation Specifications\r\n\r\n- [STAC API Foundation Specifications](#stac-api-foundation-specifications)\r\n  - [Releases (stable)](#releases-stable)\r\n  - [Development (unstable)](#development-unstable)\r\n  - [About](#about)\r\n  - [Stability Note](#stability-note)\r\n  - [Maturity Classification](#maturity-classification)\r\n  - [Communication](#communication)\r\n  - [In this repository](#in-this-repository)\r\n  - [Contributing](#contributing)\r\n\r\n## Releases (stable)\r\n\r\n- [v1.0.0](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0) (latest)\r\n- [v1.0.0-rc.4](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-rc.4)\r\n- [v1.0.0-rc.3](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-rc.3)\r\n- [v1.0.0-rc.2](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-rc.2)\r\n- [v1.0.0-rc.1](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-rc.1)\r\n- [v1.0.0-beta.5](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.5)\r\n- [v1.0.0-beta.4](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.4)\r\n- [v1.0.0-beta.3](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.3)\r\n- [v1.0.0-beta.2](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.2)\r\n- [v1.0.0-beta.1](https://github.com/radiantearth/stac-api-spec/tree/v1.0.0-beta.1)\r\n- [v0.9.0](https://github.com/radiantearth/stac-api-spec/tree/v0.9.0)\r\n\r\n## Development (unstable)\r\n\r\nThe [main](https://github.com/radiantearth/stac-api-spec/tree/main) branch in GitHub is\r\nused for active development and may be unstable. Implementers should reference one of\r\nthe release branches above for a stable version of the specification.\r\n**NOTE**: This means that if you are on github.com/radiantearth/stac-api-spec then you are looking at an unreleased,\r\nunstable version of the specification. Use the first listed link on releases to read the current released, stable version\r\nof the spec.\r\n\r\n## About\r\n\r\nThe SpatioTemporal Asset Catalog (STAC) family of specifications aim to standardize the way geospatial asset metadata is structured and queried.\r\nA 'spatiotemporal asset' is any file that represents information about the Earth captured in a certain space and \r\ntime. The core STAC specifications live in the GitHub repository [radiantearth/stac-spec](https://github.com/radiantearth/stac-spec).\r\n\r\nA STAC API is a dynamic version of a SpatioTemporal Asset Catalog. This repository defines the three\r\nSTAC API foundation specifications -- [STAC API - Core](core/),\r\n[STAC API - Features](ogcapi-features/), and [STAC API - Item Search](item-search/) -- which can be composed \r\nwith [Extensions](extensions.md) to define a specific STAC API implementation.\r\n\r\nA STAC API can be used to retrieve STAC [Catalog](stac-spec/catalog-spec/catalog-spec.md), \r\n[Collection](stac-spec/collection-spec/collection-spec.md), [Item](stac-spec/item-spec/item-spec.md), \r\nor STAC API [ItemCollection](fragments/itemcollection/README.md) objects from various endpoints.\r\nCatalog and Collection objects are JSON, while Item and ItemCollection objects are GeoJSON-compliant entities with foreign members.\r\nTypically, a Feature is used when returning a single Item object, and FeatureCollection when multiple Item objects (rather than a \r\nJSON array of Item entities).\r\n\r\nThe API can be implemented in compliance with the *[OGC API - Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html)* standard \r\n(OAFeat is a shorthand). In this case STAC API can be thought of as a specialized Features API \r\nto search STAC catalogs, where the features returned are STAC [Item](stac-spec/item-spec/item-spec.md) objects, \r\nthat have common properties, links to their assets and geometries that represent the footprints of the geospatial assets.\r\n\r\nThe specification for STAC API is provided as files that follow the [OpenAPI](http://openapis.org/) 3.0 specification, \r\nrendered online into HTML at \u003chttps://api.stacspec.org/v1.0.0\u003e, in addition to human-readable documentation.  \r\n\r\n## Stability Note\r\n\r\nThis specification has evolved over the past couple years, and is used in production in a variety of deployments. It is \r\ncurrently in a 'beta' state, with no major changes anticipated.\r\nAs of v1.0.0, we remain fully aligned with\r\n[OGC API - Features](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) \r\nVersion 1.0, and we are working to stay aligned\r\nas the additional OGC API components mature. This may result in minor changes as things evolve. The STAC API \r\nspecification follows [Semantic Versioning](https://semver.org/), so once 1.0.0 is reached any breaking change \r\nwill require the spec to go to 2.0.0.\r\n\r\n## Maturity Classification\r\n\r\nConformance classes and extensions are meant to evolve to maturity, and thus may be in different states\r\nin terms of stability and number of implementations. All extensions must include a \r\nmaturity classification, so that STAC API spec users can easily get a sense of how much they can count\r\non the extension. \r\n\r\n| Maturity Classification | Min Impl # | Description                                                                                                                                                | Stability                                                                                                 |\r\n| ----------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |\r\n| Proposal                | 0          | An idea put forward by a community member to gather feedback                                                                                               | Not stable - breaking changes almost guaranteed as implementers try out the idea.                         |\r\n| Pilot                   | 1          | Idea is fleshed out, with examples and a JSON schema, and implemented in one or more catalogs. Additional implementations encouraged to help give feedback | Approaching stability - breaking changes are not anticipated but can easily come from additional feedback |\r\n| Candidate               | 3          | A number of implementers are using it and are standing behind it as a solid extension. Can generally count on an extension at this maturity level          | Mostly stable, breaking changes require a new version and minor changes are unlikely.                     |\r\n| Stable                  | 6          | Highest current level of maturity. The community of extension maintainers commits to a STAC review process for any changes, which are not made lightly.    | Completely stable, all changes require a new version number and review process.                           |\r\n| Deprecated              | N/A        | A previous extension that has likely been superseded by a newer one or did not work out for some reason.                                                   | Will not be updated and may be removed in an upcoming major release.                                      |\r\n\r\nMaturity mostly comes through diverse implementations, so the minimum number of implementations\r\ncolumn is the main gating function for an extension to mature. But extension authors can also\r\nchoose to hold back the maturity advancement if they don't feel they are yet ready to commit to\r\nthe less breaking changes of the next level.\r\n\r\nA 'mature' classification level will likely be added once there are extensions that have been \r\nstable for over a year and are used in twenty or more implementations.\r\n\r\n## Communication\r\n\r\nFor any questions feel free to jump on our [gitter channel](https://gitter.im/SpatioTemporal-Asset-Catalog/Lobby) or email \r\nour [google group](https://groups.google.com/forum/#!forum/stac-spec). The majority of communication about the evolution of \r\nthe specification takes place in the [issue tracker](https://github.com/radiantearth/stac-api-spec/issues) and in \r\n[pull requests](https://github.com/radiantearth/stac-api-spec/pulls).\r\n\r\n## In this repository\r\n\r\nThe **[Overview](overview.md)** document describes all the various parts of the STAC API and how they fit together.\r\n\r\n**STAC API - Core:**\r\nThe *[core](core/)* folder describes the core STAC API specification that enables browsing catalogs and \r\nretrieving the API capabilities. This includes the OpenAPI schemas for STAC Item, Catalog and Collection objects.\r\n\r\n**STAC API - Features:**\r\nThe *[ogcapi-features](ogcapi-features)* folder describes how a STAC API can fully implement [OGC API - \r\nFeatures](http://docs.opengeospatial.org/is/17-069r3/17-069r3.html) to expose individual `items` endpoints for search of\r\neach STAC collection. It also includes extensions that can be used to further enhance OAFeat.\r\n\r\n**STAC API - Item Search Specification:**\r\nThe *[item-search](item-search)* folder contains the Item Search specification, which enables \r\ncross-collection search of STAC Item objects at a `search` endpoint, as well as a number of extensions. \r\n\r\n**Extensions:**\r\nThe *[extensions](extensions.md) document* describes how STAC adds new functionality\r\nthrough extensions. The official list of STAC API Extensions\r\nis maintained at [stac-api-extensions.github.io](https://stac-api-extensions.github.io).\r\n\r\n**Fragments:**\r\nThe *[fragments/](fragments/)* folder contains re-usable building blocks to be used in a STAC API, including common OpenAPI \r\nschemas and parameters for behavior like sorting and filtering. Most all of them are compatible with \r\nOGC API - Features, and the plan is to fully align the relevant functionality and have it be useful for all OAFeat implementations.\r\nOpenAPI YAML documents are provided for each extension with additional documentation and examples provided in a README.\r\n\r\n**STAC Specification:** This repository includes a '[sub-module](https://git-scm.com/book/en/v2/Git-Tools-Submodules)', which\r\nis a copy of the [STAC specification](stac-spec/) tagged at the latest stable version.\r\nSub-modules aren't checked out by default, so to get the directory populated\r\neither use `git submodule update --init --recursive` if you've already cloned it,\r\nor clone from the start with `git clone --recursive git@github.com:radiantearth/stac-api-spec.git`. \r\n\r\n**Implementation Recommendations:** Recommendations for implementing a STAC API may be found [here](implementation.md). \r\nThese are mostly concerns that apply to an entire API implementation and are not part of the specification itself.\r\n\r\n## Contributing\r\n\r\nAnyone building software that catalogs imagery or other geospatial assets is welcome to collaborate.\r\nBeforehand, please review our [guidelines for contributions and development process](CONTRIBUTING.md).\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradiantearth%2Fstac-api-spec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fradiantearth%2Fstac-api-spec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradiantearth%2Fstac-api-spec/lists"}