GEMS Informatics Exchange APIs

Ten agricultural, climate and geospatial data APIs operated by GEMS Informatics at the University of Minnesota — biotic risk, climate, crop calendar, elevation, hydrology, land cover, market accessibility, pedigree tools, soils and weather. Each is a separately versioned FastAPI deployment behind one gateway, and nine of the ten publish a live OpenAPI 3.1 document anonymously. Data paths require an `apikey` header obtained from the GEMS portal; the contracts do not declare that requirement. This is the only surface where the University publishes machine-readable contracts of its own.

Operations 20

GET /grid Get All Grids #
GET /grid/{id} Get Grid #
GET /datasets Get Datasets #
GET /{keyname}/object/search Get Search Object #
POST /{keyname}/object/search Post Search Object #
GET /{keyname}/object/{id} Get Object Metadata #
GET /{keyname}/object/{id}/point Get Object Point #
GET /{keyname}/object/{id}/envelope Get Object Envelope #
GET /{keyname}/object/{id}/raster Get Object Spatial #
POST /{keyname}/object/{id}/raster Post Object Spatial #
GET /{keyname}/object/{id}/stats Get Object Stats #
POST /{keyname}/object/{id}/stats Post Object Stats #
GET /{keyname}/object/{id}/histogram Get Object Hist #
POST /{keyname}/object/{id}/histogram Post Object Hist #
GET /{keyname}/object/{id}/quantiles Get Object Quantiles #
POST /{keyname}/object/{id}/quantiles Post Object Quantiles #
GET /{keyname}/object/{id}/valuecount Get Object Value Count #
POST /{keyname}/object/{id}/valuecount Post Object Value Count #
GET /{keyname}/layer Get All Layers #
GET /{keyname}/layer/{id} Get Layer #

Documentation

Specifications

OpenAPI
https://raw.githubusercontent.com/api-evangelist/university-of-minnesota/refs/heads/main/openapi/university-of-minnesota-gems-exchange-soil-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/university-of-minnesota/refs/heads/main/openapi/university-of-minnesota-gems-exchange-climate-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/university-of-minnesota/refs/heads/main/openapi/university-of-minnesota-gems-exchange-hydro-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/university-of-minnesota/refs/heads/main/openapi/university-of-minnesota-gems-exchange-elevation-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/university-of-minnesota/refs/heads/main/openapi/university-of-minnesota-gems-exchange-landcover-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/university-of-minnesota/refs/heads/main/openapi/university-of-minnesota-gems-exchange-crop-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/university-of-minnesota/refs/heads/main/openapi/university-of-minnesota-gems-exchange-market-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/university-of-minnesota/refs/heads/main/openapi/university-of-minnesota-gems-exchange-biotic-risk-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/university-of-minnesota/refs/heads/main/openapi/university-of-minnesota-gems-exchange-pedtools-openapi.yml

Schemas & Data

Other Resources

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/gems-exchange-apis"
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

university-of-minnesota-gems-exchange-soil-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: soil
  description: Soil Related Datasets
  contact:
    name: GEMS
    url: https://gems.umn.edu/exchange
    email: gemssupport@umn.edu
  version: '2.0'
servers:
- url: https://exchange-1.gems.msi.umn.edu/soil/v2
  description: GEMS Informatics Exchange production gateway, University of Minnesota
