PG&E Share My Data API

The PG&E Share My Data API provides customer-authorized access to energy usage data following the Energy Service Provider Interface (ESPI) standard and Green Button Connect My Data specification. Third-party companies can access interval data for both electricity and gas usage through RESTful web services with OAuth 2.0 authorization.

OpenAPI Specification

pg-and-e-share-my-data-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: PG&E Share My Data API
  description: >-
    The PG&E Share My Data API provides customer-authorized access to energy
    usage data following the Energy Service Provider Interface (ESPI) standard
    and Green Button Connect My Data specification. Third-party companies can
    access interval data for both electricity and gas usage through RESTful
    web services with OAuth 2.0 authorization.
  version: '1.0'
servers:
  - url: https://api.pge.com
tags:
  - name: Authorization
    description: OAuth 2.0 authorization for customer data access.
  - name: Subscriptions
    description: Manage data subscriptions for customer accounts.
  - name: Usage
    description: Retrieve energy usage interval data.
paths:
  /GreenButtonConnect/espi/1_1/resource/Authorization:
    get:
      operationId: listAuthorizations
      summary: List authorizations
      description: >-
        Retrieves a list of active customer authorizations granting access
        to energy usage data for the authenticated third-party application.
      tags:
        - Authorization
      responses:
        '200':
          description: Success
  /GreenButtonConnect/espi/1_1/resource/Subscription:
    get:
      operationId: listSubscriptions
      summary: List subscriptions
      description: >-
        Retrieves a list of data subscriptions for authorized customer
        accounts with subscription status and details.
      tags:
        - Subscriptions
      responses:
        '200':
          description: Success
  /GreenButtonConnect/espi/1_1/resource/Subscription/{subscriptionId}/UsagePoint:
    get:
      operationId: listUsagePoints
      summary: List usage points
      description: >-
        Retrieves usage points for a specified subscription, representing
        metering points for electricity or gas service.
      tags:
        - Usage
      parameters:
        - name: subscriptionId
          in: path
          required: true
          description: The subscription identifier.
          schema:
            type: string
      responses:
        '200':
          description: Success
  /GreenButtonConnect/espi/1_1/resource/Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading:
    get:
      operationId: listMeterReadings
      summary: List meter readings
      description: >-
        Retrieves meter reading data for a specified usage point,
        containing interval usage data for electricity or gas.
      tags:
        - Usage
      parameters:
        - name: subscriptionId
          in: path
          required: true
          description: The subscription identifier.
          schema:
            type: string
        - name: usagePointId
          in: path
          required: true
          description: The usage point identifier.
          schema:
            type: string
      responses:
        '200':
          description: Success
  ? /GreenButtonConnect/espi/1_1/resource/Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading/{meterReadingId}/IntervalBlock
  : get:
      operationId: listIntervalBlocks
      summary: List interval blocks
      description: >-
        Retrieves interval block data containing detailed energy
        consumption measurements at regular time intervals.
      tags:
        - Usage
      parameters:
        - name: subscriptionId
          in: path
          required: true
          description: The subscription identifier.
          schema:
            type: string
        - name: usagePointId
          in: path
          required: true
          description: The usage point identifier.
          schema:
            type: string
        - name: meterReadingId
          in: path
          required: true
          description: The meter reading identifier.
          schema:
            type: string
      responses:
        '200':
          description: Success
components:
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://api.pge.com/datacustodian/oauth/v2/authorize
          tokenUrl: https://api.pge.com/datacustodian/oauth/v2/token
          scopes:
            usage:read: Read energy usage data