{
    "openapi": "3.0.0",
    "info": {
        "title": "STAC API",
        "description": "This API exposes viageo.ch cloud-optimized geodata (COG rasters and COPC\npoint clouds) as a <a href=\"https://stacspec.org\" target=\"_blank\">STAC</a>\n(SpatioTemporal Asset Catalog).\n\nOne eligible geodata maps to one Collection (identified by its metadata\nUUID), each carrying a single Item with the cloud-optimized asset. Assets\nare served as raw, publicly accessible, range-capable URLs so that STAC\nclients (QGIS, GDAL, PDAL, \u2026) can read them directly.\n\nExposure is automatic: any geodata that is publicly downloadable, without\ncredentials, as a single-file direct URL in a COG/COPC format is published.\n\nThis service is not authenticated, and exposes only public data.\n",
        "termsOfService": "https://viageo.ch/conditions-generales",
        "contact": {
            "name": "ASIT Support",
            "url": "https://viageo.ch/#support",
            "email": "support@viageo.ch"
        },
        "version": "1.0.0"
    },
    "paths": {
        "/api/catalog/stac": {
            "get": {
                "summary": "STAC API landing page (root Catalog) with conformance classes and navigation links.",
                "operationId": "get_stac_api_landing.fr",
                "responses": {
                    "200": {
                        "description": "STAC landing page (root Catalog)."
                    }
                }
            },
            "head": {
                "summary": "STAC API landing page (root Catalog) with conformance classes and navigation links.",
                "operationId": "head_stac_api_landing.fr",
                "responses": {
                    "200": {
                        "description": "STAC landing page (root Catalog)."
                    }
                }
            }
        },
        "/api/catalog/stac/conformance": {
            "get": {
                "summary": "Conformance classes implemented by this API.",
                "operationId": "get_stac_api_conformance.fr",
                "responses": {
                    "200": {
                        "description": "List of conformance classes."
                    }
                }
            },
            "head": {
                "summary": "Conformance classes implemented by this API.",
                "operationId": "head_stac_api_conformance.fr",
                "responses": {
                    "200": {
                        "description": "List of conformance classes."
                    }
                }
            }
        },
        "/api/catalog/stac/collections": {
            "get": {
                "summary": "Paginated list of Collections (one per eligible GeoData).",
                "operationId": "get_stac_api_collections.fr",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of STAC Collections."
                    }
                }
            },
            "head": {
                "summary": "Paginated list of Collections (one per eligible GeoData).",
                "operationId": "head_stac_api_collections.fr",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of STAC Collections."
                    }
                }
            }
        },
        "/api/catalog/stac/collections/{collectionId}": {
            "get": {
                "summary": "A single Collection, addressed by its metadata UUID.",
                "operationId": "get_stac_api_collection.fr",
                "parameters": [
                    {
                        "name": "collectionId",
                        "in": "path",
                        "description": "Metadata UUID of the GeoData",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A STAC Collection."
                    },
                    "404": {
                        "description": "Collection not found or not STAC-eligible."
                    }
                }
            },
            "head": {
                "summary": "A single Collection, addressed by its metadata UUID.",
                "operationId": "head_stac_api_collection.fr",
                "parameters": [
                    {
                        "name": "collectionId",
                        "in": "path",
                        "description": "Metadata UUID of the GeoData",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A STAC Collection."
                    },
                    "404": {
                        "description": "Collection not found or not STAC-eligible."
                    }
                }
            }
        },
        "/api/catalog/stac/collections/{collectionId}/items": {
            "get": {
                "summary": "The Items of a Collection as a paginated GeoJSON FeatureCollection: one Item for a\nsingle-file Collection, one Item per tile for a tiled (URL+map) Collection.",
                "operationId": "get_stac_api_collection_items.fr",
                "parameters": [
                    {
                        "name": "collectionId",
                        "in": "path",
                        "description": "Metadata UUID of the GeoData",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Page size, 10 by default, 1000 at most",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Items of a Collection (FeatureCollection)."
                    },
                    "404": {
                        "description": "Collection not found or not STAC-eligible."
                    }
                }
            },
            "head": {
                "summary": "The Items of a Collection as a paginated GeoJSON FeatureCollection: one Item for a\nsingle-file Collection, one Item per tile for a tiled (URL+map) Collection.",
                "operationId": "head_stac_api_collection_items.fr",
                "parameters": [
                    {
                        "name": "collectionId",
                        "in": "path",
                        "description": "Metadata UUID of the GeoData",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Page size, 10 by default, 1000 at most",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Items of a Collection (FeatureCollection)."
                    },
                    "404": {
                        "description": "Collection not found or not STAC-eligible."
                    }
                }
            }
        },
        "/api/catalog/stac/collections/{collectionId}/items/{itemId}": {
            "get": {
                "summary": "A single Item of a Collection: \"data\" for a single-file Collection, the tile code\n(BFS number or km-grid id) for a tiled one.",
                "operationId": "get_stac_api_item.fr",
                "parameters": [
                    {
                        "name": "collectionId",
                        "in": "path",
                        "description": "Metadata UUID of the GeoData",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
                        }
                    },
                    {
                        "name": "itemId",
                        "in": "path",
                        "description": "Item identifier: \"data\" for a single-file Collection, the tile code for a tiled one",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A STAC Item (GeoJSON Feature)."
                    },
                    "404": {
                        "description": "Collection/Item not found or not STAC-eligible."
                    }
                }
            },
            "head": {
                "summary": "A single Item of a Collection: \"data\" for a single-file Collection, the tile code\n(BFS number or km-grid id) for a tiled one.",
                "operationId": "head_stac_api_item.fr",
                "parameters": [
                    {
                        "name": "collectionId",
                        "in": "path",
                        "description": "Metadata UUID of the GeoData",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
                        }
                    },
                    {
                        "name": "itemId",
                        "in": "path",
                        "description": "Item identifier: \"data\" for a single-file Collection, the tile code for a tiled one",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A STAC Item (GeoJSON Feature)."
                    },
                    "404": {
                        "description": "Collection/Item not found or not STAC-eligible."
                    }
                }
            }
        },
        "/api/catalog/stac/catalogs/by-provider": {
            "get": {
                "summary": "The \"by-provider\" grouping Catalog: one child per provider that has eligible data.",
                "operationId": "get_stac_api_providers_catalog.fr",
                "responses": {
                    "200": {
                        "description": "Catalog grouping eligible geodata by provider."
                    }
                }
            },
            "head": {
                "summary": "The \"by-provider\" grouping Catalog: one child per provider that has eligible data.",
                "operationId": "head_stac_api_providers_catalog.fr",
                "responses": {
                    "200": {
                        "description": "Catalog grouping eligible geodata by provider."
                    }
                }
            }
        },
        "/api/catalog/stac/catalogs/by-provider/{providerSlug}": {
            "get": {
                "summary": "One provider's Catalog: its eligible Collections as children (paginated).",
                "operationId": "get_stac_api_provider_catalog.fr",
                "parameters": [
                    {
                        "name": "providerSlug",
                        "in": "path",
                        "description": "Storefront slug of the provider",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A provider Catalog."
                    },
                    "404": {
                        "description": "Provider not found, disabled, or without eligible data."
                    }
                }
            },
            "head": {
                "summary": "One provider's Catalog: its eligible Collections as children (paginated).",
                "operationId": "head_stac_api_provider_catalog.fr",
                "parameters": [
                    {
                        "name": "providerSlug",
                        "in": "path",
                        "description": "Storefront slug of the provider",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A provider Catalog."
                    },
                    "404": {
                        "description": "Provider not found, disabled, or without eligible data."
                    }
                }
            }
        },
        "/api/catalog/stac/catalogs/by-provider/{providerSlug}/collections": {
            "get": {
                "summary": "The Collections of one provider (paginated): the `data` endpoint of the provider Catalog,\nwhich acts as the landing page of a STAC API scoped to that provider (see StacSerializer).",
                "operationId": "get_stac_api_provider_collections.fr",
                "parameters": [
                    {
                        "name": "providerSlug",
                        "in": "path",
                        "description": "Storefront slug of the provider",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The STAC Collections of one provider."
                    },
                    "404": {
                        "description": "Provider not found, disabled, or without eligible data."
                    }
                }
            },
            "head": {
                "summary": "The Collections of one provider (paginated): the `data` endpoint of the provider Catalog,\nwhich acts as the landing page of a STAC API scoped to that provider (see StacSerializer).",
                "operationId": "head_stac_api_provider_collections.fr",
                "parameters": [
                    {
                        "name": "providerSlug",
                        "in": "path",
                        "description": "Storefront slug of the provider",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The STAC Collections of one provider."
                    },
                    "404": {
                        "description": "Provider not found, disabled, or without eligible data."
                    }
                }
            }
        },
        "/api/catalog/stac/catalogs/by-category": {
            "get": {
                "summary": "The \"by-category\" grouping Catalog: one child per product category (StacCategory) that\nhas eligible data. See docs/stac/plan.md.",
                "operationId": "get_stac_api_categories_catalog.fr",
                "responses": {
                    "200": {
                        "description": "Catalog grouping eligible geodata by product category."
                    }
                }
            },
            "head": {
                "summary": "The \"by-category\" grouping Catalog: one child per product category (StacCategory) that\nhas eligible data. See docs/stac/plan.md.",
                "operationId": "head_stac_api_categories_catalog.fr",
                "responses": {
                    "200": {
                        "description": "Catalog grouping eligible geodata by product category."
                    }
                }
            }
        },
        "/api/catalog/stac/catalogs/by-category/{category}": {
            "get": {
                "summary": "One category's Catalog: its eligible Collections as children (paginated).",
                "operationId": "get_stac_api_category_catalog.fr",
                "parameters": [
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Product category code (StacCategory)",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "[A-Za-z_]+"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A category Catalog."
                    },
                    "404": {
                        "description": "Unknown category, or category without eligible data."
                    }
                }
            },
            "head": {
                "summary": "One category's Catalog: its eligible Collections as children (paginated).",
                "operationId": "head_stac_api_category_catalog.fr",
                "parameters": [
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Product category code (StacCategory)",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "[A-Za-z_]+"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A category Catalog."
                    },
                    "404": {
                        "description": "Unknown category, or category without eligible data."
                    }
                }
            }
        },
        "/api/catalog/stac/catalogs/by-category/{category}/collections": {
            "get": {
                "summary": "The Collections of one category (paginated): the `data` endpoint of the category Catalog,\nwhich acts as the landing page of a STAC API scoped to that category (see StacSerializer).",
                "operationId": "get_stac_api_category_collections.fr",
                "parameters": [
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Product category code (StacCategory)",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "[A-Za-z_]+"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The STAC Collections of one category."
                    },
                    "404": {
                        "description": "Unknown category, or category without eligible data."
                    }
                }
            },
            "head": {
                "summary": "The Collections of one category (paginated): the `data` endpoint of the category Catalog,\nwhich acts as the landing page of a STAC API scoped to that category (see StacSerializer).",
                "operationId": "head_stac_api_category_collections.fr",
                "parameters": [
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Product category code (StacCategory)",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "[A-Za-z_]+"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number, 1 by default",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The STAC Collections of one category."
                    },
                    "404": {
                        "description": "Unknown category, or category without eligible data."
                    }
                }
            }
        }
    }
}