{"id":41435632,"url":"https://github.com/ecmwf-projects/cads-catalogue-api-service","last_synced_at":"2026-01-23T14:37:27.864Z","repository":{"id":180715290,"uuid":"505390094","full_name":"ecmwf-projects/cads-catalogue-api-service","owner":"ecmwf-projects","description":"STAC based API service for the Climate \u0026 Atmosphere Data Store","archived":false,"fork":false,"pushed_at":"2026-01-12T11:33:55.000Z","size":471,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-12T19:24:04.622Z","etag":null,"topics":["api-rest","cads","fastapi"],"latest_commit_sha":null,"homepage":"","language":"Python","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/ecmwf-projects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-20T10:14:13.000Z","updated_at":"2026-01-12T11:33:58.000Z","dependencies_parsed_at":"2023-11-15T05:35:06.004Z","dependency_job_id":"d545c682-1a59-4ecd-a58d-08707a31b724","html_url":"https://github.com/ecmwf-projects/cads-catalogue-api-service","commit_stats":{"total_commits":243,"total_committers":8,"mean_commits":30.375,"dds":0.3168724279835391,"last_synced_commit":"fabebbb43db88507e53d0faf274b937bb55e2cb0"},"previous_names":["ecmwf-projects/cads-catalogue-api-service"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/ecmwf-projects/cads-catalogue-api-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fcads-catalogue-api-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fcads-catalogue-api-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fcads-catalogue-api-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fcads-catalogue-api-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecmwf-projects","download_url":"https://codeload.github.com/ecmwf-projects/cads-catalogue-api-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecmwf-projects%2Fcads-catalogue-api-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28694445,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T14:15:13.573Z","status":"ssl_error","status_checked_at":"2026-01-23T14:09:05.534Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["api-rest","cads","fastapi"],"created_at":"2026-01-23T14:37:26.893Z","updated_at":"2026-01-23T14:37:27.856Z","avatar_url":"https://github.com/ecmwf-projects.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cads-catalogue-api-service\n\nSTAC based API service for the Climate \u0026 Atmosphere Data Store\n\n## Running the API\n\n```bash\ncatalogue_db_name=catalogue catalogue_db_user=cads catalogue_db_password=******** catalogue_db_host_read=localhost catalogue_db_host=localhost uvicorn cads_catalogue_api_service.main:app --host 0.0.0.0 --proxy-headers --forwarded-allow-ips \"*\" --log-level info --reload\n```\n\n## REST API description\n\nLet say that WSGI service root is configured to serve the API at `http://localhost:8000/api/catalogue/v1`.\n\nThe Swagger/OpenAPI documentation can be accessed at \u003chttp://localhost:8080/api/catalogue/v1/docs\u003e.\n\nTo access the list of all datasets (STAC collections index):\n\n```bash\ncurl http://localhost:8080/api/catalogue/v1/collections | jq\n```\n\nTo access a dataset by id (STAC collection):\n\n```bash\ncurl http://localhost:8080/api/catalogue/v1/collections/reanalysis-era5-land-monthly-means | jq\n```\n\nTo obtain the thumbnail image of a dataset:\n\n```bash\ncurl http://localhost:8080/api/catalogue/v1/collections/reanalysis-era5-land-monthly-means | jq -r .assets.thumbnail.href\n```\n\n### Links\n\nMany related information are obtained using hypermedia-like resources (as defined by the OGC standard itself). \\\nEvery dataset provides a `links` array.\n\n**Licenses** are provided using links with `rel=\"license\"` (the first license is also found in the `license` field), as defined by the STAC Collection.\n\n**Documentation** are provided using links with `rel=describedby\"`. \\\nOnly title and URL are provided for now.\n\n**Form** is a single link with `rel=form\"`.\n\n**Constraints** is a single link with `rel=constraints\"`.\n\n## Workflow for developers/contributors\n\nFor best experience create a new conda environment (e.g. DEVELOP) with Python 3.12:\n\n```bash\nconda create -n DEVELOP -c conda-forge python=3.12\nconda activate DEVELOP\n```\n\nBefore pushing to GitHub, run the following commands:\n\n1. Update conda environment: `make conda-env-update`\n1. Install this package: `pip install -e . --no-deps`\n1. Sync with the latest [template](https://github.com/ecmwf-projects/cookiecutter-conda-package) (optional): `make template-update`\n1. Run quality assurance checks: `make qa`\n1. Run tests: `make unit-tests`\n1. Run the static type checker: `make type-check`\n1. Build the documentation (see [Sphinx tutorial](https://www.sphinx-doc.org/en/master/tutorial/)): `make docs-build`\n\n## License\n\n```plain\nCopyright 2022, European Union.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecmwf-projects%2Fcads-catalogue-api-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fecmwf-projects%2Fcads-catalogue-api-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecmwf-projects%2Fcads-catalogue-api-service/lists"}