Open Geospatial Consortium (OGC) Records API

access to records

Operations 1

GET /collections/{catalogId}/items fetch records #

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/ogc-records-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

ogc-records-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ogc Records API
  version: 1.0.0
  contact:
    name: CubeWerx Inc.
    email: pvretano@cubewerx.com
    url: https://www.cubewerx.com
  license:
    name: CC-BY 4.0 license
    url: https://creativecommons.org/licenses/by/4.0/
  description: 'Operations tagged Records across 3 of this provider''s published API definitions: ogc-records-part1-1-0-openapi-ogcapi-records-1-example-all-in-one.yaml, ogc-records-part1-1-0-openapi-ogcapi-records-1-example-ref-buildingblocks-bundle.yaml, ogc-records-part1-1-0-openapi-ogcapi-records-1-example-ref-schema-repo.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://example.org/data
  description: Production server
- url: https://example.org/data-dev
  description: Development server
security:
- openIdConnect: []
tags:
- name: Records
  description: access to records
paths:
  /collections/{catalogId}/items:
    get:
      tags:
      - Records
      summary: fetch records
      description: 'Fetch records from the record collection with id `catalogId`.


        Every record in a dataset belongs to a collection. A dataset may

        consist of multiple record collections. A record collection is often a

        collection of records of a similar type, based on a common schema.


        Use content negotiation to request HTML or GeoJSON.'
      operationId: getRecords
      parameters:
      - $ref: '#/components/parameters/catalogId'
      - $ref: '#/components/parameters/bbox'
      - $ref: '#/components/parameters/datetime'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/q'
      - $ref: '#/components/parameters/type'
      - $ref: '#/components/parameters/externalIds'
      - $ref: '#/components/parameters/ids'
      - $ref: '#/components/parameters/sortby'
      - $ref: '#/components/parameters/language'
      - $ref: '#/components/parameters/profile'
      responses:
        '200':
          $ref: '#/components/responses/Records'
        4XX:
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        5XX:
          $ref: '#/components/responses/ServerError'
    servers:
    - url: https://example.org/data
      description: Production server
    - url: https://example.org/data-dev
      description: Development server
