Con Edison Green Button Connect My Data API

Con Edison and Orange & Rockland's Green Button Connect My Data (CMD) implementation, branded "Share My Data" — the NAESB REQ.21 Energy Services Provider Interface (ESPI) machine-to-machine API through which a customer- authorized third party retrieves that customer's electric and gas interval usage, usage summaries, billing information and retail customer records in Atom/ESPI XML. The published Swagger 2.0 definition ("DCX GBC API V2", basePath /gbc/espi/1_1) documents 37 paths across ApplicationInformation, Authorization, ReadServiceStatus, UsagePoint, MeterReading, IntervalBlock, ReadingType, LocalTimeParameters, UsageSummary, RetailCustomer, Batch and RealTime resources. Authorization is OAuth 2.0 (RFC 6749/6750): the customer consents on the Con Edison or ORU site, the third party exchanges the authorization code at the token endpoint, and access tokens live one hour. Scopes are ESPI functional blocks (FB=1_3_4_5_7_8_10_15_16_51_53_56_ 57_58_60 with IntervalDuration, BlockDuration and HistoryLength qualifiers). Up to two years of history; 5-minute intervals for commercial AMI electric, 15-minute for residential AMI electric, 1-hour for gas AMI, monthly for non-interval meters; real-time electric readings for the last 24 hours at 45-minute latency. Access is NOT self-serve — registration, a signed Data Security Agreement, a technical onboarding form and supervised test-environment certification are required before production credentials are issued.

Documentation

Specifications

Other Resources

🔗
Overlay
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/overlays/con-edison-green-button-connect-my-data-overlay.yaml
🔗
PostmanCollection
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/collections/con-edison-green-button-connect-my-data.postman_collection.json
🔗
PostmanEnvironment
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/collections/con-edison-green-button-connect-my-data.postman_environment.json
🔗
OAuthScopes
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/scopes/con-edison-scopes.yml
🔗
Conventions
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/conventions/con-edison-conventions.yml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/errors/con-edison-problem-types.yml
🔗
Lifecycle
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/lifecycle/con-edison-lifecycle.yml
🔗
Conformance
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/conformance/con-edison-conformance.yml
🔗
DataModel
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/data-model/con-edison-data-model.yml
🔗
Webhooks
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/asyncapi/con-edison-batch-notification-webhooks.yml
🔗
Sandbox
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/sandbox/con-edison-sandbox.yml
🔗
MCPServer
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/mcp/con-edison-mcp.yml
🔗
AgentSkill
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/skills/_index.yml
🔗
FAQ
https://www.coned.com/-/media/files/coned/documents/accountandbilling/share-my-data/faq.pdf
🔗
SignUp
https://www.coned.com/en/accounts-billing/share-energy-usage-data/become-a-third-party/registration-form
🔗
Standard
https://www.naesb.org/espi_standards.asp
🔗
Standard
https://www.greenbuttonalliance.org/green-button-connect-my-data-cmd
🔗
APIsJSON
https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/apis.yml

OpenAPI Specification

