EPCOR Power Outages API

Edmonton electricity distribution outages (active, planned and point features).

Operations 9

GET /ocps_prod_av/FeatureServer Get ocps_prod_av service metadata #
GET /ocps_prod_av/FeatureServer/0 Get ocps_prod_av layer 0 metadata #
GET /ocps_prod_av/FeatureServer/0/query Query ocps_prod_av #
GET /ocps_prod_pl/FeatureServer Get ocps_prod_pl service metadata #
GET /ocps_prod_pl/FeatureServer/0 Get ocps_prod_pl layer 0 metadata #
GET /ocps_prod_pl/FeatureServer/0/query Query ocps_prod_pl #
GET /power_outage_prod/FeatureServer Get power_outage_prod service metadata #
GET /power_outage_prod/FeatureServer/0 Get power_outage_prod layer 0 metadata #
GET /power_outage_prod/FeatureServer/0/query Query power_outage-prod #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/epcor-power-outages-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

epcor-power-outages-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: EPCOR Public Outage and Service Area Feature Services (ArcGIS REST) Power Outages API
  version: '12'
  summary: Anonymous, machine-readable read access to EPCOR's live power outage, water outage, water infrastructure project and service area feature layers.
  description: 'EPCOR publishes no OpenAPI, no developer portal and no API documentation. It does, however, operate a public ArcGIS Online organization (`services6.arcgis.com/Ji2rusuWXDFSqNsP`, owner `epcor_outages`) whose production feature services are shared publicly and are readable anonymously over the ArcGIS REST GeoServices interface. Those services back the EPCOR outage map at https://outages.epcor.com/ and cover Edmonton power outages, Canadian water outages and main breaks, water infrastructure projects, and the outage and service area layers for EPCOR Water''s US districts in Arizona and New Mexico.


    THIS DOCUMENT IS DERIVED, NOT PUBLISHED BY EPCOR. Every path, layer, field name and field type below was read from the live ArcGIS service and layer metadata documents on 2026-07-27; the query parameter set is the standard Esri ArcGIS REST `query` operation contract. No endpoint, field or value has been invented. Editing capabilities advertised by some services (Create/Update/Delete) are NOT modelled here: only anonymous read was probed, and write access requires an ArcGIS token.


    Data is operational, near real time and unversioned. EPCOR publishes no licence, no terms of use for this surface, no rate limit and no support channel for it.'
  contact:
    name: EPCOR
    url: https://www.epcor.com/ca/en/ab/edmonton/contact-edmonton.html
  x-apievangelist:
    method: derived
    generated: '2026-07-27'
    derived_from:
    - https://services6.arcgis.com/Ji2rusuWXDFSqNsP/ArcGIS/rest/services?f=json
    - ArcGIS feature service and layer metadata documents for every *_prod service in the folder
    - https://outages.epcor.com/assets/config.json
    note: Derived by the API Evangelist enrichment pipeline from live, anonymously readable ArcGIS REST metadata. EPCOR does not publish this specification.
servers:
- url: https://services6.arcgis.com/Ji2rusuWXDFSqNsP/ArcGIS/rest/services
  description: EPCOR public ArcGIS Online feature service folder (hosted by Esri ArcGIS Online).
security: []
tags:
- name: power-outages
  description: Edmonton electricity distribution outages (active, planned and point features).
