EPCOR Infrastructure API

Water infrastructure construction projects.

Operations 5

GET /Water_InfrastructureProjects_Prod/FeatureServer Get Water_InfrastructureProjects_Prod service metadata #
GET /Water_InfrastructureProjects_Prod/FeatureServer/0 Get Water_InfrastructureProjects_Prod layer 0 metadata #
GET /Water_InfrastructureProjects_Prod/FeatureServer/0/query Query WaterInfrastructureProjects_pt #
GET /Water_InfrastructureProjects_Prod/FeatureServer/1 Get Water_InfrastructureProjects_Prod layer 1 metadata #
GET /Water_InfrastructureProjects_Prod/FeatureServer/1/query Query WaterInfrastructureProjects_area #

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-infrastructure-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-infrastructure-api-openapi.yml Raw ↑
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: Infrastructure
  description: Water infrastructure construction projects.
paths:
  /Water_InfrastructureProjects_Prod/FeatureServer:
    get:
      operationId: getWaterInfrastructureProjectsProdService
      summary: Get Water_InfrastructureProjects_Prod service metadata
      description: 'Water infrastructure construction projects (points and areas). Returns the ArcGIS feature service metadata document: layers, capabilities (Query), maxRecordCount (2000) and spatial reference.'
      tags:
      - Infrastructure
      parameters:
      - $ref: '#/components/parameters/f'
      responses:
        '200':
          description: Feature service metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceMetadata'
  /Water_InfrastructureProjects_Prod/FeatureServer/0:
    get:
      operationId: getWaterInfrastructureProjectsProdL0Layer
      summary: Get Water_InfrastructureProjects_Prod layer 0 metadata
      description: Field definitions, geometry type (esriGeometryPoint), extent and edit timestamps for the `WaterInfrastructureProjects_pt` layer.
      tags:
      - Infrastructure
      parameters:
      - $ref: '#/components/parameters/f'
      responses:
        '200':
          description: Feature layer metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LayerMetadata'
  /Water_InfrastructureProjects_Prod/FeatureServer/0/query:
    get:
      operationId: queryWaterInfrastructureProjectsProdL0
      summary: Query WaterInfrastructureProjects_pt
      description: 'Water infrastructure construction projects (points and areas). Query the `WaterInfrastructureProjects_pt` layer with a SQL `where` clause and optional spatial filter. Anonymous read, no API key. Observed feature count at harvest time: 8.'
      tags:
      - Infrastructure
      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/WaterInfrastructureProjectsProdL0FeatureSet'
                - $ref: '#/components/schemas/GeoJSONFeatureCollection'
                - $ref: '#/components/schemas/EsriError'
  /Water_InfrastructureProjects_Prod/FeatureServer/1:
    get:
      operationId: getWaterInfrastructureProjectsProdL1Layer
      summary: Get Water_InfrastructureProjects_Prod layer 1 metadata
      description: Field definitions, geometry type (esriGeometryPolygon), extent and edit timestamps for the `WaterInfrastructureProjects_area` layer.
      tags:
      - Infrastructure
      parameters:
      - $ref: '#/components/parameters/f'
      responses:
        '200':
          description: Feature layer metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LayerMetadata'
  /Water_InfrastructureProjects_Prod/FeatureServer/1/query:
    get:
      operationId: queryWaterInfrastructureProjectsProdL1
      summary: Query WaterInfrastructureProjects_area
      description: 'Water infrastructure construction projects (points and areas). Query the `WaterInfrastructureProjects_area` layer with a SQL `where` clause and optional spatial filter. Anonymous read, no API key. Observed feature count at harvest time: 8.'
      tags:
      - Infrastructure
      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/WaterInfrastructureProjectsProdL1FeatureSet'
                - $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:
    WaterInfrastructureProjectsProdL0FeatureSet:
      type: object
      description: Esri FeatureSet returned by a query against the `WaterInfrastructureProjects_pt` 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/WaterInfrastructureProjectsProdL0Attributes'
              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
    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
    WaterInfrastructureProjectsProdL1Attributes:
      type: object
      description: Attributes of a feature in the `WaterInfrastructureProjects_area` layer (Water_InfrastructureProjects_Prod, layer 1). Geometry type esriGeometryPolygon.
      properties:
        OBJECTID:
          type: integer
          description: Object ID; the unique, service maintained identifier.
          x-esri-field-type: esriFieldTypeOID
        PR_NUMBER:
          type: string
          maxLength: 20
          description: Project Number
          x-esri-field-type: esriFieldTypeString
        PR_STATUS:
          type: string
          maxLength: 40
          description: Project Status
          x-esri-field-type: esriFieldTypeString
        PR_TYPE:
          type: string
          maxLength: 256
          description: Project Type
          x-esri-field-type: esriFieldTypeString
        PR_YEAR:
          type: integer
          description: Project Year
          x-esri-field-type: esriFieldTypeInteger
        LIFE_CYCLE:
          type: string
          maxLength: 40
          description: Life Cycle
          x-esri-field-type: esriFieldTypeString
        PR_NAME:
          type: string
          maxLength: 256
          description: Project Name
          x-esri-field-type: esriFieldTypeString
        START_DATE:
          type: integer
          maxLength: 8
          description: Start Date Epoch milliseconds (Esri date field).
          x-esri-field-type: esriFieldTypeDate
        END_DATE:
          type: integer
          maxLength: 8
          description: End Date Epoch milliseconds (Esri date field).
          x-esri-field-type: esriFieldTypeDate
        OVERVIEW:
          type: string
          maxLength: 256
          description: Overview
          x-esri-field-type: esriFieldTypeString
        REDIRECT:
          type: string
          maxLength: 256
          description: Redirect URL
          x-esri-field-type: esriFieldTypeString
        Shape__Area:
          type: number
          x-esri-field-type: esriFieldTypeDouble
        Shape__Length:
          type: number
          x-esri-field-type: esriFieldTypeDouble
    WaterInfrastructureProjectsProdL1FeatureSet:
      type: object
      description: Esri FeatureSet returned by a query against the `WaterInfrastructureProjects_area` 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/WaterInfrastructureProjectsProdL1Attributes'
              geometry:
                type: object
                description: Feature geometry, omitted when `returnGeometry=false`.
    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
    SpatialReference:
      type: object
      properties:
        wkid:
          type: integer
        latestWkid:
          type: integer
    WaterInfrastructureProjectsProdL0Attributes:
      type: object
      description: Attributes of a feature in the `WaterInfrastructureProjects_pt` layer (Water_InfrastructureProjects_Prod, layer 0). Geometry type esriGeometryPoint.
      properties:
        OBJECTID:
          type: integer
          description: Object ID; the unique, service maintained identifier.
          x-esri-field-type: esriFieldTypeOID
        PR_NUMBER:
          type: string
          maxLength: 20
          description: Project Number
          x-esri-field-type: esriFieldTypeString
        PR_STATUS:
          type: string
          maxLength: 40
          description: Project Status
          x-esri-field-type: esriFieldTypeString
        PR_TYPE:
          type: string
          maxLength: 256
          description: Project Type
          x-esri-field-type: esriFieldTypeString
        PR_YEAR:
          type: integer
          description: Project Year
          x-esri-field-type: esriFieldTypeInteger
        LIFE_CYCLE:
          type: string
          maxLength: 40
          description: Life Cycle
          x-esri-field-type: esriFieldTypeString
        PR_NAME:
          type: string
          maxLength: 256
          description: Project Name
          x-esri-field-type: esriFieldTypeString
        START_DATE:
          type: integer
          maxLength: 8
          description: Start Date Epoch milliseconds (Esri date field).
          x-esri-field-type: esriFieldTypeDate
        END_DATE:
          type: integer
          maxLength: 8
          description: End Date Epoch milliseconds (Esri date field).
          x-esri-field-type: esriFieldTypeDate
        OVERVIEW:
          type: string
          maxLength: 256
          description: Overview
          x-esri-field-type: esriFieldTypeString
        REDIRECT:
          type: string
          maxLength: 256
          description: Redirect URL
          x-esri-field-type: esriFieldTypeString
    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'