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: 3.2.0
info:
title: EPCOR Public Outage and Service Area Feature Services…
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.
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:
parameters:
geometry:
name: geometry
in: query
required: false
description: Geometry used to spatially filter the query, in the format implied by `geometryType`.
schema:
type: string
returnIdsOnly:
name: returnIdsOnly
in: query
required: false
description: Return only the object IDs of matching features.
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
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
geometryType:
name: geometryType
in: query
required: false
description: Type of the `geometry` filter.
schema:
type: string
enum:
- esriGeometryPoint
- esriGeometryMultipoint
- esriGeometryPolyline
- esriGeometryPolygon
- esriGeometryEnvelope
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
outSR:
name: outSR
in: query
required: false
description: Spatial reference (WKID) requested for the returned geometry, for example `4326`.
schema:
type: string
spatialRel:
name: spatialRel
in: query
required: false
description: Spatial relationship applied between the `geometry` filter and the layer features.
schema:
type: string
default: esriSpatialRelIntersects
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
outFields:
name: outFields
in: query
required: false
description: Comma separated list of attribute fields to return, or `*` for all fields.
schema:
type: string
example: '*'
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
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
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
schemas:
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
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
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
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`.
SpatialReference:
type: object
properties:
wkid:
type: integer
latestWkid:
type: integer
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
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`.
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
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`.
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
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'