paths:
  /ocps_prod_av/FeatureServer:
    get:
      operationId: getOcpsProdAvService
      summary: Get ocps_prod_av service metadata
      description: 'Edmonton active power outage areas (Outage Coordination and Publishing System). Returns the ArcGIS feature service metadata document: layers, capabilities (Create,Delete,Query,Update,Editing,Extract,ChangeTracking), maxRecordCount (2000) and spatial reference.'
      tags:
      - power-outages
      parameters:
      - $ref: '#/components/parameters/f'
      responses:
        '200':
          description: Feature service metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceMetadata'
  /ocps_prod_av/FeatureServer/0:
    get:
      operationId: getOcpsProdAvLayer
      summary: Get ocps_prod_av layer 0 metadata
      description: Field definitions, geometry type (esriGeometryPolygon), extent and edit timestamps for the `ocps_prod_av` layer.
      tags:
      - power-outages
      parameters:
      - $ref: '#/components/parameters/f'
      responses:
        '200':
          description: Feature layer metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LayerMetadata'
  /ocps_prod_av/FeatureServer/0/query:
    get:
      operationId: queryOcpsProdAv
      summary: Query ocps_prod_av
      description: 'Edmonton active power outage areas (Outage Coordination and Publishing System). Query the `ocps_prod_av` layer with a SQL `where` clause and optional spatial filter. Anonymous read, no API key. Observed feature count at harvest time: 5.'
      tags:
      - power-outages
      parameters:
      - $ref: '#/components/parameters/f'
      - $ref: '#/components/parameters/where'
      - $ref: '#/components/parameters/outFields'
      - $ref: '#/components/parameters/returnGeometry'
      - $ref: '#/components/parameters/returnCountOnly'
      - $ref: '#/components/parameters/returnIdsOnly'
      - $ref: '#/components/parameters/orderByFields'
      - $ref: '#/components/parameters/resultOffset'
      - $ref: '#/components/parameters/resultRecordCount'
      - $ref: '#/components/parameters/geometry'
      - $ref: '#/components/parameters/geometryType'
      - $ref: '#/components/parameters/spatialRel'
      - $ref: '#/components/parameters/inSR'
      - $ref: '#/components/parameters/outSR'
      responses:
        '200':
          description: Esri FeatureSet (`f=json`), GeoJSON FeatureCollection (`f=geojson`), or an ArcGIS error envelope — these services answer invalid requests with HTTP 200 and an `error` body.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/OcpsProdAvL0FeatureSet'
                - $ref: '#/components/schemas/GeoJSONFeatureCollection'
                - $ref: '#/components/schemas/EsriError'
  /ocps_prod_pl/FeatureServer:
    get:
      operationId: getOcpsProdPlService
      summary: Get ocps_prod_pl service metadata
      description: 'Edmonton planned power outage areas (Outage Coordination and Publishing System). Returns the ArcGIS feature service metadata document: layers, capabilities (Create,Delete,Query,Update,Editing,Extract,ChangeTracking), maxRecordCount (2000) and spatial reference.'
      tags:
      - power-outages
      parameters:
      - $ref: '#/components/parameters/f'
      responses:
        '200':
          description: Feature service metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceMetadata'
  /ocps_prod_pl/FeatureServer/0:
    get:
      operationId: getOcpsProdPlLayer
      summary: Get ocps_prod_pl layer 0 metadata
      description: Field definitions, geometry type (esriGeometryPolygon), extent and edit timestamps for the `ocps_prod_pl` layer.
      tags:
      - power-outages
      parameters:
      - $ref: '#/components/parameters/f'
      responses:
        '200':
          description: Feature layer metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LayerMetadata'
  /ocps_prod_pl/FeatureServer/0/query:
    get:
      operationId: queryOcpsProdPl
      summary: Query ocps_prod_pl
      description: 'Edmonton planned power outage areas (Outage Coordination and Publishing System). Query the `ocps_prod_pl` layer with a SQL `where` clause and optional spatial filter. Anonymous read, no API key. Observed feature count at harvest time: 0.'
      tags:
      - power-outages
      parameters:
      - $ref: '#/components/parameters/f'
      - $ref: '#/components/parameters/where'
      - $ref: '#/components/parameters/outFields'
      - $ref: '#/components/parameters/returnGeometry'
      - $ref: '#/components/parameters/returnCountOnly'
      - $ref: '#/components/parameters/returnIdsOnly'
      - $ref: '#/components/parameters/orderByFields'
      - $ref: '#/components/parameters/resultOffset'
      - $ref: '#/components/parameters/resultRecordCount'
      - $ref: '#/components/parameters/geometry'
      - $ref: '#/components/parameters/geometryType'
      - $ref: '#/components/parameters/spatialRel'
      - $ref: '#/components/parameters/inSR'
      - $ref: '#/components/parameters/outSR'
      responses:
        '200':
          description: Esri FeatureSet (`f=json`), GeoJSON FeatureCollection (`f=geojson`), or an ArcGIS error envelope — these services answer invalid requests with HTTP 200 and an `error` body.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/OcpsProdPlL0FeatureSet'
                - $ref: '#/components/schemas/GeoJSONFeatureCollection'
                - $ref: '#/components/schemas/EsriError'
  /power_outage_prod/FeatureServer:
    get:
      operationId: getPowerOutageProdService
      summary: Get power_outage_prod service metadata
      description: 'Edmonton power outage points. Returns the ArcGIS feature service metadata document: layers, capabilities (Create,Delete,Query,Update,Editing), maxRecordCount (2000) and spatial reference.'
      tags:
      - power-outages
      parameters:
      - $ref: '#/components/parameters/f'
      responses:
        '200':
          description: Feature service metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceMetadata'
  /power_outage_prod/FeatureServer/0:
    get:
      operationId: getPowerOutageProdLayer
      summary: Get power_outage_prod layer 0 metadata
      description: Field definitions, geometry type (esriGeometryPoint), extent and edit timestamps for the `power_outage-prod` layer.
      tags:
      - power-outages
      parameters:
      - $ref: '#/components/parameters/f'
      responses:
        '200':
          description: Feature layer metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LayerMetadata'
  /power_outage_prod/FeatureServer/0/query:
    get:
      operationId: queryPowerOutageProd
      summary: Query power_outage-prod
      description: 'Edmonton power outage points. Query the `power_outage-prod` layer with a SQL `where` clause and optional spatial filter. Anonymous read, no API key. Observed feature count at harvest time: 0.'
      tags:
      - power-outages
      parameters:
      - $ref: '#/components/parameters/f'
      - $ref: '#/components/parameters/where'
      - $ref: '#/components/parameters/outFields'
      - $ref: '#/components/parameters/returnGeometry'
      - $ref: '#/components/parameters/returnCountOnly'
      - $ref: '#/components/parameters/returnIdsOnly'
      - $ref: '#/components/parameters/orderByFields'
      - $ref: '#/components/parameters/resultOffset'
      - $ref: '#/components/parameters/resultRecordCount'
      - $ref: '#/components/parameters/geometry'
      - $ref: '#/components/parameters/geometryType'
      - $ref: '#/components/parameters/spatialRel'
      - $ref: '#/components/parameters/inSR'
      - $ref: '#/components/parameters/outSR'
      responses:
        '200':
          description: Esri FeatureSet (`f=json`), GeoJSON FeatureCollection (`f=geojson`), or an ArcGIS error envelope — these services answer invalid requests with HTTP 200 and an `error` body.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/PowerOutageProdL0FeatureSet'
                - $ref: '#/components/schemas/GeoJSONFeatureCollection'
                - $ref: '#/components/schemas/EsriError'
