The Alberta Electric System Operator (AESO) is the independent, not-for-profit system and market operator for Alberta's electricity system — a statutory body created under Alberta's Electric Utilities Act that dispatches generation and operates the Alberta Interconnected Electric System twenty-four hours a day for roughly five million Albertans, plans the transmission system, administers grid connections, and runs Alberta's energy-only wholesale market including price settlement and market rules. It sits in the middle of the value chain: it does not own generation, wires or retail customers, it clears the pool, publishes the Pool Price, and holds the market-wide operational data every generator, retailer and trader in Alberta depends on. Its API posture is unusually clean for the sector and is the exact opposite of a compliance story — there is no mandate on AESO at all. Alberta has no Consumer Data Right, no Green Button regulation (that is Ontario's, by regulation, and Nova Scotia's), and no consumer energy-data obligation of any kind, and AESO holds no retail customer usage or billing data, so the consumer-data half of this sector simply does not exist here. What AESO publishes voluntarily is a genuinely open market-data surface in two layers: the legacy Energy Trading System report servlets at ets.aeso.ca, which return real CSV and HTML market reports — current supply and demand, pool price, system marginal price, daily averages, outages — anonymously with no key, no account and no licence click-through; and a modern Azure API Management gateway at apimgw.aeso.ca fronting fourteen documented JSON APIs whose full reference, operations, schemas and OpenAPI export can be read anonymously from the public developer portal, and whose keys are issued self-serve — email confirmation, subscribe to the single "AESO Public API" product, keys generated instantly, no approval step. Authentication is a single API-KEY request header (or a subscription-key query parameter). The one real friction is legal rather than technical: AESO's site terms permit non-commercial, personal or educational use only, and any other use requires written permission.
AESO publishes 14 APIs on the APIs.io network, including Pool Price Report API, System Marginal Price Report API, Current Supply Demand API (v2), and 11 more. Tagged areas include Energy, Canada, Alberta, Electricity, and Energy Markets.
AESO’s developer surface includes authentication, documentation, signup flow, support, engineering blog, API reference, getting-started guide, and 28 more developer resources.
Regulatory Posture applies to this provider. Its tags matched the
Energy & Utilities regime, so
Regulatory Posture carries 15 points of the composite.
If this regime is wrong for your business, say so on your
provider repo — the
applicability map is public and we will correct it.
The six quality facets above are damped to 85 points between them,
because the conditional facet above carries the other
15. That is why each facet's contribution is shown against a damped
maximum: raising a quality facet moves the composite by 85% of its nominal
weight, not 100%. The full arithmetic is at apis.io/rating/.
The hourly Alberta Pool Price — the settlement price of the province's energy-only wholesale electricity market — served as JSON for any date range back to 2000-01-01, up to one...
The System Marginal Price — the real-time price signal that sets the pool price over each settlement hour — served as JSON both as a historical date-range report and as a curren...
The current summary of Alberta's supply and demand balance — the JSON equivalent of the long-running ETS Current Supply Demand report that carries Alberta Total Net Generation, ...
The per-asset view of current generation, exposing /csd/generation/assets/current — the generating assets currently online in Alberta with their current output. Retained alongsi...
Actual and forecast Alberta Internal Load for a requested date range, served from /load/albertaInternalLoad — the demand series that underpins every load forecast, price forecas...
Load outages submitted to the AESO, served from /loadOutageReport — the demand-side counterpart to the generation outage feed, used to model expected load reductions.
Alberta's interties with British Columbia, Saskatchewan and Montana — two documented operations, /interchange for interchange capability and flow, and /outage for intertie outag...
A snapshot of the energy merit order — the stacked offers that determine which generation is dispatched and where the price clears — served from /meritOrder/energy. This is bid-...
Metered volume detail for the Alberta Interconnected Electric System, served from /meteredvolume/details. This is settlement-grade metering at market-asset granularity — not ret...
Operating reserve offer control data, served from /operatingReserveOfferControl — who controls the offers for Alberta's ancillary-services reserve products.
The registry of market assets on the Alberta Interconnected Electric System, served from /assetlist — the reference data that gives every asset ID in every other AESO feed a nam...
The latest list of pool participants operating in the Alberta Interconnected Electric System, served from /poolparticipantlist — the market-participant registry behind the asset...
AESO's long-running Energy Trading System report servlets — the fully anonymous half of its data posture, and the reason market_data_open is true for AESO regardless of the API ...
Take one coherent reading of the Alberta market — supply and demand balance, live system marginal price, and today's completed settlement-hour pool prices.
Reconstruct why Alberta's price cleared where it did — the offer stack, the units directed online, the outages that removed supply, and the resulting system marginal and pool pr...
aid: aeso
url: https://raw.githubusercontent.com/api-evangelist/aeso/refs/heads/main/apis.yml
name: AESO
kind: company
description: 'The Alberta Electric System Operator (AESO) is the independent, not-for-profit system and market operator for
Alberta''s electricity system — a statutory body created under Alberta''s Electric Utilities Act that dispatches generation
and operates the Alberta Interconnected Electric System twenty-four hours a day for roughly five million Albertans, plans
the transmission system, administers grid connections, and runs Alberta''s energy-only wholesale market including price
settlement and market rules. It sits in the middle of the value chain: it does not own generation, wires or retail customers,
it clears the pool, publishes the Pool Price, and holds the market-wide operational data every generator, retailer and trader
in Alberta depends on. Its API posture is unusually clean for the sector and is the exact opposite of a compliance story
— there is no mandate on AESO at all. Alberta has no Consumer Data Right, no Green Button regulation (that is Ontario''s,
by regulation, and Nova Scotia''s), and no consumer energy-data obligation of any kind, and AESO holds no retail customer
usage or billing data, so the consumer-data half of this sector simply does not exist here. What AESO publishes voluntarily
is a genuinely open market-data surface in two layers: the legacy Energy Trading System report servlets at ets.aeso.ca,
which return real CSV and HTML market reports — current supply and demand, pool price, system marginal price, daily averages,
outages — anonymously with no key, no account and no licence click-through; and a modern Azure API Management gateway at
apimgw.aeso.ca fronting fourteen documented JSON APIs whose full reference, operations, schemas and OpenAPI export can be
read anonymously from the public developer portal, and whose keys are issued self-serve — email confirmation, subscribe
to the single "AESO Public API" product, keys generated instantly, no approval step. Authentication is a single API-KEY
request header (or a subscription-key query parameter). The one real friction is legal rather than technical: AESO''s site
terms permit non-commercial, personal or educational use only, and any other use requires written permission.'
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/aeso.png
tags:
- Energy
- Canada
- Alberta
- Electricity
- Energy Markets
- Grid
- System Operator
- Market Operator
- Open Energy Data
- Wholesale Power
- Demand Response
- Renewables
- Utilities
created: '2026-07-27'
modified: '2026-07-27'
specificationVersion: '0.23'
apis:
- aid: aeso:aeso-pool-price-report-api
name: AESO Pool Price Report API
description: 'The hourly Alberta Pool Price — the settlement price of the province''s energy-only wholesale electricity
market — served as JSON for any date range back to 2000-01-01, up to one year per request. Each settlement hour returns
the UTC and Mountain Prevailing Time begin timestamps, the pool price in CAD, the forecast pool price, and the thirty-day
rolling average. Confirmed live on 2026-07-27: an anonymous GET to the gateway route returned HTTP 401 with "Access denied
due to missing subscription key" (a nonexistent path on the same gateway returns HTTP 404), which confirms the route is
real and that the only barrier is the free self-serve key.'
humanURL: https://developer-apim.aeso.ca/api-details#api=poolprice-api-v1-1
baseURL: https://apimgw.aeso.ca/public/poolprice-api/v1.1
tags:
- Pool Price
- Prices
- Wholesale Power
- Energy Markets
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-poolprice-api-v1-1-openapi.json
- type: Overlay
url: overlays/aeso-poolprice-api-v1-1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- type: Onboarding
url: https://www.aeso.ca/assets/downloads/external/api/API-Access-Instructions-APIM-API-Gateway.pdf
- aid: aeso:aeso-system-marginal-price-report-api
name: AESO System Marginal Price Report API
description: 'The System Marginal Price — the real-time price signal that sets the pool price over each settlement hour
— served as JSON both as a historical date-range report and as a current-value endpoint. Two documented operations: /price/systemMarginalPrice
for a range and /price/systemMarginalPrice/current for the live value.'
humanURL: https://developer-apim.aeso.ca/api-details#api=systemmarginalprice-api-v1-1
baseURL: https://apimgw.aeso.ca/public/systemmarginalprice-api/v1.1
tags:
- System Marginal Price
- Prices
- Real-Time
- Energy Markets
- Alberta
tags_raw:
- System Marginal Price
- Prices
- Real Time
- Energy Markets
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-systemmarginalprice-api-v1-1-openapi.json
- type: Overlay
url: overlays/aeso-systemmarginalprice-api-v1-1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-current-supply-demand-api-v2
name: AESO Current Supply Demand API (v2)
description: The current summary of Alberta's supply and demand balance — the JSON equivalent of the long-running ETS Current
Supply Demand report that carries Alberta Total Net Generation, Net Actual Interchange, Alberta Internal Load, contingency
reserve, and the generation mix by fuel type. Version 2 exposes /csd/summary/current.
humanURL: https://developer-apim.aeso.ca/api-details#api=currentsupplydemand-api-v2
baseURL: https://apimgw.aeso.ca/public/currentsupplydemand-api/v2
tags:
- Supply and Demand
- Generation Mix
- Real-Time
- Grid
- Alberta
tags_raw:
- Supply and Demand
- Generation Mix
- Real Time
- Grid
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-currentsupplydemand-api-v2-openapi.json
- type: Overlay
url: overlays/aeso-currentsupplydemand-api-v2-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-current-supply-demand-api-v1
name: AESO Current Supply Demand API (v1)
description: The per-asset view of current generation, exposing /csd/generation/assets/current — the generating assets currently
online in Alberta with their current output. Retained alongside v2, which reports the aggregate summary instead.
humanURL: https://developer-apim.aeso.ca/api-details#api=currentsupplydemand-api-v1
baseURL: https://apimgw.aeso.ca/public/currentsupplydemand-api/v1
tags:
- Supply and Demand
- Generation
- Assets
- Real-Time
- Alberta
tags_raw:
- Supply and Demand
- Generation
- Assets
- Real Time
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-currentsupplydemand-api-v1-openapi.json
- type: Overlay
url: overlays/aeso-currentsupplydemand-api-v1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-actual-forecast-report-api
name: AESO Actual Forecast Report API
description: Actual and forecast Alberta Internal Load for a requested date range, served from /load/albertaInternalLoad
— the demand series that underpins every load forecast, price forecast and adequacy study in the Alberta market.
humanURL: https://developer-apim.aeso.ca/api-details#api=actualforecast-api-v1
baseURL: https://apimgw.aeso.ca/public/actualforecast-api/v1
tags:
- Load Forecast
- Demand
- Alberta Internal Load
- Grid
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-actualforecast-api-v1-openapi.json
- type: Overlay
url: overlays/aeso-actualforecast-api-v1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-aies-gen-capacity-api
name: AESO AIES Gen Capacity API
description: Generation capacity and generator outages on the Alberta Interconnected Electric System as submitted to the
AESO, served from /AIESGenCapacity.
humanURL: https://developer-apim.aeso.ca/api-details#api=aiesgencapacity-api-v1
baseURL: https://apimgw.aeso.ca/public/aiesgencapacity-api/v1
tags:
- Generation Capacity
- Outages
- Grid
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-aiesgencapacity-api-v1-openapi.json
- type: Overlay
url: overlays/aeso-aiesgencapacity-api-v1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-load-outage-forecast-api
name: AESO Load Outage Forecast API
description: Load outages submitted to the AESO, served from /loadOutageReport — the demand-side counterpart to the generation
outage feed, used to model expected load reductions.
humanURL: https://developer-apim.aeso.ca/api-details#api=loadoutageforecast-api-v1
baseURL: https://apimgw.aeso.ca/public/loadoutageforecast-api/v1
tags:
- Outages
- Load
- Forecast
- Grid
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-loadoutageforecast-api-v1-openapi.json
- type: Overlay
url: overlays/aeso-loadoutageforecast-api-v1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-intertie-public-reports-api
name: AESO Intertie Public Reports API
description: Alberta's interties with British Columbia, Saskatchewan and Montana — two documented operations, /interchange
for interchange capability and flow, and /outage for intertie outages. The API equivalent of the public interconnection
transfer capacity dashboard at itc.aeso.ca.
humanURL: https://developer-apim.aeso.ca/api-details#api=itc-api-v1
baseURL: https://apimgw.aeso.ca/public/itc/v1
tags:
- Interties
- Interchange
- Outages
- Transmission
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-itc-api-v1-openapi.json
- type: Overlay
url: overlays/aeso-itc-api-v1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-energy-merit-order-report-api
name: AESO Energy Merit Order Report API
description: A snapshot of the energy merit order — the stacked offers that determine which generation is dispatched and
where the price clears — served from /meritOrder/energy. This is bid-and-offer transparency data of the kind most system
operators publish only on a lag.
humanURL: https://developer-apim.aeso.ca/api-details#api=energymeritorder-api-v1
baseURL: https://apimgw.aeso.ca/public/energymeritorder-api/v1
tags:
- Merit Order
- Offers
- Dispatch
- Energy Markets
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-energymeritorder-api-v1-openapi.json
- type: Overlay
url: overlays/aeso-energymeritorder-api-v1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-metered-volume-report-api
name: AESO Metered Volume Report API
description: Metered volume detail for the Alberta Interconnected Electric System, served from /meteredvolume/details. This
is settlement-grade metering at market-asset granularity — not retail customer metering; AESO holds no household usage
data.
humanURL: https://developer-apim.aeso.ca/api-details#api=meteredvolume-api-v1
baseURL: https://apimgw.aeso.ca/public/meteredvolume-api/v1
tags:
- Metering
- Settlement
- Volumes
- Energy Markets
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-meteredvolume-api-v1-openapi.json
- type: Overlay
url: overlays/aeso-meteredvolume-api-v1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-operating-reserve-offer-control-api
name: AESO Operating Reserve Offer Control Report API
description: Operating reserve offer control data, served from /operatingReserveOfferControl — who controls the offers for
Alberta's ancillary-services reserve products.
humanURL: https://developer-apim.aeso.ca/api-details#api=operatingreserveoffercontrol-api-v1
baseURL: https://apimgw.aeso.ca/public/operatingreserveoffercontrol-api/v1
tags:
- Operating Reserve
- Ancillary Services
- Offers
- Energy Markets
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-operatingreserveoffercontrol-api-v1-openapi.json
- type: Overlay
url: overlays/aeso-operatingreserveoffercontrol-api-v1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-asset-list-api
name: AESO Asset List API
description: The registry of market assets on the Alberta Interconnected Electric System, served from /assetlist — the reference
data that gives every asset ID in every other AESO feed a name, type and pool participant.
humanURL: https://developer-apim.aeso.ca/api-details#api=assetlist-api-v1
baseURL: https://apimgw.aeso.ca/public/assetlist-api/v1
tags:
- Assets
- Reference Data
- Registry
- Grid
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-assetlist-api-v1-openapi.json
- type: Overlay
url: overlays/aeso-assetlist-api-v1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-pool-participant-api
name: AESO Pool Participant API
description: The latest list of pool participants operating in the Alberta Interconnected Electric System, served from /poolparticipantlist
— the market-participant registry behind the asset list.
humanURL: https://developer-apim.aeso.ca/api-details#api=poolparticipant-api-v1
baseURL: https://apimgw.aeso.ca/public/PoolParticipant-api/v1
tags:
- Market Participants
- Reference Data
- Registry
- Energy Markets
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-poolparticipant-api-v1-openapi.json
- type: Overlay
url: overlays/aeso-poolparticipant-api-v1-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-unit-commitment-data-api
name: AESO Unit Commitment Data API
description: Unit commitment directives issued by the AESO, served from /unitCommitment — the instructions that bring generating
units online ahead of dispatch.
humanURL: https://developer-apim.aeso.ca/api-details#api=unitcommitmentdata-api-v2
baseURL: https://apimgw.aeso.ca/public/unitcommitmentdata-api/v2
tags:
- Unit Commitment
- Dispatch
- Directives
- Energy Markets
- Alberta
properties:
- type: OpenAPI
url: openapi/aeso-unitcommitmentdata-api-v2-openapi.json
- type: Overlay
url: overlays/aeso-unitcommitmentdata-api-v2-overlay.yaml
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- aid: aeso:aeso-ets-public-reports
name: AESO Energy Trading System (ETS) Public Reports
description: 'AESO''s long-running Energy Trading System report servlets — the fully anonymous half of its data posture,
and the reason market_data_open is true for AESO regardless of the API key on the newer gateway. Each report is a plain
HTTP GET that accepts contentType=csv and returns machine-readable CSV with no key, no account, no login and no licence
click-through. Confirmed live and anonymous on 2026-07-27: CSDReportServlet returned HTTP 200 with the Current Supply
Demand report (Alberta Total Net Generation 10,430 MW, Net Actual Interchange 241 MW, Alberta Internal Load 10,189 MW,
plus the generation mix by fuel — cogeneration, wind, combined cycle); SMPriceReportServlet returned HTTP 200 with the
hourly Pool Price series including the thirty-day rolling average and AIL demand; DailyAveragePoolPriceReportServlet returned
HTTP 200 with daily on-peak and off-peak averages; RealTimeShiftReportServlet, ActualForecastWMRQHReportServlet and HistoricalPoolPriceReportServlet
all returned HTTP 200. There is no OpenAPI, no schema and no formal reference for this surface — AESO documents the report
URLs on its Market and System Reporting page and nothing more — so it is recorded here as a verified public data surface
rather than as a specified API.'
humanURL: https://www.aeso.ca/market/market-and-system-reporting/
baseURL: http://ets.aeso.ca/ets_web/ip/Market/Reports
tags:
- Open Data
- CSV
- Pool Price
- Supply and Demand
- Outages
- Anonymous Access
- Alberta
properties:
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/
- type: Website
url: http://ets.aeso.ca/
common:
- type: MCPServer
url: mcp/aeso-mcp.yml
- type: AgenticAccess
url: agentic-access/aeso-agentic-access.yml
- type: DomainSecurity
url: security/aeso-domain-security.yml
- type: Authentication
url: authentication/aeso-authentication.yml
- type: Website
url: https://www.aeso.ca/
- type: DeveloperPortal
url: https://developer-apim.aeso.ca/
- type: Documentation
url: https://www.aeso.ca/market/market-and-system-reporting/aeso-application-programming-interface-api/
- type: Onboarding
url: https://www.aeso.ca/assets/downloads/external/api/API-Access-Instructions-APIM-API-Gateway.pdf
- type: SignUp
url: https://developer-apim.aeso.ca/signup
- type: SignIn
url: https://developer-apim.aeso.ca/signin
- type: Plans
url: https://developer-apim.aeso.ca/products
- type: TermsOfService
url: https://www.aeso.ca/legal/
- type: Support
url: mailto:info@aeso.ca
- type: Blog
url: https://www.aeso.ca/aeso/newsroom/
- type: LinkedIn
url: https://www.linkedin.com/company/25743
- type: Twitter
url: https://twitter.com/theaeso
- type: APIReference
url: https://developer-apim.aeso.ca/apis
- type: GettingStarted
url: https://www.aeso.ca/assets/downloads/external/api/API-Access-Instructions-APIM-API-Gateway.pdf
- type: PrivacyPolicy
url: https://www.aeso.ca/privacy/
- type: Plans
url: plans/aeso-plans.yml
- type: ChangeLog
url: changelog/aeso-changelog.yml
- type: Lifecycle
url: lifecycle/aeso-lifecycle.yml
- type: Conventions
url: conventions/aeso-conventions.yml
- type: ErrorCatalog
url: errors/aeso-problem-types.yml
- type: Conformance
url: conformance/aeso-conformance.yml
- type: DataModel
url: data-model/aeso-data-model.yml
- type: Examples
url: examples/aeso-examples.yml
- type: Packages
url: packages/aeso-packages.yml
- type: Sandbox
url: sandbox/aeso-sandbox.yml
- type: ToolCrosswalk
url: mcp/aeso-tool-crosswalk.yml
- type: LLMsTxt
url: llms/aeso-llms.txt
- type: AgentSkill
url: skills/_index.yml
- type: Arazzo
url: arazzo/aeso-market-snapshot.yaml
name: AESO live market snapshot
- type: Arazzo
url: arazzo/aeso-asset-drilldown.yaml
name: AESO asset drilldown
- type: Arazzo
url: arazzo/aeso-price-formation.yaml
name: AESO price formation trace
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com