con-edison-green-button-connect-my-data-swagger.json Raw ↑
{
  "swagger": "2.0",
  "info": {
    "version": "v1",
    "title": "DCX GBC API V2",
    "description": "The Green Button Connect API provides an access to RESTful services provided by ConEdison and Third Party Applications. These APIs allow application developers full access, in Green Button Format, to Energy Usage Information for the purpose of developing new Green Button Applications.Access to Green Button APIs requires an OAuth2 Access Token. Insert Access Tokens in the field labelled 'Access Token: ' at the top of the page prior to selecting the 'Try It Out!' button:"
  },
  "host": "provided-by-coned",
  "basePath": "/gbc/espi/1_1",
  "schemes": [
    "https"
  ],
  "paths": {
    "/resource/ApplicationInformation/{applicationInformationId}": {
      "get": {
        "tags": [
          "ApplicationInformation"
        ],
        "operationId": "getThirdPartyApplicationById",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "applicationInformationId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Authorization": {
      "get": {
        "tags": [
          "Authorization"
        ],
        "operationId": "Get all Third Party Authorizations",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "publishedMax",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "publishedMin",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "updatedMax",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "updatedMin",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Authorization/{authorizationId}": {
      "get": {
        "tags": [
          "Authorization"
        ],
        "operationId": "Get Third Party Authorization by ID",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "authorizationId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "publishedMax",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "publishedMin",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "updatedMax",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "updatedMin",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/ReadServiceStatus": {
      "get": {
        "tags": [
          "ServiceStatus"
        ],
        "operationId": "readServiceStatus",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/oauth/Token": {
      "post": {
        "tags": [
          "Authorization"
        ],
        "operationId": "Token",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded",
          "application/atom+xml"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "tokenRequest",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TokenRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Batch/Bulk/{bulkId}": {
      "get": {
        "tags": [
          "Batch"
        ],
        "operationId": "getAllUsageDataInBatch",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "bulkId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "published-min",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "published-max",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Batch/Subscription/{subscriptionId}": {
      "get": {
        "tags": [
          "Batch"
        ],
        "operationId": "getAllUsageDataForSubscriptionInBatch",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "published-min",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "published-max",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Batch/Subscription/{subscriptionId}/UsagePoint/{usagePointId}": {
      "get": {
        "tags": [
          "Batch"
        ],
        "operationId": "getUsagePointBySubscriptionInBatch",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "usagePointId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "published-min",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "published-max",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Batch/RetailCustomer/{subscriptionId}": {
      "get": {
        "tags": [
          "Batch"
        ],
        "operationId": "getCustomerInformationInBatch",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading/{meterReadingId}/IntervalBlock": {
      "get": {
        "tags": [
          "IntervalBlock"
        ],
        "operationId": "getAllIntervalBlocksForUsagePointMeterReadingInSubscription",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "usagePointId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "meterReadingId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "published-min",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "published-max",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading/{meterReadingId}/IntervalBlock/{intervalBlockId}": {
      "get": {
        "tags": [
          "IntervalBlock"
        ],
        "operationId": "getIntervalBlocksForUsagePointMeterReadingInSubscription",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "usagePointId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "meterReadingId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "intervalBlockId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "published-min",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "published-max",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/LocalTimeParameters": {
      "get": {
        "tags": [
          "LocalTimeParameters"
        ],
        "operationId": "getLocalTimeParameters",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/LocalTimeParameters/{localTimeParameterId}": {
      "get": {
        "tags": [
          "LocalTimeParameters"
        ],
        "operationId": "getLocalTimeParametersById",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "localTimeParameterId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading": {
      "get": {
        "tags": [
          "MeterReading"
        ],
        "operationId": "getAllMeterReadingsForUsagePointInSubscription",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "usagePointId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading/{meterReadingId}": {
      "get": {
        "tags": [
          "MeterReading"
        ],
        "operationId": "getMeterReadingForUsagePointInSubscription",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "usagePointId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "meterReadingId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/ReadingType": {
      "get": {
        "tags": [
          "ReadingType"
        ],
        "operationId": "getAllReadingTypes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/ReadingType/{readingTypeId}": {
      "get": {
        "tags": [
          "ReadingType"
        ],
        "operationId": "getReadingTypesById",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "readingTypeId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/RealTime/Batch/Bulk/{bulkId}": {
      "get": {
        "tags": [
          "RealTimeBatch"
        ],
        "operationId": "getAllRealTimeUsageDataInBatch",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "bulkId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "published-min",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "published-max",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/RealTime/Batch/Subscription/{subscriptionId}": {
      "get": {
        "tags": [
          "RealTimeBatch"
        ],
        "operationId": "getAllRealTimeUsageDataForSubscriptionInBatch",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "published-min",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "published-max",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/RealTime/Batch/Subscription/{subscriptionId}/UsagePoint/{usagePointId}": {
      "get": {
        "tags": [
          "RealTimeBatch"
        ],
        "operationId": "getRealTimeUsagePointBySubscriptionInBatch",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "usagePointId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "published-min",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "published-max",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/RealTime/Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading/{meterReadingId}/IntervalBlock": {
      "get": {
        "tags": [
          "RealTimeIntervalBlock"
        ],
        "operationId": "getAllRealTimeIntervalBlocksForUsagePointMeterReadingInSubscription",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "usagePointId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "meterReadingId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/RealTime/Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading/{meterReadingId}/IntervalBlock/{intervalBlockId}": {
      "get": {
        "tags": [
          "RealTimeIntervalBlock"
        ],
        "operationId": "getRealTimeIntervalBlockForUsagePointMeterReadingInSubscription",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "usagePointId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "meterReadingId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "intervalBlockId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/RealTime/ReadingType": {
      "get": {
        "tags": [
          "RealTimeReadingType"
        ],
        "operationId": "getAllRealTimeReadingTypes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/RealTime/ReadingType/{readingTypeId}": {
      "get": {
        "tags": [
          "RealTimeReadingType"
        ],
        "operationId": "getRealTimeReadingTypeById",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "readingTypeId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "startIndex",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Customer/{subscriptionId}": {
      "get": {
        "tags": [
          "RetailCustomer"
        ],
        "operationId": "getCustomerInformationBySubscription",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Customer/{subscriptionId}/CustomerAccount": {
      "get": {
        "tags": [
          "RetailCustomer"
        ],
        "operationId": "getCustomerAccountInSubscription",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "schemes": [
          "https"
        ]
      }
    },
    "/resource/Customer/{subscriptionId}/CustomerAccount/{accountId}": {
      "get": {
        "tags": [
          "RetailCustomer"
        ],
        "operationId": "getCustomerAccountByAccountIdInSubscription",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/atom+xml"
        ],
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "scheme

# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/con-edison/refs/heads/main/openapi/con-edison-green-button-connect-my-data-swagger.json