components:
  schemas:
    PowerOutageProdL0Attributes:
      type: object
      description: Attributes of a feature in the `power_outage-prod` layer (power_outage_prod, layer 0). Geometry type esriGeometryPoint.
      properties:
        FID:
          type: integer
          description: Object ID; the unique, service maintained identifier.
          x-esri-field-type: esriFieldTypeOID
        ID:
          type: number
          x-esri-field-type: esriFieldTypeDouble
        AvenueFrom:
          type: string
          maxLength: 200
          x-esri-field-type: esriFieldTypeString
        AvenueTo:
          type: string
          maxLength: 200
          x-esri-field-type: esriFieldTypeString
        CauseTitle:
          type: string
          maxLength: 200
          x-esri-field-type: esriFieldTypeString
        Details:
          type: string
          maxLength: 200
          x-esri-field-type: esriFieldTypeString
        FaultResto:
          type: string
          maxLength: 200
          x-esri-field-type: esriFieldTypeString
        FaultStart:
          type: string
          maxLength: 200
          x-esri-field-type: esriFieldTypeString
        NodeTitle:
          type: string
          maxLength: 200
          x-esri-field-type: esriFieldTypeString
        StreetFrom:
          type: string
          maxLength: 200
          x-esri-field-type: esriFieldTypeString
        StreetTo:
          type: string
          maxLength: 200
          x-esri-field-type: esriFieldTypeString
    SpatialReference:
      type: object
      properties:
        wkid:
          type: integer
        latestWkid:
          type: integer
    LayerMetadata:
      type: object
      description: 'ArcGIS feature layer metadata document: field definitions, geometry type, extent, capabilities and edit timestamps.'
      properties:
        currentVersion:
          type: number
        id:
          type: integer
        name:
          type: string
        type:
          type: string
        geometryType:
          type: string
        fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldDefinition'
        extent:
          type: object
        editingInfo:
          type: object
        maxRecordCount:
          type: integer
    OcpsProdAvL0FeatureSet:
      type: object
      description: Esri FeatureSet returned by a query against the `ocps_prod_av` layer.
      properties:
        objectIdFieldName:
          type: string
        globalIdFieldName:
          type: string
        geometryType:
          type: string
        spatialReference:
          $ref: '#/components/schemas/SpatialReference'
        fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldDefinition'
        exceededTransferLimit:
          type: boolean
          description: True when more features match than were returned; page with `resultOffset`.
        features:
          type: array
          items:
            type: object
            properties:
              attributes:
                $ref: '#/components/schemas/OcpsProdAvL0Attributes'
              geometry:
                type: object
                description: Feature geometry, omitted when `returnGeometry=false`.
    PowerOutageProdL0FeatureSet:
      type: object
      description: Esri FeatureSet returned by a query against the `power_outage-prod` layer.
      properties:
        objectIdFieldName:
          type: string
        globalIdFieldName:
          type: string
        geometryType:
          type: string
        spatialReference:
          $ref: '#/components/schemas/SpatialReference'
        fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldDefinition'
        exceededTransferLimit:
          type: boolean
          description: True when more features match than were returned; page with `resultOffset`.
        features:
          type: array
          items:
            type: object
            properties:
              attributes:
                $ref: '#/components/schemas/PowerOutageProdL0Attributes'
              geometry:
                type: object
                description: Feature geometry, omitted when `returnGeometry=false`.
    GeoJSONFeatureCollection:
      type: object
      description: RFC 7946 FeatureCollection returned when `f=geojson`.
      properties:
        type:
          type: string
          const: FeatureCollection
        properties:
          type: object
          properties:
            exceededTransferLimit:
              type: boolean
        features:
          type: array
          items:
            type: object
    FieldDefinition:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
          description: Esri field type, for example `esriFieldTypeString`.
        alias:
          type: string
        sqlType:
          type: string
        length:
          type: integer
    OcpsProdAvL0Attributes:
      type: object
      description: Attributes of a feature in the `ocps_prod_av` layer (ocps_prod_av, layer 0). Geometry type esriGeometryPolygon.
      properties:
        OBJECTID:
          type: integer
          description: Object ID; the unique, service maintained identifier.
          x-esri-field-type: esriFieldTypeOID
        id:
          type: string
          maxLength: 256
          description: ID
          x-esri-field-type: esriFieldTypeString
        Shape__Area:
          type: number
          x-esri-field-type: esriFieldTypeDouble
        Shape__Length:
          type: number
          x-esri-field-type: esriFieldTypeDouble
        GlobalID:
          type: string
          maxLength: 38
          description: GUID.
          x-esri-field-type: esriFieldTypeGlobalID
        estresto:
          type: string
          maxLength: 50
          description: Est. Restoration Time
          x-esri-field-type: esriFieldTypeString
        faulted:
          type: string
          maxLength: 50
          description: Faulted At
          x-esri-field-type: esriFieldTypeString
        affcusts:
          type: string
          maxLength: 15
          description: Affected Customers
          x-esri-field-type: esriFieldTypeString
        cause:
          type: string
          maxLength: 200
          description: Cause
          x-esri-field-type: esriFieldTypeString
        nbhoods:
          type: string
          maxLength: 1000
          description: Affected Neighborhoods
          x-esri-field-type: esriFieldTypeString
        affstree:
          type: string
          maxLength: 2147483647
          description: Affected Streets
          x-esri-field-type: esriFieldTypeString
      examples:
      - OBJECTID: 12883
        id: INC 218006057
        Shape__Area: null
        Shape__Length: null
        GlobalID: 86f1e356-7e39-4ab8-9fac-fbd22371f2be
        estresto: Jul-27 5:30 PM
        faulted: Jul-25 9:39 PM
        affcusts: '1'
        cause: Under review
        nbhoods: Parkview
        affstree: VALLEYVIEW CRESCENT NW, VALLEYVIEW DRIVE NW, VALLEYVIEW POINT NW, 88 AVENUE NW - 92A AVENUE NW, 137 STREET NW - 143 STREET NW
    EsriError:
      type: object
      description: ArcGIS REST error envelope. Note that these services return HTTP 200 with this body rather than a 4xx status code.
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: Esri error code.
            message:
              type: string
              description: Short error message; may be an empty string.
            details:
              type: array
              items:
                type: string
              description: Human readable detail strings.
          required:
          - code
      required:
      - error
      examples:
      - error:
          code: 400
          message: Cannot perform query. Invalid query parameters.
          details:
          - '''where'' parameter is invalid'
    OcpsProdPlL0FeatureSet:
      type: object
      description: Esri FeatureSet returned by a query against the `ocps_prod_pl` layer.
      properties:
        objectIdFieldName:
          type: string
        globalIdFieldName:
          type: string
        geometryType:
          type: string
        spatialReference:
          $ref: '#/components/schemas/SpatialReference'
        fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldDefinition'
        exceededTransferLimit:
          type: boolean
          description: True when more features match than were returned; page with `resultOffset`.
        features:
          type: array
          items:
            type: object
            properties:
              attributes:
                $ref: '#/components/schemas/OcpsProdPlL0Attributes'
              geometry:
                type: object
                description: Feature geometry, omitted when `returnGeometry=false`.
    ServiceMetadata:
      type: object
      description: ArcGIS feature service metadata document.
      properties:
        currentVersion:
          type: number
        serviceItemId:
          type: string
        capabilities:
          type: string
          description: Comma separated capability list advertised by the service. Only `Query` is exercisable anonymously; editing capabilities require an ArcGIS token.
        maxRecordCount:
          type: integer
        spatialReference:
          $ref: '#/components/schemas/SpatialReference'
        layers:
          type: array
          items:
            type: object
    OcpsProdPlL0Attributes:
      type: object
      description: Attributes of a feature in the `ocps_prod_pl` layer (ocps_prod_pl, layer 0). Geometry type esriGeometryPolygon.
      properties:
        OBJECTID:
          type: integer
          description: Object ID; the unique, service maintained identifier.
          x-esri-field-type: esriFieldTypeOID
        id:
          type: string
          maxLength: 256
          description: ID
          x-esri-field-type: esriFieldTypeString
        Shape__Area:
          type: number
          x-esri-field-type: esriFieldTypeDouble
        Shape__Length:
          type: number
          x-esri-field-type: esriFieldTypeDouble
        GlobalID:
          type: string
          maxLength: 38
          description: GUID.
          x-esri-field-type: esriFieldTypeGlobalID
        startat:
          type: string
          maxLength: 50
          description: Start Time
          x-esri-field-type: esriFieldTypeString
        endat:
          type: string
          maxLength: 50
          description: End Time
          x-esri-field-type: esriFieldTypeString
        affcusts:
          type: string
          maxLength: 15
          description: Affected Customers
          x-esri-field-type: esriFieldTypeString
        cause:
          type: string
          maxLength: 200
          description: Cause
          x-esri-field-type: esriFieldTypeString
        details:
          type: string
          maxLength: 300
          description: Details
          x-esri-field-type: esriFieldTypeString
        nbhoods:
          type: string
          maxLength: 1000
          description: Affected Neighborhoods
          x-esri-field-type: esriFieldTypeString
        lastupd:
          type: string
          maxLength: 25
          description: Lasted Updated Time
          x-esri-field-type: esriFieldTypeString
        affstree:
          type: string
          maxLength: 8000
          description: Affected Streets
          x-esri-field-type: esriFieldTypeString
  parameters:
    outFields:
      name: outFields
      in: query
      required: false
      description: Comma separated list of attribute fields to return, or `*` for all fields.
      schema:
        type: string
      example: '*'
    returnCountOnly:
      name: returnCountOnly
      in: query
      required: false
      description: Return only the count of matching features instead of the features themselves.
      schema:
        type: boolean
        default: false
    orderByFields:
      name: orderByFields
      in: query
      required: false
      description: Comma separated `field ASC|DESC` list used to order the result set.
      schema:
        type: string
    resultOffset:
      name: resultOffset
      in: query
      required: false
      description: Zero based offset into the ordered result set; the cursor half of ArcGIS paging.
      schema:
        type: integer
        minimum: 0
    inSR:
      name: inSR
      in: query
      required: false
      description: Spatial reference (WKID) of the input `geometry`.
      schema:
        type: string
    returnGeometry:
      name: returnGeometry
      in: query
      required: false
      description: Whether the feature geometry is included in the response.
      schema:
        type: boolean
        default: true
    spatialRel:
      name: spatialRel
      in: query
      required: false
      description: Spatial relationship applied between the `geometry` filter and the layer features.
      schema:
        type: string
        default: esriSpatialRelIntersects
    where:
      name: where
      in: query
      required: false
      description: SQL-92 WHERE clause applied to the layer attributes. Use `1=1` to select all features.
      schema:
        type: string
      example: 1=1
    returnIdsOnly:
      name: returnIdsOnly
      in: query
      required: false
      description: Return only the object IDs of matching features.
      schema:
        type: boolean
        default: false
    geometryType:
      name: geometryType
      in: query
      required: false
      description: Type of the `geometry` filter.
      schema:
        type: string
        enum:
        - esriGeometryPoint
        - esriGeometryMultipoint
        - esriGeometryPolyline
        - esriGeometryPolygon
        - esriGeometryEnvelope
    f:
      name: f
      in: query
      required: false
      description: Response format. `json` returns the Esri FeatureSet envelope, `geojson` returns RFC 7946 GeoJSON, `pbf` returns protocol buffers, `html` returns the human service directory.
      schema:
        type: string
        enum:
        - json
        - geojson
        - pbf
        - html
        default: html
    geometry:
      name: geometry
      in: query
      required: false
      description: Geometry used to spatially filter the query, in the format implied by `geometryType`.
      schema:
        type: string
    outSR:
      name: outSR
      in: query
      required: false
      description: Spatial reference (WKID) requested for the returned geometry, for example `4326`.
      schema:
        type: string
    resultRecordCount:
      name: resultRecordCount
      in: query
      required: false
      description: Maximum number of features to return in this page, capped by the service `maxRecordCount` (2000 on these services).
      schema:
        type: integer
        minimum: 1
        maximum: 2000