paths:
  /grid:
    get:
      tags:
      - dataset
      summary: Get All Grids
      description: Get grid metadata.
      operationId: get_all_grids_grid_get
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GridDetails'
                title: Response Get All Grids Grid Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /grid/{id}:
    get:
      tags:
      - dataset
      summary: Get Grid
      description: Get grid metadata for a target grid resolution (specified by the grid id).
      operationId: get_grid_grid__id__get
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          description: GEMS Grid resolution ID. To explore ID choices and their resolutions, call the
            base grid endpoint.
          title: Id
        description: GEMS Grid resolution ID. To explore ID choices and their resolutions, call the base
          grid endpoint.
        example: 5
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/GridDetails'
                - type: 'null'
                title: Response Get Grid Grid  Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /datasets:
    get:
      tags:
      - dataset
      summary: Get Datasets
      operationId: get_datasets_datasets_get
      parameters:
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DatasetOut'
                title: Response Get Datasets Datasets Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /{keyname}/object/search:
    get:
      tags:
      - dataset
      summary: Get Search Object
      description: Find objects. Bounding box and other filters may be applied.
      operationId: get_search_object__keyname__object_search_get
      parameters:
      - name: keyname
        in: path
        required: true
        schema:
          type: string
          description: A dataset keyname
          title: Keyname
        description: A dataset keyname
        example: my_dataset
      - name: layer
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: ID of target layer.
          title: Layer
        description: ID of target layer.
        example: 1
      - name: grid
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            maximum: 6
            minimum: 0
          - type: 'null'
          description: GEMS grid resolution ID, see /grid.
          title: Grid
        description: GEMS grid resolution ID, see /grid.
        example: 3
      - name: bbox
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            pattern: ^-?\d+(\.\d+)?,-?\d+(\.\d+)?,-?\d+(\.\d+)?,-?\d+(\.\d+)?$
          - type: 'null'
          description: 'Bounding box filter. Format: minx,miny,maxx,maxy'
          title: Bbox
        description: 'Bounding box filter. Format: minx,miny,maxx,maxy'
        example: -97.2,43.4,-89.4,49.3
      - name: offset
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: Result number offset. Use with 'limit' parameter to obtain all results.
          default: 0
          title: Offset
        description: Result number offset. Use with 'limit' parameter to obtain all results.
      - name: limit
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            maximum: 300
          - type: 'null'
          description: 'Pagination: maximum number of returned objects.'
          default: 100
          title: Limit
        description: 'Pagination: maximum number of returned objects.'
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Body_get_search_object__keyname__object_search_get'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ObjectOut'
                title: Response Get Search Object  Keyname  Object Search Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - dataset
      summary: Post Search Object
      description: Find objects. Bounding box and other filters may be applied.
      operationId: post_search_object__keyname__object_search_post
      parameters:
      - name: keyname
        in: path
        required: true
        schema:
          type: string
          description: A dataset keyname
          title: Keyname
        description: A dataset keyname
        example: my_dataset
      - name: layer
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: ID of target layer.
          title: Layer
        description: ID of target layer.
        example: 1
      - name: grid
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            maximum: 6
            minimum: 0
          - type: 'null'
          description: GEMS grid resolution ID, see /grid.
          title: Grid
        description: GEMS grid resolution ID, see /grid.
        example: 3
      - name: offset
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: Result number offset. Use with 'limit' parameter to obtain all results.
          default: 0
          title: Offset
        description: Result number offset. Use with 'limit' parameter to obtain all results.
      - name: limit
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            maximum: 300
          - type: 'null'
          description: 'Pagination: maximum number of returned objects.'
          default: 100
          title: Limit
        description: 'Pagination: maximum number of returned objects.'
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
              - type: object
                additionalProperties: true
                example:
                  type: MultiPolygon
                  coordinates:
                  - - - - -93.56866141384278
                        - 48.27239561689682
                      - - -93.74651022075412
                        - 47.95575515478085
                      - - -93.26113118522528
                        - 47.49466006006172
                      - - -91.31961504310993
                        - 47.46961968985513
                      - - -90.98985371362852
                        - 47.756863557224186
                      - - -91.54933641870373
                        - 48.14894016189724
                      - - -93.56866141384278
                        - 48.27239561689682
              - type: object
                additionalProperties: true
                example:
                  type: Polygon
                  coordinates:
                  - - - -93.56866141384278
                      - 48.27239561689682
                    - - -93.74651022075412
                      - 47.95575515478085
                    - - -93.26113118522528
                      - 47.49466006006172
                    - - -91.31961504310993
                      - 47.46961968985513
                    - - -90.98985371362852
                      - 47.756863557224186
                    - - -91.54933641870373
                      - 48.14894016189724
                    - - -93.56866141384278
                      - 48.27239561689682
              title: Geojson
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ObjectOut'
                title: Response Post Search Object  Keyname  Object Search Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /{keyname}/object/{id}:
    get:
      tags:
      - dataset
      summary: Get Object Metadata
      description: Get object metadata for object of interest.
      operationId: get_object_metadata__keyname__object__id__get
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          description: Object ID. Can be obtained using object and layer search endpoints.
          title: Id
        description: Object ID. Can be obtained using object and layer search endpoints.
        example: 4
      - name: keyname
        in: path
        required: true
        schema:
          type: string
          description: A dataset keyname
          title: Keyname
        description: A dataset keyname
        example: my_dataset
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /{keyname}/object/{id}/point:
    get:
      tags:
      - dataset
      summary: Get Object Point
      description: Get point data for object of interest
      operationId: get_object_point__keyname__object__id__point_get
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          description: Object ID. Can be obtained using object and layer search endpoints.
          title: Id
        description: Object ID. Can be obtained using object and layer search endpoints.
        example: 4
      - name: keyname
        in: path
        required: true
        schema:
          type: string
          description: A dataset keyname
          title: Keyname
        description: A dataset keyname
        example: my_dataset
      - name: lon
        in: query
        required: true
        schema:
          type: number
          maximum: 180
          minimum: -180
          description: Longitude, in decimal degrees.
          title: Lon
        description: Longitude, in decimal degrees.
      - name: lat
        in: query
        required: true
        schema:
          type: number
          maximum: 90
          minimum: -90
          description: Latitude, in decimal degrees.
          title: Lat
        description: Latitude, in decimal degrees.
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValueOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /{keyname}/object/{id}/envelope:
    get:
      tags:
      - dataset
      summary: Get Object Envelope
      operationId: get_object_envelope__keyname__object__id__envelope_get
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          description: Object ID. Can be obtained using object and layer search endpoints.
          title: Id
        description: Object ID. Can be obtained using object and layer search endpoints.
        example: 4
      - name: keyname
        in: path
        required: true
        schema:
          type: string
          description: A dataset keyname
          title: Keyname
        description: A dataset keyname
        example: my_dataset
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                example:
                  type: Polygon
                  coordinates:
                  - - - -93.56866141384278
                      - 48.27239561689682
                    - - -93.74651022075412
                      - 47.95575515478085
                    - - -93.26113118522528
                      - 47.49466006006172
                    - - -91.31961504310993
                      - 47.46961968985513
                    - - -90.98985371362852
                      - 47.756863557224186
                    - - -91.54933641870373
                      - 48.14894016189724
                    - - -93.56866141384278
                      - 48.27239561689682
                title: Response Get Object Envelope  Keyname  Object  Id  Envelope Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /{keyname}/object/{id}/raster:
    get:
      tags:
      - dataset
      summary: Get Object Spatial
      description: Get object raster data for object of interest. Bounding box filter must be applied.
      operationId: get_object_spatial__keyname__object__id__raster_get
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          description: Object ID. Can be obtained using object and layer search endpoints.
          title: Id
        description: Object ID. Can be obtained using object and layer search endpoints.
        example: 4
      - name: keyname
        in: path
        required: true
        schema:
          type: string
          description: A dataset keyname
          title: Keyname
        description: A dataset keyname
        example: my_dataset
      - name: bbox
        in: query
        required: true
        schema:
          type: string
          pattern: ^-?\d+(\.\d+)?,-?\d+(\.\d+)?,-?\d+(\.\d+)?,-?\d+(\.\d+)?$
          description: 'Bounding box filter. Format: minx,miny,maxx,maxy'
          title: Bbox
        description: 'Bounding box filter. Format: minx,miny,maxx,maxy'
        example: -97.2,43.4,-89.4,49.3
      - name: compress
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CompressEnum'
          description: 'Method of Compression. Options: DEFLATE9, LZW, NONE'
          default: LZW
        description: 'Method of Compression. Options: DEFLATE9, LZW, NONE'
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - dataset
      summary: Post Object Spatial
      description: Get object raster data for object of interest filtered by GeoJSON geometry.
      operationId: post_object_spatial__keyname__object__id__raster_post
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          description: Object ID. Can be obtained using object and layer search endpoints.
          title: Id
        description: Object ID. Can be obtained using object and layer search endpoints.
        example: 4
      - name: keyname
        in: path
        required: true
        schema:
          type: string
          description: A dataset keyname
          title: Keyname
        description: A dataset keyname
        example: my_dataset
      - name: compress
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CompressEnum'
          description: 'Method of Compression. Options: DEFLATE9, LZW, NONE'
          default: LZW
        description: 'Method of Compression. Options: DEFLATE9, LZW, NONE'
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
              - type: object
                additionalProperties: true
                example:
                  type: MultiPolygon
                  coordinates:
                  - - - - -93.56866141384278
                        - 48.27239561689682
                      - - -93.74651022075412
                        - 47.95575515478085
                      - - -93.26113118522528
                        - 47.49466006006172
                      - - -91.31961504310993
                        - 47.46961968985513
                      - - -90.98985371362852
                        - 47.756863557224186
                      - - -91.54933641870373
                        - 48.14894016189724
                      - - -93.56866141384278
                        - 48.27239561689682
              - type: object
                additionalProperties: true
                example:
                  type: Polygon
                  coordinates:
                  - - - -93.56866141384278
                      - 48.27239561689682
                    - - -93.74651022075412
                      - 47.95575515478085
                    - - -93.26113118522528
                      - 47.49466006006172
                    - - -91.31961504310993
                      - 47.46961968985513
                    - - -90.98985371362852
                      - 47.756863557224186
                    - - -91.54933641870373
                      - 48.14894016189724
                    - - -93.56866141384278
                      - 48.27239561689682
              title: Geojson
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /{keyname}/object/{id}/stats:
    get:
      tags:
      - dataset
      summary: Get Object Stats
      description: Get object raster summary statistics for object of interest. Bounding box filter must
        be applied.
      operationId: get_object_stats__keyname__object__id__stats_get
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          description: Object ID. Can be obtained using object and layer search endpoints.
          title: Id
        description: Object ID. Can be obtained using object and layer search endpoints.
        example: 4
      - name: keyname
        in: path
        required: true
        schema:
          type: string
          description: A dataset keyname
          title: Keyname
        description: A dataset keyname
        example: my_dataset
      - name: bbox
        in: query
        required: true
        schema:
          type: string
          pattern: ^-?\d+(\.\d+)?,-?\d+(\.\d+)?,-?\d+(\.\d+)?,-?\d+(\.\d+)?$
          description: 'Bounding box filter. Format: minx,miny,maxx,maxy'
          title: Bbox
        description: 'Bounding box filter. Format: minx,miny,maxx,maxy'
        example: -97.2,43.4,-89.4,49.3
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/StatsOut'
                - type: 'null'
                title: Response Get Object Stats  Keyname  Object  Id  Stats Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - dataset
      summary: Post Object Stats
      description: Get object raster summary statistics for object of interest. Bounding box filter must
        be applied.
      operationId: post_object_stats__keyname__object__id__stats_post
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          description: Object ID. Can be obtained using object and layer search endpoints.
          title: Id
        description: Object ID. Can be obtained using object and layer search endpoints.
        example: 4
      - name: keyname
        in: path
        required: true
        schema:
          type: string
          description: A dataset keyname
          title: Keyname
        description: A dataset keyname
        example: my_dataset
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
              - type: object
                additionalProperties: true
                example:
                  type: MultiPolygon
                  coordinates:
                  - - - - -93.56866141384278
                        - 48.27239561689682
                      - - -93.74651022075412
                        - 47.95575515478085
                      - - -93.26113118522528
                        - 47.49466006006172
                      - - -91.31961504310993
                        - 47.46961968985513
                      - - -90.98985371362852
                        - 47.756863557224186
                      - - -91.54933641870373
                        - 48.14894016189724
                      - - -93.56866141384278
                        - 48.27239561689682
              - type: object
                additionalProperties: true
                example:
                  type: Polygon
                  coordinates:
                  - - - -93.56866141384278
                      - 48.27239561689682
                    - - -93.74651022075412
                      - 47.95575515478085
                    - - -93.26113118522528
                      - 47.49466006006172
                    - - -91.31961504310993
                      - 47.46961968985513
                    - - -90.98985371362852
                      - 47.756863557224186
                    - - -91.54933641870373
                      - 48.14894016189724
                    - - -93.56866141384278
                      - 48.27239561689682
              title: Geojson
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/StatsOut'
                - type: 'null'
                title: Response Post Object Stats  Keyname  Object  Id  Stats Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /{keyname}/object/{id}/histogram:
    get:
      tags:
      - dataset
      summary: Get Object Hist
      description: Get object raster histogram for object of interest filtered by GeoJSON geometry.
      operationId: get_object_hist__keyname__object__id__histogram_get
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          description: Object ID. Can be obtained using object and layer search endpoints.
          title: Id
        description: Object ID. Can be obtained using object and layer search endpoints.
        example: 4
      - name: keyname
        in: path
        required: true
        schema:
          type: string
          description: A dataset keyname
          title: Keyname
        description: A dataset keyname
        example: my_dataset
      - name: bbox
        in: query
        required: true
        schema:
          type: string
          pattern: ^-?\d+(\.\d+)?,-?\d+(\.\d+)?,-?\d+(\.\d+)?,-?\d+(\.\d+)?$
          description: 'Bounding box filter. Format: minx,miny,maxx,maxy'
          title: Bbox
        description: 'Bounding box filter. Format: minx,miny,maxx,maxy'
        example: -97.2,43.4,-89.4,49.3
      - name: nbin
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Nbin
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Histogram'
                title: Response Get Object Hist  Keyname  Object  Id  Histogram Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - dataset
      summary: Post Object Hist
      description: Get object raster histogram for object of interest filtered by GeoJSON geometry.
      operationId: post_object_hist__keyname__object__id__histogram_post
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          description: Object ID. Can be obtained using object and layer search endpoints.
          title: Id
        description: Object ID. Can be obtained using object and layer search endpoints.
        example: 4
      - name: keyname
        in: path
        required: true
        schema:
          type: string
          description: A dataset keyname
          title: Keyname
        description: A dataset keyname
        example: my_dataset
      - name: nbin
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Nbin
      - name: apikey
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: apikey
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
              - type: object
                additionalProperties: true
                example:
                  type: MultiPolygon
                  coordinates:
                  - - - - -93.56866141384278
                        - 48.27239561689682
                      - - -93.74651022075412
                        - 47.95575515478085
                      - - -93.26113118522528
                        - 47.49466006006172
                      - - -91.31961504310993
                        - 47.46961968985513
                      - - -90.98985371362852
                        - 47.756863557224186
                      - - -91.54933641870373
                        - 48.14894016189724
                      - - -93.56866141384278
                        - 48.27239561689682
              - type: object
                additionalProperties: true
                example:
                  type: Polygon
                  coordinates:
                  - - - -93.56866141384278
                      - 48.27239561689682
                    - - -93.74651022075412
                      - 47.95575515478085
                    - - -93.26113118522528
                      - 47.49466006006172
                    - - -91.31961504310993
                      - 47.46961968985513
                    - - -90.98985371362852
                      - 47.756863557224186
                    - - -91.54933641870373
                      - 48.14894016189724
                    - - -93.56866141384278
                      - 48.27239561689682
              title: Geojson
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Histogram'
                title: Response Post Object Hist  Keyname  Object  Id  Histogram Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /{keyname}/object/{id}/quantiles:
    get:
      tags:
      - dataset
      summary: Get Object Quantiles
      description: Get object raster data quantiles for object of interest filtered by GeoJSON geometry.
      operationId: get_object_quantiles__keyname__object__id__quantiles_get
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          description: Object ID. Can be obtained using object and layer search endpoints.
          title: Id
        description: Object ID. Can be obtained using object and layer search endpoints.
        example: 4
      - name: keyname
        in: path
        required: true
   

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/university-of-minnesota/refs/heads/main/openapi/university-of-minnesota-gems-exchange-soil-openapi.yml