ECMWF Data Stores STAC Catalogue API

STAC compliant API to access the ECMWF Data Stores catalogues - dataset collections, search, licences and keyword vocabularies, and dataset messages and changelogs.

Operations 21

GET / Landing Page #
GET /conformance Conformance Classes #
GET /collections Get Collections #
GET /collections/{collection_id} Get Collection #
GET /datasets Datasets Search #
POST /datasets Datasets Search #
GET /_mgmt/ping Ping #
GET /_mgmt/health Health #
GET /vocabularies/licences List Licences #
GET /vocabularies/licences/{licence_uid} Licence Details #
GET /vocabularies/keywords List Keywords #
GET /collections/{collection_id}/messages List Messages By Dataset #
GET /collections/{collection_id}/messages/changelog List Changelog By Id #
GET /messages List Messages #
GET /messages/changelog List Changelog #
GET /collections/{collection_id}/form.json Form Redirect #
GET /collections/{collection_id}/constraints.json Constraints Redirect #
GET /doi/{doi_prefix}/{doi_suffix} Redirect By Doi #
GET /contents/ Get Contents #
GET /contents/{ctype} Get Contents Of Type #
GET /contents/{ctype}/{id} Get Content #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ecmwf:ecmwf-data-stores-stac-catalogue-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ecmwf-data-stores-catalogue-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: ECMWF Data Stores STAC Catalogue
  description: 'This API is a [STAC](https://stacspec.org/) compliant API to access
    ECMWF Data Stores Service (DSS) catalogues.\

    The implementation is based on [Standalone STAC Collections](https://github.com/radiantearth/stac-spec/blob/master/collection-spec/collection-spec.md#standalone-collections)
    while a custom extension is included to provide search capabilities among collections.'
  version: '0.1'
paths:
  /:
    get:
      summary: Landing Page
      description: Endpoint.
      operationId: Landing_Page__get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LandingPage'
  /conformance:
    get:
      summary: Conformance Classes
      description: Endpoint.
      operationId: Conformance_Classes_conformance_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conformance'
  /collections:
    get:
      summary: Get Collections
      description: Endpoint.
      operationId: Get_Collections_collections_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collections'
  /collections/{collection_id}:
    get:
      summary: Get Collection
      description: Endpoint.
      operationId: Get_Collection_collections__collection_id__get
      parameters:
      - name: collection_id
        in: path
        required: true
        schema:
          type: string
          description: Collection ID
          title: Collection Id
        description: Collection ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /datasets:
    get:
      tags:
      - Datasets Search Extension
      summary: Datasets Search
      description: Filter datasets based on search parameters.
      operationId: Datasets_Search_datasets_get
      parameters:
      - name: q
        in: query
        required: false
        schema:
          type: string
          description: Full-text search query
          title: Q
        description: Full-text search query
      - name: kw
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: Filter by keyword(s)
          default: []
          title: Kw
        description: Filter by keyword(s)
      - name: idx
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: Filter by dataset IDs
          default: []
          title: Idx
        description: Filter by dataset IDs
      - name: sortby
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CatalogueSortCriterion'
          default: update
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
          title: Page
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          default: 50
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Datasets Search Datasets Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Datasets Search Extension
      summary: Datasets Search
      description: Filter datasets based on search parameters.
      operationId: Datasets_Search_datasets_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FormData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Datasets Search Datasets Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /_mgmt/ping:
    get:
      tags:
      - Liveliness/Readiness
      summary: Ping
      description: Liveliness probe.
      operationId: Ping__mgmt_ping_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Ping  Mgmt Ping Get
  /_mgmt/health:
    get:
      tags:
      - Liveliness/Readiness
      summary: Health
      operationId: Health__mgmt_health_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthCheck'
  /vocabularies/licences:
    get:
      tags:
      - vocabularies
      summary: List Licences
      description: Endpoint to get all registered licences.
      operationId: list_licences_vocabularies_licences_get
      parameters:
      - name: scope
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/LicenceScopeCriterion'
          default: all
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Licences'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /vocabularies/licences/{licence_uid}:
    get:
      tags:
      - vocabularies
      summary: Licence Details
      description: Licence details.
      operationId: licence_details_vocabularies_licences__licence_uid__get
      parameters:
      - name: licence_uid
        in: path
        required: true
        schema:
          type: string
          title: Licence UID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Licence'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /vocabularies/keywords:
    get:
      tags:
      - vocabularies
      summary: List Keywords
      description: Endpoint to get all available keywords.
      operationId: list_keywords_vocabularies_keywords_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Keywords'
        '404':
          description: Not found
  /collections/{collection_id}/messages:
    get:
      tags:
      - messages
      summary: List Messages By Dataset
      description: Endpoint to get all messages of a specific collection.
      operationId: list_messages_by_dataset_collections__collection_id__messages_get
      parameters:
      - name: collection_id
        in: path
        required: true
        schema:
          type: string
          title: Collection Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Messages'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /collections/{collection_id}/messages/changelog:
    get:
      tags:
      - messages
      summary: List Changelog By Id
      description: Endpoint to get historical messages of a dataset.
      operationId: list_changelog_by_id_collections__collection_id__messages_changelog_get
      parameters:
      - name: collection_id
        in: path
        required: true
        schema:
          type: string
          title: Collection Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Changelog'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /messages:
    get:
      tags:
      - messages
      summary: List Messages
      description: Endpoint to get all messages.
      operationId: list_messages_messages_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Messages'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /messages/changelog:
    get:
      tags:
      - messages
      summary: List Changelog
      description: Full changelog of site messages.
      operationId: list_changelog_messages_changelog_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Changelog'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /collections/{collection_id}/form.json:
    get:
      summary: Form Redirect
      description: Redirect to form.json (if defined).
      operationId: form_redirect_collections__collection_id__form_json_get
      parameters:
      - name: collection_id
        in: path
        required: true
        schema:
          type: string
          title: Collection Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /collections/{collection_id}/constraints.json:
    get:
      summary: Constraints Redirect
      description: Redirect to constraints.json (if defined).
      operationId: constraints_redirect_collections__collection_id__constraints_json_get
      parameters:
      - name: collection_id
        in: path
        required: true
        schema:
          type: string
          title: Collection Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /doi/{doi_prefix}/{doi_suffix}:
    get:
      tags:
      - doi
      summary: Redirect By Doi
      description: 'Permalink service to redirect to dataset page by querying using
        DOI.


        Required for keeping DOI compatibility from the old CDS.'
      operationId: redirect_by_doi_doi__doi_prefix___doi_suffix__get
      parameters:
      - name: doi_prefix
        in: path
        required: true
        schema:
          type: string
          title: Doi Prefix
      - name: doi_suffix
        in: path
        required: true
        schema:
          type: string
          title: Doi Suffix
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /contents/:
    get:
      tags:
      - contents
      summary: Get Contents
      description: Endpoint to get all contents in the material catalogue.
      operationId: Get_contents_contents__get
      parameters:
      - name: ctype
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          title: Ctype
      - name: related_dataset
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          title: Related Dataset
      - name: sortby
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ContentSortCriterion'
          default: title
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contents'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /contents/{ctype}:
    get:
      tags:
      - contents
      summary: Get Contents Of Type
      description: Endpoint to get all contents of a single type in the material catalogue.
      operationId: Get_contents_of_type_contents__ctype__get
      parameters:
      - name: ctype
        in: path
        required: true
        schema:
          type: string
          title: Ctype
      - name: sortby
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ContentSortCriterion'
          default: title
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contents'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /contents/{ctype}/{id}:
    get:
      tags:
      - contents
      summary: Get Content
      description: Endpoint to get a content.
      operationId: Get_content_contents__ctype___id__get
      parameters:
      - name: ctype
        in: path
        required: true
        schema:
          type: string
          title: Ctype
      - name: id
        in: path
        required: true
        schema:
          type: string
          title: Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Content'
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    Asset:
      properties:
        href:
          type: string
          minLength: 1
          title: Href
        type:
          anyOf:
          - type: string
          - type: 'null'
          title: Type
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        roles:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Roles
      additionalProperties: true
      type: object
      required:
      - href
      title: Asset
      description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md#asset-object
    BaseSearchPostRequest:
      properties:
        collections:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Collections
        ids:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Ids
        bbox:
          anyOf:
          - prefixItems:
            - anyOf:
              - type: number
              - type: integer
            - anyOf:
              - type: number
              - type: integer
            - anyOf:
              - type: number
              - type: integer
            - anyOf:
              - type: number
              - type: integer
            type: array
            maxItems: 4
            minItems: 4
          - prefixItems:
            - anyOf:
              - type: number
              - type: integer
            - anyOf:
              - type: number
              - type: integer
            - anyOf:
              - type: number
              - type: integer
            - anyOf:
              - type: number
              - type: integer
            - anyOf:
              - type: number
              - type: integer
            - anyOf:
              - type: number
              - type: integer
            type: array
            maxItems: 6
            minItems: 6
          - type: 'null'
          title: Bbox
        intersects:
          anyOf:
          - $ref: '#/components/schemas/Point'
          - $ref: '#/components/schemas/MultiPoint'
          - $ref: '#/components/schemas/LineString'
          - $ref: '#/components/schemas/MultiLineString'
          - $ref: '#/components/schemas/Polygon'
          - $ref: '#/components/schemas/MultiPolygon'
          - $ref: '#/components/schemas/GeometryCollection-Input'
          - type: 'null'
          title: Intersects
        datetime:
          anyOf:
          - type: string
          - type: 'null'
          title: Datetime
        limit:
          anyOf:
          - type: integer
            exclusiveMinimum: 0.0
          - type: 'null'
          title: Limit
          description: Limits the number of results that are included in each page
            of the response (capped to 10_000).
          default: 10
      type: object
      title: BaseSearchPostRequest
      description: Base arguments for POST Request.
    CatalogueSortCriterion:
      type: string
      enum:
      - publication
      - relevance
      - update
      - title
      - id
      title: CatalogueSortCriterion
      description: Sorting criteria for datasets search.
    Changelog:
      properties:
        changelog:
          items:
            $ref: '#/components/schemas/Message'
          type: array
          title: Changelog
      type: object
      required:
      - changelog
      title: Changelog
      description: Changelog vocabulary.
    Collection:
      properties:
        id:
          type: string
          minLength: 1
          title: Id
        description:
          type: string
          minLength: 1
          title: Description
        stac_version:
          type: string
          pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
          title: Stac Version
          default: 1.0.0
        links:
          $ref: '#/components/schemas/stac_pydantic__links__Links'
        stac_extensions:
          anyOf:
          - items:
              type: string
              minLength: 1
              format: uri
            type: array
          - type: 'null'
          title: Stac Extensions
          default: []
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        type:
          type: string
          const: Collection
          title: Type
        assets:
          anyOf:
          - additionalProperties:
              $ref: '#/components/schemas/Asset'
            type: object
          - type: 'null'
          title: Assets
        license:
          type: string
          minLength: 1
          title: License
        extent:
          $ref: '#/components/schemas/Extent'
        keywords:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Keywords
        providers:
          anyOf:
          - items:
              $ref: '#/components/schemas/Provider'
            type: array
          - type: 'null'
          title: Providers
        summaries:
          anyOf:
          - additionalProperties:
              anyOf:
              - $ref: '#/components/schemas/Range'
              - items: {}
                type: array
              - additionalProperties: true
                type: object
            type: object
          - type: 'null'
          title: Summaries
      additionalProperties: true
      type: object
      required:
      - id
      - description
      - links
      - type
      - license
      - extent
      title: Collection
      description: https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/ogcapi-features#collection-collectionscollectionid
    Collections:
      properties:
        links:
          $ref: '#/components/schemas/stac_pydantic__api__links__Links'
        collections:
          items:
            $ref: '#/components/schemas/Collection'
          type: array
          title: Collections
        numberMatched:
          anyOf:
          - type: integer
          - type: 'null'
          title: Numbermatched
        numberReturned:
          anyOf:
          - type: integer
          - type: 'null'
          title: Numberreturned
      type: object
      required:
      - links
      - collections
      title: Collections
      description: 'https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/ogcapi-features#endpoints

        https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/ogcapi-features#collections-collections'
    Conformance:
      properties:
        conformsTo:
          items:
            type: string
            minLength: 1
            format: uri
          type: array
          title: Conformsto
      type: object
      required:
      - conformsTo
      title: Conformance
      description: https://github.com/radiantearth/stac-api-spec/blob/master/api-spec.md#ogc-api---features-endpoints
    Content:
      properties:
        type:
          type: string
          title: Type
        id:
          type: string
          title: Id
        title:
          type: string
          title: Title
        description:
          type: string
          title: Description
        published:
          type: string
          format: date-time
          title: Published
        updated:
          type: string
          format: date-time
          title: Updated
        links:
          items:
            $ref: '#/components/schemas/cads_catalogue_api_service__models__contents__Link'
          type: array
          title: Links
          default: []
        data:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Data
      type: object
      required:
      - type
      - id
      - title
      - description
      - published
      - updated
      title: Content
      description: Content definition.
    ContentSortCriterion:
      type: string
      enum:
      - title
      - publication
      - update
      title: ContentSortCriterion
      description: Sorting criteria for contents search.
    Contents:
      properties:
        count:
          type: integer
          title: Count
        contents:
          items:
            $ref: '#/components/schemas/Content'
          type: array
          title: Contents
      type: object
      required:
      - count
      - contents
      title: Contents
      description: Contents definition.
    Extent:
      properties:
        spatial:
          $ref: '#/components/schemas/SpatialExtent'
        temporal:
          $ref: '#/components/schemas/TimeInterval'
      type: object
      required:
      - spatial
      - temporal
      title: Extent
      description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#extent-object
    FormData:
      properties:
        q:
          type: string
          title: Q
          default: ''
        kw:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Kw
          default: []
        idx:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Idx
          default: []
        sortby:
          $ref: '#/components/schemas/CatalogueSortCriterion'
          default: update
        page:
          type: integer
          title: Page
          default: 0
        limit:
          type: integer
          title: Limit
          default: 50
        search_stats:
          type: boolean
          title: Search Stats
          default: true
        dashboard:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Dashboard
      type: object
      title: FormData
      description: Search datasets valid payload.
    GeometryCollection-Input:
      properties:
        bbox:
          anyOf:
          - prefixItems:
            - type: number
            - type: number
            - type: number
            - type: number
            type: array
            maxItems: 4
            minItems: 4
          - prefixItems:
            - type: number
            - type: number
            - type: number
            - type: number
            - type: number
            - type: number
            type: array
            maxItems: 6
            minItems: 6
          - type: 'null'
          title: Bbox
        type:
          type: string
          const: GeometryCollection
          title: Type
        geometries:
          items:
            oneOf:
            - $ref: '#/components/schemas/Point'
            - $ref: '#/components/schemas/MultiPoint'
            - $ref: '#/components/schemas/LineString'
            - $ref: '#/components/schemas/MultiLineString'
            - $ref: '#/components/schemas/Polygon'
            - $ref: '#/components/schemas/MultiPolygon'
            - $ref: '#/components/schemas/GeometryCollection-Input'
            discriminator:
              propertyName: type
              mapping:
                GeometryCollection: '#/components/schemas/GeometryCollection-Input'
                LineString: '#/components/schemas/LineString'
                MultiLineString: '#/components/schemas/MultiLineString'
                MultiPoint: '#/components/schemas/MultiPoint'
                MultiPolygon: '#/components/schemas/MultiPolygon'
                Point: '#/components/schemas/Point'
                Polygon: '#/components/schemas/Polygon'
          type: array
          title: Geometries
      type: object
      required:
      - type
      - geometries
      title: GeometryCollection
      description: GeometryCollection Model
    GeometryCollection-Output:
      properties:
        bbox:
          anyOf:
          - prefixItems:
            - type: number
            - type: number
            - type: number
            - type: number
            type: array
            maxItems: 4
            minItems: 4
          - prefixItems:
            - type: number
            - type: number
            - type: number
            - type: number
            - type: number
            - type: number
            type: array
            maxItems: 6
            minItems: 6
          - type: 'null'
          title: Bbox
        type:
          type: string
          const: GeometryCollection
          title: Type
        geometries:
          items:
            oneOf:
            - $ref: '#/components/schemas/Point'
            - $ref: '#/components/schemas/MultiPoint'
            - $ref: '#/components/schemas/LineString'
            - $ref: '#/components/schemas/MultiLineString'
            - $ref: '#/components/schemas/Polygon'
            - $ref: '#/components/schemas/MultiPolygon'
            - $ref: '#/components/schemas/GeometryCollection-Output'
            discriminator:
              propertyName: type
              mapping:
                GeometryCollection: '#/components/schemas/GeometryCollection-Output'
                LineString: '#/components/schemas/LineString'
                MultiLineString: '#/components/schemas/MultiLineString'
                MultiPoint: '#/components/schemas/MultiPoint'
                MultiPolygon: '#/components/schemas/MultiPolygon'
                Point: '#/components/schemas/Point'
                Polygon: '#/components/schemas/Polygon'
          type: array
          title: Geometries
      type: object
      required:
      - type
      - geometries
      title: GeometryCollection
      description: GeometryCollection Model
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    HealthCheck:
      properties:
        status:
          type: string
          enum:
          - UP
          - DOWN
          title: Status
      additionalProperties: true
      type: object
      required:
      - status
      title: HealthCheck
      description: health check response model.
    Item:
      properties:
        bbox:
          anyOf:
          - prefixItems:
            - type: number
            - type: number
            - type: number
            - type: number
            type: array
            maxItems: 4
            minItems: 4
          - prefixItems:
            - type: number
            - type: number
            - type: number
            - type: number
            - type: number
            - type: number
            type: array
            maxItems: 6
            minItems: 6
          - type: 'null'
          title: Bbox
        type:
          type: string
          const: Feature
          title: Type
        geometry:
          anyOf:
          - oneOf:
            - $ref: '#/components/schemas/Point'
            - $ref: '#/components/schemas/MultiPoint'
            - $ref: '#/components/schemas/LineString'
            - $ref: '#/components/schemas/MultiLineString'
            - $ref: '#/components/schemas/Polygon'
            - $ref: '#/components/schemas/MultiPolygon'
            - $ref: '#/components/schemas/GeometryCollection-Output'
            discriminator:
              propertyName: type
              mapping:
                GeometryCollection: '#/components/schemas/GeometryCollection-Output'
                LineString: '#/components/schemas/LineString'
                MultiLineString: '#/components/schemas/MultiLineString'
                MultiPoint: '#/components/schemas/MultiPoint'
                MultiPolygon: '#/components/schemas/MultiPolygon'
                Point: '#/components/schemas/Point'
                Polygon: '#/components/schemas/Polygon'
          - type: 'null'
          

# --- truncated at 32 KB (59 KB total) ---
# Full source: https://artifacts.apis.io/ecmwf/openapi/ecmwf-data-stores-catalogue-openapi.yml