Umbra Search API

The Search API from Umbra — 2 operation(s) for search.

Operations 3

GET / Landing Page #
POST /search Advanced Search #
GET /search Simple Search #

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/umbra-search-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

umbra-search-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Umbra Search API
  version: '1.0'
  description: 'Operations tagged Search across 2 of this provider''s published API definitions: umbra-stac-api-v2-openapi.yml, umbra-stac-archive-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.canopy.umbra.space/v2/stac
- url: https://api.canopy.umbra.space/archive
security:
- bearerAuth: []
tags:
- name: Search
paths:
  /:
    servers:
    - url: https://api.canopy.umbra.space/v2/stac
    get:
      tags:
      - Search
      summary: Landing Page
      description: Endpoint.
      operationId: Landing_Page__get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LandingPage'
  /search:
    servers:
    - url: https://api.canopy.umbra.space/v2/stac
    post:
      tags:
      - Search
      summary: Advanced Search
      description: Search for STAC items with full-featured filtering. STAC item assets include signed URLs when the number of items returned is below a certain threshold (current default is 5). Implements the STAC API Item Search Specification and STAC API Filter Extension.
      operationId: Search_search_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchPostRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/geo+json:
              schema:
                $ref: '#/components/schemas/ItemCollection'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - Search
      summary: Simple Search
      description: Search for STAC items with simple filtering. STAC item assets include signed URLs when the number of items returned is below a certain threshold (current default is 5). For usage information and examples, see https://github.com/radiantearth/stac-api-spec/tree/release/v1.0.0/item-search
      operationId: Search_search_get
      parameters:
      - name: collections
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Array of collection Ids to search for items.
          example: collection1,collection2
          title: Collections
        description: Array of collection Ids to search for items.
      - name: ids
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Array of Item ids to return.
          example: item1,item2
          title: Ids
        description: Array of Item ids to return.
      - name: bbox
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Only return items intersecting this bounding box. Mutually exclusive with **intersects**.
          example: -175.05,-85.05,175.05,85.05
          title: Bbox
        description: Only return items intersecting this bounding box. Mutually exclusive with **intersects**.
      - name: intersects
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: "Only return items intersecting this GeoJSON Geometry. Mutually exclusive with **bbox**. \n\n*Remember to URL encode the GeoJSON geometry when using GET request*."
          title: Intersects
        description: "Only return items intersecting this GeoJSON Geometry. Mutually exclusive with **bbox**. \n\n*Remember to URL encode the GeoJSON geometry when using GET request*."
        examples:
          madrid:
            value:
              type: Feature
              properties: {}
              geometry:
                coordinates:
                - - - -3.8549260500072933
                    - 40.54923557897152
                  - - -3.8549260500072933
                    - 40.29428000041938
                  - - -3.516597069715033
                    - 40.29428000041938
                  - - -3.516597069715033
                    - 40.54923557897152
                  - - -3.8549260500072933
                    - 40.54923557897152
                type: Polygon
          new-york:
            value:
              type: Feature
              properties: {}
              geometry:
                coordinates:
                - - - -74.50117532354284
                    - 41.128266394414055
                  - - -74.50117532354284
                    - 40.35633909727355
                  - - -73.46713183168603
                    - 40.35633909727355
                  - - -73.46713183168603
                    - 41.128266394414055
                  - - -74.50117532354284
                    - 41.128266394414055
                type: Polygon
      - name: datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Only return items that have a temporal property that intersects this value.


            Either a date-time or an interval, open or closed. Date and time expressions adhere to RFC 3339. Open intervals are expressed using double-dots.'
          title: Datetime
        description: 'Only return items that have a temporal property that intersects this value.


          Either a date-time or an interval, open or closed. Date and time expressions adhere to RFC 3339. Open intervals are expressed using double-dots.'
        examples:
          datetime:
            value: '2018-02-12T23:20:50Z'
          closed-interval:
            value: 2018-02-12T00:00:00Z/2018-03-18T12:31:12Z
          open-interval-from:
            value: 2018-02-12T00:00:00Z/..
          open-interval-to:
            value: ../2018-03-18T12:31:12Z
      - name: limit
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            exclusiveMinimum: 0
          - type: 'null'
          description: Limits the number of results that are included in each page of the response (capped to 10_000).
          default: 10
          title: Limit
        description: Limits the number of results that are included in each page of the response (capped to 10_000).
      - name: query
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Allows additional filtering based on the properties of Item objects
          example: '{"eo:cloud_cover": {"gte": 95}}'
          title: Query
        description: Allows additional filtering based on the properties of Item objects
      - name: sortby
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: An array of property names, prefixed by either '+' for ascending or '-' for descending. If no prefix is provided, '+' is assumed.
          example: -gsd,-datetime
          title: Sortby
        description: An array of property names, prefixed by either '+' for ascending or '-' for descending. If no prefix is provided, '+' is assumed.
      - name: fields
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Include or exclude fields from items body.
          example: properties.datetime
          title: Fields
        description: Include or exclude fields from items body.
      - name: filter
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'A CQL filter expression for filtering items.


            Supports `CQL-JSON` as defined in https://portal.ogc.org/files/96288


            Remember to URL encode the CQL-JSON if using GET'
          example: id='LC08_L1TP_060247_20180905_20180912_01_T1_L1TP' AND collection='landsat8_l1tp'
          title: Filter
        description: 'A CQL filter expression for filtering items.


          Supports `CQL-JSON` as defined in https://portal.ogc.org/files/96288


          Remember to URL encode the CQL-JSON if using GET'
      - name: filter-crs
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The coordinate reference system (CRS) used by spatial literals in the 'filter' value. Default is `http://www.opengis.net/def/crs/OGC/1.3/CRS84`
          title: Filter-Crs
        description: The coordinate reference system (CRS) used by spatial literals in the 'filter' value. Default is `http://www.opengis.net/def/crs/OGC/1.3/CRS84`
      - name: filter-lang
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - cql-json
            - cql2-json
            - cql2-text
            type: string
          - type: 'null'
          description: The CQL filter encoding that the 'filter' value uses.
          default: cql2-text
          title: Filter-Lang
        description: The CQL filter encoding that the 'filter' value uses.
      - name: token
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Token
      responses:
        '200':
          description: Successful Response
          content:
            application/geo+json:
              schema:
                $ref: '#/components/schemas/ItemCollection'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    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
          title: Type
          enum:
          - GeometryCollection
          default: GeometryCollection
        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
    Polygon:
      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
          title: Type
          enum:
          - Polygon
          default: Polygon
        coordinates:
          items:
            items:
              anyOf:
              - $ref: '#/components/schemas/Position2D'
              - $ref: '#/components/schemas/Position3D'
            type: array
            minItems: 4
          type: array
          title: Coordinates
      type: object
      required:
      - type
      - coordinates
      title: Polygon
      description: Polygon Model
    MultiPoint:
      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
          title: Type
          enum:
          - MultiPoint
          default: MultiPoint
        coordinates:
          items:
            anyOf:
            - $ref: '#/components/schemas/Position2D'
            - $ref: '#/components/schemas/Position3D'
          type: array
          title: Coordinates
      type: object
      required:
      - type
      - coordinates
      title: MultiPoint
      description: MultiPoint Model
    LandingPage:
      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__api__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
          title: Type
          enum:
          - Catalog
          default: Catalog
        conformsTo:
          items:
            type: string
            minLength: 1
            format: uri
          type: array
          title: Conformsto
          default:
          - https://api.stacspec.org/v1.0.0/core
          - http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core
      additionalProperties: true
      type: object
      required:
      - id
      - description
      - links
      - type
      title: LandingPage
      description: 'https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/core

        https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/ogcapi-features#landing-page-

        https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/item-search#link-relations'
    SortDirections:
      type: string
      enum:
      - asc
      - desc
      title: SortDirections
    PaginationLink:
      properties:
        href:
          type: string
          minLength: 1
          title: Href
        rel:
          type: string
          enum:
          - next
          - prev
          title: Rel
        type:
          anyOf:
          - $ref: '#/components/schemas/MimeTypes'
          - type: 'null'
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        label:assets:
          anyOf:
          - type: string
          - type: 'null'
          title: Label:Assets
        method:
          type: string
          enum:
          - GET
          - POST
          title: Method
          default: GET
        headers:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Headers
        body:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Body
        merge:
          type: boolean
          title: Merge
          default: false
      additionalProperties: true
      type: object
      required:
      - href
      - rel
      title: PaginationLink
      description: https://github.com/radiantearth/stac-api-spec/blob/v1.0.0/item-search/README.md#pagination
    Operator:
      type: string
      enum:
      - eq
      - ne
      - lt
      - lte
      - gt
      - gte
      title: Operator
      description: Defines the set of operators supported by the API.
    MimeTypes:
      type: string
      enum:
      - image/tiff; application=geotiff
      - image/tiff; application=geotiff; profile=cloud-optimized
      - image/jp2
      - image/png
      - image/jpeg
      - application/geo+json
      - application/geo+json-seq
      - application/geopackage+sqlite3
      - application/vnd.google-earth.kml+xml
      - application/vnd.google-earth.kmz
      - application/x-protobuf
      - application/vnd.mapbox-vector-tile
      - application/x-hdf
      - application/x-hdf5
      - application/xml
      - application/json
      - application/ndjson
      - text/html
      - text/plain
      - application/vnd.oai.openapi+json;version=3.0
      - application/vnd.oai.openapi;version=3.0
      - application/schema+json
      - application/pdf
      - text/csv
      - application/vnd.apache.parquet
      - application/octet-stream
      title: MimeTypes
      description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md#media-types
    SortExtension:
      properties:
        field:
          type: string
          minLength: 1
          title: Field
        direction:
          $ref: '#/components/schemas/SortDirections'
      type: object
      required:
      - field
      - direction
      title: SortExtension
      description: https://github.com/radiantearth/stac-api-spec/tree/master/extensions/sort#sort-api-extension
    ItemsLink:
      properties:
        href:
          type: string
          pattern: .*\/items(\?.*)?\b
          title: Href
        rel:
          type: string
          enum:
          - self
          - items
          title: Rel
        type:
          type: string
          title: Type
          default: application/geo+json
          enum:
          - application/geo+json
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        label:assets:
          anyOf:
          - type: string
          - type: 'null'
          title: Label:Assets
        method:
          type: string
          enum:
          - GET
          - POST
          title: Method
          default: GET
        headers:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Headers
        body:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Body
        merge:
          type: boolean
          title: Merge
          default: false
      additionalProperties: true
      type: object
      required:
      - href
      - rel
      title: ItemsLink
    SearchPostRequest:
      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
          - 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
        conf:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Conf
        query:
          anyOf:
          - additionalProperties:
              additionalProperties: true
              propertyNames:
                $ref: '#/components/schemas/Operator'
              type: object
            type: object
          - type: 'null'
          title: Query
        sortby:
          anyOf:
          - items:
              $ref: '#/components/schemas/SortExtension'
            type: array
          - type: 'null'
          title: Sortby
          description: 'An array of property (field) names, and direction in form of ''{''field'': ''<property_name>'', ''direction'':''<direction>''}'''
          example:
          - direction: asc
            field: properties.created
        fields:
          anyOf:
          - $ref: '#/components/schemas/PostFieldsExtension'
          - type: 'null'
          description: Include or exclude fields from items body.
          default:
            include: []
            exclude: []
        filter:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Filter
          description: A CQL filter expression for filtering items.
          example:
            args:
            - args:
              - property: id
              - LC08_L1TP_060247_20180905_20180912_01_T1_L1TP
              op: '='
            - args:
              - property: collection
              - landsat8_l1tp
              op: '='
            op: and
        filter-crs:
          anyOf:
          - type: string
          - type: 'null'
          title: Filter-Crs
          description: The coordinate reference system (CRS) used by spatial literals in the 'filter' value. Default is `http://www.opengis.net/def/crs/OGC/1.3/CRS84`
        filter-lang:
          anyOf:
          - type: string
            enum:
            - cql-json
            - cql2-json
          - type: 'null'
          title: Filter-Lang
          description: The CQL filter encoding that the 'filter' value uses.
          default: cql2-json
        token:
          anyOf:
          - type: string
          - type: 'null'
          title: Token
      type: object
      title: SearchPostRequest
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    stac_pydantic__api__links__Links:
      items:
        anyOf:
        - $ref: '#/components/schemas/SearchLink'
        - $ref: '#/components/schemas/PaginationLink'
        - $ref: '#/components/schemas/ItemsLink'
        - $ref: '#/components/schemas/Link'
      type: array
      title: Links
    stac_pydantic__links__Links:
      items:
        $ref: '#/components/schemas/Link'
      type: array
      title: Links
    MultiPolygon:
      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
          title: Type
          enum:
          - MultiPolygon
          default: MultiPolygon
        coordinates:
          items:
            items:
              items:
                anyOf:
                - $ref: '#/components/schemas/Position2D'
                - $ref: '#/components/schemas/Position3D'
              type: array
              minItems: 4
            type: array
          type: array
          title: Coordinates
      type: object
      required:
      - type
      - coordinates
      title: MultiPolygon
      description: MultiPolygon Model
    Link:
      properties:
        href:
          type: string
          minLength: 1
          title: Href
        rel:
          type: string
          minLength: 1
          title: Rel
        type:
          anyOf:
          - $ref: '#/components/schemas/MimeTypes'
          - type: 'null'
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        label:assets:
          anyOf:
          - type: string
          - type: 'null'
          title: Label:Assets
      additionalProperties: true
      type: object
      required:
      - href
      - rel
      title: Link
      description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#link-object
    LineString:
      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
          title: Type
          enum:
          - LineString
          default: LineString
        coordinates:
          items:
            anyOf:
            - $ref: '#/components/schemas/Position2D'
            - $ref: '#/components/schemas/Position3D'
          type: array
          minItems: 2
          title: Coordinates
      type: object
      required:
      - type
      - coordinates
      title: LineString
      description: LineString Model
    MultiLineString:
      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
          title: Type
          enum:
          - MultiLineString
          default: MultiLineString
        coordinates:
          items:
            items:
              anyOf:
              - $ref: '#/components/schemas/Position2D'
              - $ref: '#/components/schemas/Position3D'
            type: array
            minItems: 2
          type: array
          title: Coordinates
      type: object
      required:
      - type
      - coordinates
      title: MultiLineString
      description: MultiLineString Model
    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
    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
          title: Type
          enum:
          - Feature
          default: Feature
        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'
          title: Geometry
        properties:
          $ref: '#/components/schemas/ItemProperties'
        id:
          type: string
          minLength: 1
          title: Id
        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
        assets:
          additionalProperties:
            $ref: '#/components/schemas/Asset'
          type: object
          title: Assets
        link

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/umbra/refs/heads/main/openapi/umbra-search-api-openapi.yml