openapi: 3.2.0 info: title: Consumers Energy Outage Map ArcGIS REST … … Service… version: '11.5' summary: Anonymous, first-party ArcGIS REST services publishing Consumers Energy outage and service-territory geodata. description: 'Consumers Energy (the regulated Michigan electric and natural-gas utility of CMS Energy) operates a public, unauthenticated ArcGIS Server REST Services Directory at `https://www.consumersenergy.com/arcgispublic/rest`.' contact: name: Consumers Energy url: https://www.consumersenergy.com/outagemap license: name: Terms of use not stated on the service servers: - url: https://www.consumersenergy.com/arcgispublic/rest description: Consumers Energy public ArcGIS Server REST Services Directory (anonymous). tags: - name: Service Dashboard description: County- and city-level outage rollups published as map and feature layers. paths: /services/ServiceDashboard/MapServer: get: summary: Describe the ServiceDashboard map service description: 'Prod ServiceDashboard. Capabilities `Query,Map,Data`; supportedExtensions `FeatureServer`; maxRecordCount 1000. Five feature layers (0-4).' operationId: describeServiceDashboardMapService tags: - Service Dashboard parameters: - $ref: '#/components/parameters/Format' responses: '200': description: Map service description. content: application/json: schema: $ref: '#/components/schemas/MapServiceInfo' /services/ServiceDashboard/MapServer/{layerId}: get: summary: Describe a ServiceDashboard layer operationId: describeServiceDashboardLayer tags: - Service Dashboard parameters: - $ref: '#/components/parameters/DashboardLayerId' - $ref: '#/components/parameters/Format' responses: '200': description: Layer description including its field schema. content: application/json: schema: $ref: '#/components/schemas/LayerInfo' '404': $ref: '#/components/responses/ArcGisError' /services/ServiceDashboard/MapServer/{layerId}/query: get: summary: Query a ServiceDashboard layer description: 'Attribute query against the county/city outage rollups. Layer 3 (CE_County_Outages) exposes COUNTY_NAME, COUNTY_ID, CUSTOMER_COUNT, OUTAGE_COUNT, PCT_CUSTOMERS_OUT, CRITICAL_COUNT, PRIORITY_COUNT and LAST_UPDATED.' operationId: queryServiceDashboardLayer tags: - Service Dashboard parameters: - $ref: '#/components/parameters/DashboardLayerId' - $ref: '#/components/parameters/Where' - $ref: '#/components/parameters/OutFields' - $ref: '#/components/parameters/ReturnGeometry' - $ref: '#/components/parameters/ReturnCountOnly' - $ref: '#/components/parameters/ResultRecordCount' - $ref: '#/components/parameters/Format' responses: '200': description: Query result — a feature set, or a count when returnCountOnly is true. content: application/json: schema: $ref: '#/components/schemas/QueryResult' '400': $ref: '#/components/responses/ArcGisError' /services/ServiceDashboard/FeatureServer: get: summary: Describe the ServiceDashboard feature service description: 'The FeatureServer projection of the same five layers. Advertised capabilities are `Query,Create,Update,Delete,Uploads,Editing`; editing operations were NOT probed and are expected to require the token service at /arcgispublic/tokens/.' operationId: describeServiceDashboardFeatureService tags: - Service Dashboard parameters: - $ref: '#/components/parameters/Format' responses: '200': description: Feature service description. content: application/json: schema: $ref: '#/components/schemas/MapServiceInfo' /services/ServiceDashboard/FeatureServer/{layerId}/query: get: summary: Query a ServiceDashboard feature layer operationId: queryServiceDashboardFeatureLayer tags: - Service Dashboard parameters: - $ref: '#/components/parameters/DashboardLayerId' - $ref: '#/components/parameters/Where' - $ref: '#/components/parameters/OutFields' - $ref: '#/components/parameters/ReturnGeometry' - $ref: '#/components/parameters/ReturnCountOnly' - $ref: '#/components/parameters/ResultRecordCount' - $ref: '#/components/parameters/Format' responses: '200': description: Query result. content: application/json: schema: $ref: '#/components/schemas/QueryResult' '400': $ref: '#/components/responses/ArcGisError' components: schemas: LayerSummary: type: object properties: id: type: integer name: type: string geometryType: type: string Field: type: object properties: name: type: string type: type: string examples: - esriFieldTypeOID - esriFieldTypeString - esriFieldTypeInteger - esriFieldTypeSmallInteger - esriFieldTypeDouble - esriFieldTypeDate - esriFieldTypeGeometry alias: type: string length: type: integer LayerInfo: type: object properties: id: type: integer name: type: string type: type: string examples: - Feature Layer geometryType: type: string examples: - esriGeometryPolygon capabilities: type: string maxRecordCount: type: integer fields: type: array items: $ref: '#/components/schemas/Field' ArcGisError: type: object properties: error: type: object properties: code: type: integer message: type: string details: type: array items: type: string MapServiceInfo: type: object properties: currentVersion: type: number cimVersion: type: string serviceDescription: type: string mapName: type: string capabilities: type: string supportedExtensions: type: string supportedQueryFormats: type: string maxRecordCount: type: integer layers: type: array items: $ref: '#/components/schemas/LayerSummary' tables: type: array items: $ref: '#/components/schemas/LayerSummary' QueryResult: type: object description: 'A feature set, or a count object of the form {"count": n} when returnCountOnly=true.' properties: count: type: integer displayFieldName: type: string fieldAliases: type: object additionalProperties: type: string fields: type: array items: $ref: '#/components/schemas/Field' features: type: array items: type: object properties: attributes: type: object additionalProperties: true geometry: type: object additionalProperties: true parameters: Format: name: f in: query description: Response format. `json` and `pjson` were both observed returning 200. required: false schema: type: string enum: - json - pjson - html - geojson - pbf default: html example: json ResultRecordCount: name: resultRecordCount in: query description: Page size. The service caps a single response at maxRecordCount 1000. required: false schema: type: integer minimum: 1 maximum: 1000 ReturnCountOnly: name: returnCountOnly in: query description: Return only the matching feature count. required: false schema: type: boolean default: false OutFields: name: outFields in: query description: Comma-separated field list, or `*` for all fields. required: false schema: type: string example: '*' Where: name: where in: query description: SQL-style attribute filter, e.g. `1=1`. required: false schema: type: string example: 1=1 DashboardLayerId: name: layerId in: path required: true description: 'ServiceDashboard layer id. 0 CustomersInterruptedPercent; 1 NumberOfInterruptions; 2 NumberOfWireDowns; 3 CE_County_Outages; 4 CE_City_Outages. ' schema: type: integer minimum: 0 maximum: 4 example: 3 ReturnGeometry: name: returnGeometry in: query required: false schema: type: boolean default: true responses: ArcGisError: description: ArcGIS error envelope. content: application/json: schema: $ref: '#/components/schemas/ArcGisError' examples: layerNotFound: summary: Observed response for an unknown layer id value: error: code: 404 message: Layer not found details: [] x-generated-from: live ArcGIS REST Services Directory metadata probed 2026-09-06 x-provenance: method: generated generated: '2026-09-06' source: https://www.consumersenergy.com/arcgispublic/rest/services?f=json probes: - url: https://www.consumersenergy.com/arcgispublic/rest/services?f=json status: 200 - url: https://www.consumersenergy.com/arcgispublic/rest/info?f=json status: 200 - url: https://www.consumersenergy.com/arcgispublic/rest/services/CEOutageMap/MapServer?f=json status: 200 - url: https://www.consumersenergy.com/arcgispublic/rest/services/ServiceDashboard/MapServer?f=json status: 200 - url: https://www.consumersenergy.com/arcgispublic/rest/services/ServiceDashboard/FeatureServer?f=json status: 200 - url: https://www.consumersenergy.com/arcgispublic/rest/services/ServiceDashboard/MapServer/3/query?where=1%3D1&returnCountOnly=true&f=json status: 200