AESO Load Outage Forecast API

Load outages submitted to the AESO, served from /loadOutageReport — the demand-side counterpart to the generation outage feed, used to model expected load reductions.

OpenAPI Specification

aeso-loadoutageforecast-api-v1-openapi.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "Load Outage Forecast API",
    "description": "Load outages submitted to the AESO.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://apimgw.aeso.ca/public/loadoutageforecast-api"
    },
    {
      "url": "https://gateway-apim.aeso.ca/public/loadoutageforecast-api"
    }
  ],
  "paths": {
    "/loadOutageReport": {
      "get": {
        "operationId": "getLoadOutageRangeReport",
        "summary": "Fetch hourly load outages submitted to AESO",
        "description": "Fetch hourly load outage forecast for a given date or date range. \r\nIf only the startDate is provided, data will only be provided for that day. \r\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadOutageVO"
                },
                "examples": {
                  "default": {
                    "value": {
                      "loadOutagePerHourVO": [
                        {
                          "begin_datetime_utc": "string",
                          "begin_datetime_mpt": "string",
                          "load_outage_forecast (in MW)": 0
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Invalid method"
          },
          "500": {
            "description": "Internal server error"
          },
          "503": {
            "description": "Service unavailable"
          }
        },
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "required": true,
            "description": "Date (yyyy-mm-dd) from 2013-09-22, and up to 24 months in the future.",
            "schema": {
              "$ref": "#/components/schemas/LoadOutageReportGetRequest"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "Date (yyyy-mm-dd) equal or after startDate, and up to 24 months in the future. If blank, data for the startDate will be returned.",
            "schema": {
              "$ref": "#/components/schemas/LoadOutageReportGetRequest-1"
            }
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiKeyHeader": {
        "type": "apiKey",
        "name": "API-KEY",
        "in": "header"
      },
      "apiKeyQuery": {
        "type": "apiKey",
        "name": "subscription-key",
        "in": "query"
      }
    },
    "schemas": {
      "LoadOutagePerHourVO": {
        "type": "object",
        "properties": {
          "begin_datetime_utc": {
            "type": "string",
            "description": "Begin timestamp of the hour for the load outage, in UTC."
          },
          "begin_datetime_mpt": {
            "type": "string",
            "description": "Begin timestamp of the hour for the load outage, in MPT (Mountain Prevailing Time)."
          },
          "load_outage_forecast (in MW)": {
            "type": "number",
            "description": "Aggregated forecasted value of Load Outages for the hour, in MW.\r\n",
            "format": "double"
          }
        }
      },
      "LoadOutageVO": {
        "type": "object",
        "properties": {
          "loadOutagePerHourVO": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoadOutagePerHourVO"
            }
          }
        }
      },
      "HealthComponent": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "SystemHealth": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "components": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/HealthComponent"
            }
          },
          "details": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/HealthComponent"
            }
          },
          "groups": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "LoadOutageReportGetRequest": {
        "pattern": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$",
        "type": "string",
        "x-apim-inline": true
      },
      "LoadOutageReportGetRequest-1": {
        "pattern": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$",
        "type": "string",
        "x-apim-inline": true
      }
    }
  },
  "security": [
    {},
    {
      "apiKeyHeader": []
    },
    {
      "apiKeyQuery": []
    }
  ],
  "x-provenance": {
    "harvestedBy": "API Evangelist",
    "harvestedOn": "2026-07-27",
    "sourcePortal": "https://developer-apim.aeso.ca/",
    "method": "Assembled verbatim from the AESO Azure API Management developer-portal data API, which is served anonymously. AESO's own OpenAPI export (?export=true&format=openapi) returns a valid document with an EMPTY paths object, so paths, parameters, responses, examples and component schemas were read from the portal's operations/ and schemas/ endpoints and reassembled without alteration. Nothing was invented.",
    "sources": [
      {
        "url": "https://developer-apim.aeso.ca/developer/apis/loadoutageforecast-api-v1?api-version=2022-04-01-preview",
        "status": 200,
        "note": "API metadata"
      },
      {
        "url": "https://developer-apim.aeso.ca/developer/apis/loadoutageforecast-api-v1?export=true&format=openapi%2Bjson&api-version=2022-04-01-preview",
        "status": 200,
        "note": "AESO OpenAPI export (empty paths) - basis for info/servers/security"
      },
      {
        "url": "https://developer-apim.aeso.ca/developer/apis/loadoutageforecast-api-v1/operations?api-version=2022-04-01-preview",
        "status": 200,
        "note": "operation list"
      },
      {
        "url": "https://developer-apim.aeso.ca/developer/apis/loadoutageforecast-api-v1/schemas?api-version=2022-04-01-preview",
        "status": 200,
        "note": "schema list"
      },
      {
        "url": "https://developer-apim.aeso.ca/developer/apis/loadoutageforecast-api-v1/operations/getLoadOutageRangeReport?api-version=2022-04-01-preview",
        "status": 200,
        "note": "operation detail"
      },
      {
        "url": "https://developer-apim.aeso.ca/developer/apis/loadoutageforecast-api-v1/schemas/68347a95445a9615c44eeb17?api-version=2022-04-01-preview",
        "status": 200,
        "note": "schema document"
      }
    ]
  }
}