Pacific Gas and Electric · AsyncAPI Specification
Pge Share My Data Notifications
Version
View Spec
View on GitHub
EnergyUnited StatesUtilitiesElectricityGasCaliforniaSmart MeteringGreen ButtonESPIEnergy DataGridDemand ResponseInvestor-Owned UtilityAsyncAPIEvents
AsyncAPI Specification
generated: '2026-07-27'
method: searched
source: >-
https://www.pge.com/en/save-energy-and-money/energy-saving-programs/smartmeter/third-party-companies.html
(HTTP 200, fetched 2026-07-27) and PG&E Supported-APIs.pdf.
spec_type: none
spec_type_note: >-
PG&E publishes NO AsyncAPI document for this callback surface, and no
AsyncAPI, EventBridge schema or webhook JSON schema was found on any PG&E
host. This artifact is the captured webhook/event catalog, derived from PG&E's
own published description of the notification model — it is NOT a fabricated
AsyncAPI.
description: >-
Share My Data has a real push surface. Every third party registers a
Notification URI, and PG&E POSTs to it when an authorization changes, when an
asynchronous (Batch) request has been prepared, and — for third parties that
opt in to daily subscription — when each day's data is packaged. The
notification does not carry the data: it carries retrieval URIs that the third
party then GETs over mutual TLS with the appropriate token. This is ESPI
function block FB=39 (Push model — Post Notification of data being ready
followed by GET).
surface:
kind: webhook
direction: PG&E to third party
endpoint: >-
The third party's own Notification URI, supplied during registration at
https://sharemydata.pge.com/ and editable under Manage Registration.
transport: HTTPS POST over mutual TLS
payload_format: >-
ESPI XML in the http://naesb.org/espi namespace. PG&E's documented batch
notification body carries an ns0:BatchList element containing an
ns0:resources element with the retrieval URL(s).
retrieval_pattern: >-
Notification carries URIs only. The third party calls back with GET on the
supplied resource URL, using the client_access_token for Bulk-level
resources or the customer access_token for Subscription-level resources.
function_block: FB=39
correlation: >-
Asynchronous requests accept a correlationID query parameter; since Release
4.0 (2023-03-20) PG&E also supports an x-transaction header label returned
with a Correlation ID when the requested file is ready.
events:
- name: authorization-changed
trigger: >-
Any change to an existing authorization, for example a customer
cancellation.
payload: Notification of the change, with the Authorization resource URI to retrieve.
retrieve_with: GET /GreenButtonConnect/espi/1_1/resource/Authorization/{AuthorizationID}
token: client_access_token
source_doc: PG&E third-party developer page, Notification URI section.
- name: async-batch-ready
trigger: >-
An earlier ad hoc asynchronous (Batch) request has been prepared and the
data is ready.
payload: ns0:BatchList with ns0:resources containing the retrieval URL(s).
retrieve_with: >-
GET on the supplied Batch resource URL — one of Batch/Bulk/{BulkID},
Batch/Subscription/{SubscriptionID},
Batch/Subscription/{SubscriptionID}/UsagePoint/{UsagePointID},
Batch/BulkRetailCustomerInfo/{BulkID}, Batch/RetailCustomer/{RetailCustomerID},
Batch/BulkRetailDRPrgInfo/{BulkID}, Batch/RetailDRPrgInfo/{RetailCustomerID}.
token: client_access_token (Bulk level) or customer access_token (customer level)
documented_scenario: >-
Scenario 2 in PG&E's "DATA ACCESS: AD HOC REQUEST (ASYNCHRONOUS)" diagram.
- name: daily-subscription-data-ready
trigger: >-
Opt-in only. Third parties who tick "Notify me as data is ready" in their
registration profile receive a daily notification once PG&E has packaged
the latest day's data plus any corrections to previous data from the last
24 hours.
payload: Notification with the prepackaged data retrieval URI(s).
retrieve_with: GET on the supplied resource URL.
documented_scenario: >-
Scenario 1 in PG&E's "DATA ACCESS: DAILY SUBSCRIPTION" diagram.
guidance: >-
PG&E asks third parties who do not intend to retrieve data daily NOT to
enable this option, to reduce unnecessary processing. Ad hoc requests
remain available.
registration:
notification_uri: Required at registration.
redirect_uri: Required for the OAuth authorization-code flow.
third_party_portal_uri: Required — PG&E redirects the customer here during authorization.
qa_scope_selection_host: >-
sharemydataqa.pge.com is named in PG&E release notes as the QA
dataCustodianScopeSelectionScreenURI host but does not resolve publicly.
security:
transport: Mutual TLS 1.2 with the third party's CA-issued X.509 certificate.
signature: No webhook signature scheme (HMAC or otherwise) is documented.
replay_protection: Not documented.
gaps:
- No AsyncAPI, no published JSON/XML schema specific to the notification body
beyond the ESPI namespace, no signature verification guidance, no retry or
delivery-guarantee policy, and no notification test harness.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/pge-share-my-data-notifications"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.