Data Access & API Overview

There are several ways to access customer-authorized data via API. Our latest APIs follow the current NAESB Energy Service Provider Interface (ESPI) standard and provide access to Energy Usage Information (EUI) through a set of RESTful interfaces.

Supported Function Blocks, APIs and Data Elements

The Supported APIs PDF shows the APIs supported by PG&E implementation of Share My Data, as well as the PG&E specific API URL.

Supported APIs (PDf, 217kb)

Supported Function Blocks (PDF, 108 kb) 

Supported Relational Data Model, PG&E Implementation of ESPI (PDF, 278 KB)

Supported Data Elements (PDF, 244 KB)


PG&E's implementation is compatible with the ESPI provided schema definitions found on GitHub. Specifically, our current implementation uses the following schema versions:

XSDs (ZIP, 42kb)

Please reference the following sources on how to complete the signature for each API request and to test the API call against GBC's API Sandbox:

Green Button Implementation Agreement

Green Button API Sandbox

PG&E will monitor API activity for extraordinary and malicious behavior. Due to system constraints, PG&E reserves the right to limit the number and type of requests based on ongoing performance evaluations.

The following prerequisites must be met before you can access our APIs:

You have submitted your online registration information. If not, you will need to do so before proceeding.

Register Now

You have completed API Connectivity and OAuth Testing. If you have not yet completed testing, please see the Testing Instructions.

Get started with Testing Instructions


If your User Type requires Customer Authorization to access data, please ensure that the customer has granted you authorization to access their data and you have exchanged the authorization code for an access token. If you have not yet received customer authorization, please review the customer authorization process.

Go to Authorization Overview

Data Access Methods


With the daily subscription model, PG&E will notify you on a daily basis when all authorized data from the previous day, as well as any data corrections, is ready to be retrieved. To receive daily notifications, please be sure you check the "notify me as data is ready" checkbox during registration or by logging into your Share My Data account and updating your profile.


The Synchronous Ad-Hoc request allows you to request usage data for a single Service ID (i.e. UsagePointID) and customer info for a single authorization (i.e. RetailCustomerID). The service can be utilized only by third parties that have received Customer Authorization via three-legged OAuth (Standard and EEF 3rd Parties).

The Asynchronous Ad-Hoc request allows you to request usage data for multiple Service IDs (UsagePointIDs) or customer info for multiple authorizations (RetailCustomerIDs). The request is made using either your Client Access token (i.e. usage/customer data for all Service/RetailCustomer IDs authorized for access) or Access Token (i.e. only usage data for set of Service IDs authorized by a single customer).