Ontario Energy Board · OpenAPI Overlay 1.0.0

API Evangelist enhancements for OEB Regulatory Document Search

7 actions 7 updates update extends openapi/ontario-energy-board-rds-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Ontario Energy Board's API. It is a proposal applied on top of the contract, not a document Ontario Energy Board publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-api-evangelist-provenancex-vocabularyx-error-catalogx-conventionsx-data-modelx-read-onlyx-consequencex-agent-safe

Targets 6

$.info
$.paths.*.get
$.paths['/Record'].get
$.paths['/Record/{uri}'].get
$.paths['/Record/{uri}/File/document'].get
$.components.schemas.TrimDateTime

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for OEB Regulatory Document Search
  version: 1.0.0
extends: openapi/ontario-energy-board-rds-openapi.yml
x-generated: '2026-07-27'
x-method: generated
x-source: >-
  Live anonymous probes of https://www.rds.oeb.ca/CMWebDrawer on 2026-07-27 plus the live search-clause
  vocabulary at /Help/WDSearchClauseDefJS
x-note: >-
  The base document is itself generated by API Evangelist, because the Ontario Energy Board publishes no
  specification for this surface. This overlay records the enhancements that are OUR editorial layer
  rather than observed protocol facts - provenance flags, the pointer to the derived query vocabulary,
  the read-only/agent-safety annotations and the error-handling warnings an agent must carry. Keeping
  them in an overlay means the generated base can be regenerated from probes without losing them.
actions:
  - target: $.info
    update:
      x-api-evangelist-provenance:
        generated_by: API Evangelist enrichment pipeline
        method: generated-from-live-probes
        probed: '2026-07-27'
        published_by_provider: false
        supported_by_provider: false
        warning: >-
          The OEB has never documented this interface. It is the default JSON projection of Micro Focus /
          OpenText Content Manager WebDrawer and may change or be withdrawn without notice.
  - target: $.info
    update:
      x-vocabulary: vocabulary/ontario-energy-board-rds-search-clauses.yml
      x-error-catalog: errors/ontario-energy-board-problem-types.yml
      x-conventions: conventions/ontario-energy-board-conventions.yml
      x-data-model: data-model/ontario-energy-board-data-model.yml
  - target: $.paths.*.get
    update:
      x-read-only: true
      x-consequence: none
      x-agent-safe: true
      x-authentication: none
  - target: $.paths['/Record'].get
    update:
      x-response-validation-required: >-
        HTTP 200 does not mean the query succeeded. Read SearchTitle on every response - an unknown
        clause or a wildcard used with '=' returns 200 with an empty Results array and the reason in
        that field.
      x-pagination:
        style: offset
        page_size_param: pageSize
        offset_param: start
        offset_base: 1
        total_field: TotalResults
        more_field: HasMoreItems
      x-clause-source: https://www.rds.oeb.ca/CMWebDrawer/Help/WDSearchClauseDefJS?trimType=Record
  - target: $.paths['/Record/{uri}'].get
    update:
      x-status: broken-for-anonymous-callers
      x-workaround: >-
        Take metadata from the search hit and fetch bytes from /Record/{uri}/File/document; record
        detail returns HTTP 500 TrimException (TrimErrorCode 22760) to anonymous callers.
  - target: $.paths['/Record/{uri}/File/document'].get
    update:
      x-content-types-observed:
        - application/pdf
      x-record-extensions-observed:
        - PDF
        - MSG
        - DOC
        - XLS
      x-note: >-
        Check RecordExtension on the search hit before assuming PDF; correspondence is frequently MSG.
  - target: $.components.schemas.TrimDateTime
    update:
      x-null-sentinel:
        when: 'IsClear is true'
        value: '0001-01-01T00:00:00.0000000Z'
        guidance: Treat as null. Do not parse or store the year 1 as a real date.