Consolidated Edison · OpenAPI Overlay 1.0.0

API Evangelist enhancements for Con Edison Green Button Connect My Data

5 actions 5 updates update extends openapi/_original/consolidated-edison-green-button-connect-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for Consolidated Edison's API. It is a proposal applied on top of the contract, not a document Consolidated Edison publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

hostx-apievangelist-standardx-apievangelist-sourcex-apievangelist-source-published-byx-apievangelist-test-hostsecurityDefinitionsx-apievangelist-authenticatedx-apievangelist-note

Targets 4

$
$.info
$.paths['/resource/ReadServiceStatus'].get
$.paths['/resource/Batch/Subscription/{subscriptionId}'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for Con Edison Green Button Connect My Data
  version: 1.0.0
x-generated: '2026-09-05'
x-method: generated
x-source: >-
  Enhancements derived from Con Edison's own Green Button Connect Third-Party
  Technical Onboarding Document v4.4 and the observed behaviour of
  api.coned.com, applied over the verbatim Swagger 2.0 definition at
  openapi/_original/consolidated-edison-green-button-connect-openapi.json
extends: openapi/_original/consolidated-edison-green-button-connect-openapi.json
actions:
  - target: $
    description: >-
      The published definition carries host "provided-by-coned", a placeholder
      rather than a hostname. Con Edison's onboarding document names the real
      production host for the same basePath (/gbc/espi/1_1) as api.coned.com,
      and GET https://api.coned.com/gbc/espi/1_1/resource/ReadServiceStatus
      returned 401 (an authenticated live endpoint) on 2026-09-05. The working
      copy at openapi/consolidated-edison-green-button-connect-openapi.yml
      applies this single change; the _original is untouched.
    update:
      host: api.coned.com
  - target: $.info
    description: Record the domain standard and the provenance of this definition.
    update:
      x-apievangelist-standard: NAESB ESPI REQ.21 / Green Button Connect My Data V3.3
      x-apievangelist-source: >-
        https://edge-e-dcx-downloads-prod-gjf6ega8bmh8crfh.a01.azurefd.net/gbc-api-defintions/swagger-cert.json
      x-apievangelist-source-published-by: >-
        Linked from Con Edison's public Become a Third Party onboarding document
        (Share My Data), version 4.4, last updated 2026-05-07.
      x-apievangelist-test-host: apit.coned.com
  - target: $
    description: >-
      The definition declares no securityDefinitions, yet every /resource/*
      operation requires an OAuth 2.0 bearer access token — the API returns 401
      anonymously. This adds the scheme Con Edison documents in prose.
    update:
      securityDefinitions:
        GreenButtonOAuth2:
          type: oauth2
          flow: accessCode
          authorizationUrl: https://www.coned.com/en/oauth/authorize
          tokenUrl: https://api.coned.com/gbc/espi/1_1/oauth/Token
          description: >-
            NAESB ESPI OAuth 2.0 profile. The scope parameter is a structured
            ESPI expression, not a scope list — see
            scopes/consolidated-edison-scopes.yml.
          scopes: {}
  - target: $.paths['/resource/ReadServiceStatus'].get
    description: >-
      Flag the health operation as authenticated — it returned 401 anonymously
      on 2026-09-05, so it is not a public status surface.
    update:
      x-apievangelist-authenticated: true
      x-apievangelist-note: >-
        Health/status probe for onboarded third parties. Not a public status
        page; see lifecycle/consolidated-edison-lifecycle.yml.
  - target: $.paths['/resource/Batch/Subscription/{subscriptionId}'].get
    description: >-
      Batch operations are asynchronous — 202 plus a callback to the third
      party's registered notification URI. The definition declares only 200.
    update:
      x-apievangelist-async: true
      x-apievangelist-callback: asyncapi/consolidated-edison-webhooks.yml