components:
  parameters:
    sortby:
      name: sortby
      in: query
      description: 'Specifies a comma-separated list of property names by which the

        response shall be sorted.  If the property name is preceded by a

        plus (+) sign it indicates an ascending sort for that property.

        If the property name is preceded by a minus (-) sign it indicates a

        descending sort for that property.  If the property is not preceded

        by a plus or minus, then the default sort order implied is

        ascending (+).'
      required: false
      schema:
        type: array
        minItems: 1
        items:
          type: string
          pattern: '[+|-]?[A-Za-z_].*'
      explode: false
      style: form
    language:
      name: language
      in: query
      description: 'Optional way to query for specific languages for environments that can''t

        send HTTP headers in a simple way (e.g. a Web Browser).

        The parameter accepts a comma-separated list of language identifiers,

        optionally with priority per language.

        This parameter value follows the specification of the `Accept-Language`

        HTTP header.'
      schema:
        type: array
        items:
          type: string
          description: 'The language tag as per RFC 5646, with optional priority parameter

            `q` (0 - 1).'
          pattern: ^((?:(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang))|((?:([A-Za-z]{2,3}(-(?:[A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-(?:[A-Za-z]{4}))?(-(?:[A-Za-z]{2}|[0-9]{3}))?(-(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-(?:[0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(?:x(-[A-Za-z0-9]{1,8})+))?)|(?:x(-[A-Za-z0-9]{1,8})+))(?:;q=(?:1|1\.0+|0|0\.[0-9]+))?$
      explode: false
      style: form
    datetime:
      description: "Imported from OGC API - Features - Part 1: Core\nSee: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/parameters/datetime.yaml\n\nEither a date-time or an interval. Date and time expressions adhere to\nRFC 3339.  Intervals may be bounded or half-bounded (double-dots at\nstart or end).\n\nExamples:\n\n* A date-time: \"2018-02-12T23:20:50Z\"\n* A bounded interval: \"2018-02-12T00:00:00Z/2018-03-18T12:31:12Z\"\n* Half-bounded intervals: \"2018-02-12T00:00:00Z/..\" or\n  \"../2018-03-18T12:31:12Z\"\n\nOnly features that have a temporal property that intersects the value\nof `datetime` are selected.\n\nIf a feature has multiple temporal properties, it is the decision of the\nserver whether only a single temporal property is used to determine\nthe extent or all relevant temporal properties."
      name: datetime
      in: query
      required: false
      schema:
        type: string
      style: form
      explode: false
    ids:
      name: ids
      in: query
      description: The optional ids parameter allows a specific list of records, identified by their identifiers, to be fetched from a catalog.  Only records whose identifier matches one of the values listed for this parameter shall appear in the response.
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
      style: form
    externalIds:
      name: externalIds
      in: query
      description: 'The optional externalIds parameter allows a specific list of records,

        identified by their external identifiers, to be fetched from a catalog.

        Only records where one of their associated external identifiers equals

        one of the values listed for this parameter shall appear in the

        response.'
      required: false
      schema:
        type: array
        items:
          type: string
          pattern: ([^:]+:)?[^:]+
      explode: false
      style: form
    q:
      name: q
      in: query
      description: 'The optional q parameter supports keyword searching.  Only records

        whose text fields contain one or more of the specified search terms

        are selected.  The specific set of text keys/fields/properties of a

        record to which the q operator is applied is up to the discretion

        of the server.   Implementations should, however, apply the q

        operator to the title, description and keywords keys/fields/properties.'
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
      style: form
    profile:
      name: profile
      in: query
      description: "One or more identifiers that provide information about additional\nsemantics (constraints, conventions, extensions), in addition to \nthose defined by the media type, that are associated with the\ntarget resource."
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
      style: form
    type:
      name: type
      in: query
      description: 'The optional type parameter allows a specific list of records,

        identified by their resource type, to be fetched from a catalog.

        Only records whose resource type matches one of the values listed

        for this parameter shall appear in the response.'
      required: false
      schema:
        type: array
        items:
          type: string
      explode: false
      style: form
    catalogId:
      name: catalogId
      in: path
      description: local identifier of a catalog
      required: true
      schema:
        type: string
    bbox:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/parameters/bbox.yaml''


        Only features that have a geometry that intersects the bounding box are

        selected.  The bounding box is provided as four or six numbers,

        depending on whether the coordinate reference system includes a

        vertical axis (height or depth):


        * Lower left corner, coordinate axis 1

        * Lower left corner, coordinate axis 2

        * Minimum value, coordinate axis 3 (optional)

        * Upper right corner, coordinate axis 1

        * Upper right corner, coordinate axis 2

        * Maximum value, coordinate axis 3 (optional)


        If the value consists of four numbers, the coordinate reference system

        is WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/

        CRS84) unless a different coordinate reference system is specified in

        the parameter `bbox-crs`.


        If the value consists of six numbers, the coordinate reference system

        is WGS 84 longitude/latitude/ellipsoidal height (http://www.opengis.

        net/def/crs/OGC/0/CRS84h) unless a different coordinate reference

        system is specified in the parameter `bbox-crs`.


        The query parameter `bbox-crs` is specified in

        OGC API - Features - Part 2: Coordinate Reference Systems by Reference.


        For WGS 84 longitude/latitude the values are in most cases the sequence

        of minimum longitude, minimum latitude, maximum longitude and maximum

        latitude.  However, in cases where the box spans the antimeridian the

        first value (west-most box edge) is larger than the third value

        (east-most box edge).


        If the vertical axis is included, the third and the sixth number are the

        bottom and the top of the 3-dimensional bounding box.


        If a feature has multiple spatial geometry properties, it is the

        decision of the server whether only a single spatial geometry property

        is used to determine the extent or all relevant geometries.'
      name: bbox
      in: query
      required: false
      schema:
        type: array
        oneOf:
        - minItems: 4
          maxItems: 4
        - minItems: 6
          maxItems: 6
        items:
          type: number
      style: form
      explode: false
    limit:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/parameters/limit.yaml


        The optional limit parameter limits the number of items that are

        presented in the response document.


        Only items are counted that are on the first level of the collection

        in the response document.

        Nested objects contained within the explicitly requested items shall

        not be counted.


        Minimum = 1. Maximum = 10000. Default = 10.'
      name: limit
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 10000
        default: 10
      style: form
      explode: false
  schemas:
    multipolygonGeoJSON:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/multipolygonGeoJSON.yaml'
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - MultiPolygon
        coordinates:
          type: array
          items:
            type: array
            items:
              type: array
              minItems: 4
              items:
                type: array
                minItems: 2
                items:
                  type: number
    featureCollectionGeoJSON:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml'
      type: object
      required:
      - type
      - features
      properties:
        type:
          type: string
          enum:
          - FeatureCollection
        features:
          type: array
          items:
            $ref: '#/components/schemas/featureGeoJSON'
        links:
          type: array
          items:
            $ref: '#/components/schemas/link'
        timeStamp:
          type: string
          format: date-time
        numberMatched:
          type: integer
          minimum: 0
        numberReturned:
          type: integer
          minimum: 0
    multilinestringGeoJSON:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/multilinestringGeoJSON.yaml'
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - MultiLineString
        coordinates:
          type: array
          items:
            type: array
            minItems: 2
            items:
              type: array
              minItems: 2
              items:
                type: number
    linkBase:
      type: object
      properties:
        rel:
          type: string
          description: The type or semantics of the relation.
        type:
          type: string
          description: 'A hint indicating what the media type of the

            result of dereferencing the link should be.'
        hreflang:
          type: string
          description: 'A hint indicating what the language of the

            result of dereferencing the link should be.'
        title:
          type: string
          description: 'Used to label the destination of a link

            such that it can be used as a human-readable

            identifier.'
        length:
          type: integer
        profile:
          type: array
          description: "One or more identifiers that provide information about additional\nsemantics (constraints, conventions, extensions), in addition to \nthose defined by the media type, that are associated with the\ntarget resource."
          items:
            type: string
        created:
          type: string
          description: 'Date of creation of the resource pointed to

            by the link.'
          format: date-time
        updated:
          type: string
          description: 'Most recent date on which the resource pointed

            to by the link was changed.'
          format: date-time
    geometryGeoJSON:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/geometryGeoJSON.yaml'
      oneOf:
      - $ref: '#/components/schemas/pointGeoJSON'
      - $ref: '#/components/schemas/multipointGeoJSON'
      - $ref: '#/components/schemas/linestringGeoJSON'
      - $ref: '#/components/schemas/multilinestringGeoJSON'
      - $ref: '#/components/schemas/polygonGeoJSON'
      - $ref: '#/components/schemas/multipolygonGeoJSON'
      - $ref: '#/components/schemas/geometrycollectionGeoJSON'
    multipointGeoJSON:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/multipointGeoJSON.yaml'
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - MultiPoint
        coordinates:
          type: array
          items:
            type: array
            minItems: 2
            items:
              type: number
    linestringGeoJSON:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/linestringGeoJSON.yaml'
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - LineString
        coordinates:
          type: array
          minItems: 2
          items:
            type: array
            minItems: 2
            items:
              type: number
    pointGeoJSON:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/pointGeoJSON.yaml'
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - Point
        coordinates:
          type: array
          minItems: 2
          items:
            type: number
    roles:
      description: 'The list of duties, job functions or permissions assigned by the system

        and associated with the context of this member.'
      type: array
      minItems: 1
      items:
        type: string
    linkTemplate:
      allOf:
      - $ref: '#/components/schemas/linkBase'
      - type: object
        required:
        - uriTemplate
        properties:
          uriTemplate:
            type: string
            description: 'Supplies a resolvable URI to a remote resource

              (or resource fragment).'
          varBase:
            type: string
            description: 'The base URI to which the variable name can be

              appended to retrieve the definition of the

              variable as a JSON Schema fragment.'
            format: uri-reference
          variables:
            type: object
            description: 'This object contains one key per substitution

              variable in the templated URL.  Each key defines

              the schema of one substitution variable using a

              JSON Schema fragment and can thus include things

              like the data type of the variable, enumerations,

              minimum values, maximum values, etc.'
    recordCollectionGeoJSON:
      allOf:
      - $ref: '#/components/schemas/featureCollectionGeoJSON'
      - type: object
        properties:
          features:
            type: array
            items:
              $ref: '#/components/schemas/recordGeoJSON'
          linkTemplates:
            type: array
            items:
              $ref: '#/components/schemas/linkTemplate'
    language:
      type: object
      description: The language used for textual values in this record.
      required:
      - code
      properties:
        code:
          type: string
          description: The language tag as per RFC-5646.
        name:
          type: string
          minLength: 1
          description: The untranslated name of the language.
        alternate:
          type: string
          description: 'The name of the language in another well-understood language,

            usually English.'
        dir:
          type: string
          description: 'The direction for text in this language. The default, `ltr`

            (left-to-right), represents the most common situation.

            However, care should be taken to set the value of `dir`

            appropriately if the language direction is not `ltr`.

            Other values supported are `rtl` (right-to-left), `ttb`

            (top-to-bottom), and `btt` (bottom-to-top).'
          enum:
          - ltr
          - rtl
          - ttb
          - btt
          default: ltr
    license:
      type: string
      description: 'A legal document under which the resource is made available.

        If the resource is being made available under a common license

        then use an SPDX license id (https://spdx.org/licenses/).

        If the resource is being made available under multiple common

        licenses then use an SPDX license expression v2.3 string

        (https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/)

        If the resource is being made available under one or more licenses

        that haven''t been assigned an SPDX identifier or one or more custom

        licenses then use a string value of ''other'' and include one or more

        links (rel="license") in the `link` section of the record to the

        file(s) that contains the text of the license(s).

        There is also the case of a resource that is private or unpublished

        and is thus unlicensed; in this case do not register such a resource

        in the catalog in the first place since there is no point in making

        such a resource discoverable.'
    exception:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/exception.yaml'
      type: object
      required:
      - code
      properties:
        code:
          type: string
        description:
          type: string
    featureGeoJSON:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureGeoJSON.yaml'
      type: object
      required:
      - type
      - geometry
      - properties
      properties:
        type:
          type: string
          enum:
          - Feature
        geometry:
          $ref: '#/components/schemas/geometryGeoJSON'
        properties:
          type:
          - object
          - 'null'
        id:
          oneOf:
          - type: string
          - type: integer
        links:
          type: array
          items:
            $ref: '#/components/schemas/link'
    geometrycollectionGeoJSON:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/geometrycollectionGeoJSON.yaml'
      type: object
      required:
      - type
      - geometries
      properties:
        type:
          type: string
          enum:
          - GeometryCollection
        geometries:
          type: array
          items:
            $ref: '#/components/schemas/geometryGeoJSON'
    link:
      type: object
      allOf:
      - $ref: '#/components/schemas/linkBase'
      - type: object
        required:
        - href
        properties:
          href:
            type: string
            format: uri
    contact:
      type: object
      description: 'Identification of, and means of communication with, person responsible

        for the resource.'
      anyOf:
      - required:
        - name
      - required:
        - organization
      properties:
        identifier:
          type: string
          description: A value uniquely identifying a contact.
        name:
          type: string
          description: The name of the responsible person.
        position:
          type: string
          description: 'The name of the role or position of the responsible person taken

            from the organization''s formal organizational hierarchy or chart.'
        organization:
          type: string
          description: Organization/affiliation of the contact.
        logo:
          description: 'Graphic identifying a contact. The link relation should be `icon`

            and the media type should be an image media type.'
          allOf:
          - $ref: '#/components/schemas/link'
          - type: object
            required:
            - rel
            - type
            properties:
              rel:
                enum:
                - icon
        phones:
          type: array
          description: Telephone numbers at which contact can be made.
          items:
            type: object
            required:
            - value
            properties:
              value:
                type: string
                description: The value is the phone number itself.
                pattern: ^\+[1-9]{1}[0-9]{3,14}$
              roles:
                $ref: '#/components/schemas/roles'
        emails:
          type: array
          description: Email addresses at which contact can be made.
          items:
            type: object
            required:
            - value
            properties:
              value:
                type: string
                description: The value is the email number itself.
                format: email
              roles:
                $ref: '#/components/schemas/roles'
        addresses:
          type: array
          description: Physical location at which contact can be made.
          items:
            type: object
            properties:
              deliveryPoint:
                type: array
                description: Address lines for the location.
                items:
                  type: string
              city:
                type: string
                description: City for the location.
              administrativeArea:
                type: string
                description: State or province of the location.
              postalCode:
                type: string
                description: ZIP or other postal code.
              country:
                type: string
                description: Country of the physical address.  ISO 3166-1 is recommended.
              roles:
                $ref: '#/components/schemas/roles'
        links:
          type: array
          description: On-line information about the contact.
          items:
            allOf:
            - $ref: '#/components/schemas/link'
            - type: object
              required:
              - type
        hoursOfService:
          type: string
          description: Time period when the contact can be contacted.
        contactInstructions:
          type: string
          description: 'Supplemental instructions on how or when to contact the

            responsible party.'
        roles:
          $ref: '#/components/schemas/roles'
    recordCommonProperties:
      type: object
      properties:
        created:
          type: string
          description: The date this record was created in the server.
          format: date-time
        updated:
          type: string
          description: The most recent date on which the record was changed.
          format: date-time
        type:
          type: string
          description: 'The nature or genre of the resource. The value

            should be a code, convenient for filtering

            records. Where available, a link to the canonical

            URI of the record type resource will be added to

            the ''links'' property.'
        title:
          type: string
          description: A human-readable name given to the resource.
        description:
          type: string
          description: A free-text account of the resource.
        keywords:
          type: array
          description: 'The topic or topics of the resource. Typically

            represented using free-form keywords, tags, key

            phrases, or classification codes.'
          items:
            type: string
        themes:
          type: array
          description: 'A knowledge organization system used to classify

            the resource.'
          minItems: 1
          items:
            $ref: '#/components/schemas/theme'
        language:
          $ref: '#/components/schemas/language'
        languages:
          type: array
          description: 'This list of languages in which this record is

            available.'
          items:
            $ref: '#/components/schemas/language'
        resourceLanguages:
          type: array
          description: 'The list of languages in which the resource

            described by this record is available.'
          items:
            $ref: '#/components/schemas/language'
        externalIds:
          type: array
          description: 'An identifier for the resource assigned by an

            external (to the catalog) entity.'
          items:
            type: object
            properties:
              scheme:
                type: string
                description: 'A reference to an authority or identifier

                  for a knowledge organization system from

                  which the external identifier was obtained.

                  It is recommended that the identifier be a

                  resolvable URI.'
              value:
                type: string
                description: The value of the identifier.
            required:
            - value
        formats:
          type: array
          description: A list of available distributions of the resource.
          items:
            $ref: '#/components/schemas/format'
        contacts:
          type: array
          description: 'A list of contacts qualified by their role(s) in

            association to the record or the resource described

            by the record.'
          items:
            $ref: '#/components/schemas/contact'
        license:
          $ref: '#/components/schemas/license'
        rights:
          type: string
          description: 'A statement that concerns all rights not addressed

            by the license such as a copyright statement.'
    polygonGeoJSON:
      description: 'Imported from OGC API - Features - Part 1: Core

        See: https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/polygonGeoJSON.yaml'
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - Polygon
        coordinates:
          type: array
          items:
            type: array
            minItems: 4
            items:
              type: array
              minItems: 2
              items:
                type: number
    recordGeoJSON:
      type: object
      required:
      - id
      - type
      - geometry
      - properties
      properties:
        id:
          oneOf:
          - type: string
          - type: integer
          description: A unique identifier of the catalog record.
        type:
          type: string
          enum:
          - Feature
        time:
          oneOf:
          - type:
            - object
            - 'null'
          - $ref: '#/components/schemas/time'
        geometry:
          oneOf:
          - type:
            - object
            - 'null'
          - $ref: '#/components/schemas/geometryGeoJSON'
        conformsTo:
          type: array
          description: The extensions/conformance classes used in this record.
          items:
            type: string
        properties:
          oneOf:
          - type:
            - object
            - 'null'
          - allOf:
            - type: object
            - $ref: '#/components/schemas/recordCommonProperties'
        links:
          type: array
          items:
            $ref: '#/components/schemas/link'
        linkTemplates:
          type: array
          items:
            $ref: '#/components/schemas/linkTemplate'
    format:
      type: object
      anyOf:
      - required:
        - name
      - required:
        - mediaType
      properties:
        name:
          type: string
        mediaType:
          type: string
    time:
      type: object
      properties:
        date:
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}$
        timestamp:
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$
        interval:
          type: array
          minItems: 2
          maxItems: 2
          items:
            oneOf:
            - type: string
              pattern: ^\d{4}-\d{2}-\d{2}$
            - type: string
              pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$
            - type: string
              enum:
              - ..
        resolution:
          type: string
          description: 'Minimum time period resolvable in the dataset, as an ISO 8601

            duration'
    theme:
      type: object
      required:
      - concepts
      - scheme
      properties:
        concepts:
          type: array
          description: 'One or more entity/concept identifiers from this knowledge

            system. it is recommended that a resolvable URI be used for

            each entity/concept identifier.'
          minItems: 1
          items:
            type: object
            required:
            - id
            properties:
              id:
                type: string
                description: An identifier for the concept.
              title:
                type: string
                description: A human readable title for the concept.
              description:
                type: string
                des

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