Xcel Energy · Agentic Access
Xcel Energy Agentic Access
x-agentic-access
generated
Xcel Energy exposes 57 API operations that an AI agent could call, of which 8 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 49 read and 8 write.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
Electric UtilityEnergyEnergy DataGreen ButtonNatural GasSmart GridSmart MeterUtilityESPIIEEE 2030.5Fortune 500
Operations: 57
Acting: 8
Human-in-the-loop: 0
Method: generated
By consequence
read 49
write 8
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/xcel-energy-green-button-api.yaml, openapi/xcel-energy-smart-meter-api.yaml
description: Recommended x-agentic-access execution contracts, classified heuristically from
the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
audience per deployment. See research/curity/agentic-governance/.
summary:
operations: 57
by_action_class:
connected: 49
acting: 8
by_consequence:
read: 49
write: 8
human_in_the_loop_required: 0
operations:
- path: /ApplicationInformation/{applicationInformationId}
method: get
operationId: getApplicationInformation
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Authorization
method: get
operationId: listAuthorizations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Authorization/{authorizationId}
method: get
operationId: getAuthorization
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Subscription/{subscriptionId}/UsagePoint
method: get
operationId: listUsagePoints
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Subscription/{subscriptionId}/UsagePoint/{usagePointId}
method: get
operationId: getUsagePoint
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading
method: get
operationId: listMeterReadings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading/{meterReadingId}
method: get
operationId: getMeterReading
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading/{meterReadingId}/IntervalBlock
method: get
operationId: listIntervalBlocks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Subscription/{subscriptionId}/UsagePoint/{usagePointId}/MeterReading/{meterReadingId}/IntervalBlock/{intervalBlockId}
method: get
operationId: getIntervalBlock
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /ReadingType/{readingTypeId}
method: get
operationId: getReadingType
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Subscription/{subscriptionId}/UsagePoint/{usagePointId}/UsageSummary
method: get
operationId: listElectricPowerUsageSummaries
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Subscription/{subscriptionId}/UsagePoint/{usagePointId}/UsageSummary/{usageSummaryId}
method: get
operationId: getElectricPowerUsageSummary
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Subscription/{subscriptionId}/UsagePoint/{usagePointId}/ElectricPowerQualitySummary
method: get
operationId: listElectricPowerQualitySummaries
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Subscription/{subscriptionId}/UsagePoint/{usagePointId}/ElectricPowerQualitySummary/{powerQualitySummaryId}
method: get
operationId: getElectricPowerQualitySummary
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /LocalTimeParameters/{localTimeParametersId}
method: get
operationId: getLocalTimeParameters
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /RetailCustomer/{authorizationId}/Customer
method: get
operationId: listCustomers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /RetailCustomer/{authorizationId}/Customer/{customerId}/CustomerAccount
method: get
operationId: listCustomerAccounts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /RetailCustomer/{authorizationId}/Customer/{customerId}/CustomerAccount/{customerAccountId}/CustomerAgreement
method: get
operationId: listCustomerAgreements
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Batch/Subscription/{subscriptionId}
method: get
operationId: getBatchForSubscription
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Batch/Subscription/{subscriptionId}/UsagePoint/{usagePointId}
method: get
operationId: getBatchForUsagePoint
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /Batch/RetailCustomer/{authorizationId}
method: get
operationId: getBatchForRetailCustomer
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /ReadServiceStatus
method: get
operationId: readServiceStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /dcap
method: get
operationId: getDeviceCapability
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tm
method: get
operationId: getTime
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /sdev
method: get
operationId: getSelfDevice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /edev
method: get
operationId: listEndDevices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /edev
method: post
operationId: createEndDevice
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /edev/{edevId}
method: get
operationId: getEndDevice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /edev/{edevId}
method: put
operationId: updateEndDevice
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /edev/{edevId}
method: delete
operationId: deleteEndDevice
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /edev/{edevId}/reg
method: get
operationId: getRegistration
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /edev/{edevId}/di
method: get
operationId: getDeviceInformation
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /edev/{edevId}/dstat
method: get
operationId: getDeviceStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /edev/{edevId}/ps
method: get
operationId: getPowerStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /edev/{edevId}/log
method: get
operationId: listLogEvents
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /edev/{edevId}/cfg
method: get
operationId: getConfiguration
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /edev/{edevId}/fsa
method: get
operationId: listFunctionSetAssignments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /derp
method: get
operationId: listDERPrograms
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /derp/{derpId}
method: get
operationId: getDERProgram
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /derp/{derpId}/derc
method: get
operationId: listDERControls
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /der
method: get
operationId: listDERs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /drp
method: get
operationId: listDemandResponsePrograms
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /drp/{drpId}
method: get
operationId: getDemandResponseProgram
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /drp/{drpId}/edrc
method: get
operationId: listEndDeviceControls
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /msg
method: get
operationId: listMessagingPrograms
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /upt
method: get
operationId: listUsagePoints
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /upt/{uptId}
method: get
operationId: getUsagePoint
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /upt/{uptId}/mr
method: get
operationId: listMeterReadings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /upt/{uptId}/mr/{mrId}/r
method: get
operationId: listReadings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /mup
method: get
operationId: listMirrorUsagePoints
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /mup
method: post
operationId: createMirrorUsagePoint
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /mup/{mupId}
method: post
operationId: postMirrorMeterReading
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /rsp
method: get
operationId: listResponseSets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /rsp
method: post
operationId: postResponse
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /sub
method: get
operationId: listSubscriptions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /sub
method: post
operationId: createSubscription
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /sub/{subId}
method: delete
operationId: deleteSubscription
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required