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/southern-california-edison-query-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: SCE DRPEP ArcGIS REST Services Query API
version: '11.1'
summary: Anonymous, key-free Esri ArcGIS REST interface behind Southern California Edison's Distribution Resources Plan External Portal (DRPEP).
description: 'Machine-readable description of the anonymous grid-data API that Southern California Edison serves at `drpep.sce.com`. SCE publishes **no** OpenAPI, no developer portal, and no written API reference for this surface; this document was generated by API Evangelist from live, unauthenticated probes of the service itself (ArcGIS Enterprise 11.1 REST, `f=json`) on 2026-07-27 and from the service, layer, and field descriptors saved verbatim under `arcgis/` in this repository. Every path, parameter, and example below was observed answering anonymously with HTTP 200 - nothing here is aspirational.
The catalog exposes 15 hosted FeatureServers covering 47 feature layers and 11 tables: Integration Capacity Analysis (ICA) circuit segments and their generation/load constraint layers, distribution circuits, substations, the Distribution Deferral Opportunity Report (DDOR), the Grid Needs Assessment (GNA), Locational Net Benefit Analysis (LNBA), Public Safety Power Shutoff (PSPS) boundaries, CPUC fire-threat tiers, transmission projects, available-load and subtransmission heat maps, and load-growth penetration. The ICA circuit-segment layer alone answers 676,467 features.
Read-only: every hosted service advertises `capabilities: Query` (DRP_Transmission_Projects also allows `Extract`). There is no write surface, no API key, and no rate-limit header. The sibling `Utilities` folder on the same server is NOT open - it returns `{"error":{"code":499,"message":"Token Required"}}`.
This spec does not cover SCE Green Button Connect My Data. That interface is real and mandated by CPUC tariff Rule 26, but SCE discloses no base URI, endpoint, or scope publicly; see `authentication/` and the repository review for what is actually known.'
termsOfService: https://www.sce.com/terms-conditions
contact:
name: API Evangelist (generator of this description, not the API operator)
url: https://apievangelist.com
x-generated-by: api-evangelist enrichment pipeline
x-generated-on: '2026-07-27'
x-provenance: api-evangelist-generated from live anonymous probes; NOT published by Southern California Edison
x-source-probes:
- https://drpep.sce.com/arcgis_server/rest/info?f=json
- https://drpep.sce.com/arcgis_server/rest/services?f=json
- https://drpep.sce.com/arcgis_server/rest/services/Hosted?f=json
- https://drpep.sce.com/arcgis_server/rest/services/Hosted/ICA_Layer/FeatureServer?f=json
- https://drpep.sce.com/arcgis_server/rest/services/Hosted/ICA_Layer/FeatureServer/0?f=json
- https://drpep.sce.com/arcgis_server/rest/services/Hosted/ICA_Layer/FeatureServer/0/query?where=1%3D1&returnCountOnly=true&f=json
servers:
- url: https://drpep.sce.com
description: SCE Distribution Resources Plan External Portal (production, anonymous)
tags:
- name: Query
description: Attribute and spatial queries against a feature layer or table.
paths:
/arcgis_server/rest/services/Hosted/{serviceName}/FeatureServer/{layerId}/query:
get:
operationId: queryFeatureLayer
tags:
- Query
summary: Query features from a layer or table
description: 'The workhorse operation. Runs a SQL-92 attribute filter and/or a spatial filter against one layer and returns matching features as Esri JSON (`f=json`) or GeoJSON (`f=geojson`, verified working). Paging is offset-based via `resultOffset` + `resultRecordCount`; when a response is truncated the body carries `exceededTransferLimit: true` and the caller must page. Errors are returned with HTTP 200 and an `error` envelope, not an HTTP error status.'
parameters:
- name: serviceName
in: path
required: true
description: Name of a hosted feature service, as returned by `listHostedServices`.
schema:
type: string
enum:
- AVL_LOAD_CAP_TOGGLE
- AVL_LOAD_HEAT_MAP_TOGGLE
- DDOR_Layer
- DRP_PSPS_Layer
- DRP_ScreenL_08202021
- DRP_Transmission_Projects
- Distribution_circuits
- Firemap
- GNA_Layer
- ICA_Layer
- ICA_Tables
- LNBA_Layer
- LOAD_GROWTH_PEN_HTMAP
- MGEP_AVL_LOAD_HEAT_MAP
- SUBTRANS_HEATMAP
example: ICA_Layer
- name: layerId
in: path
required: true
description: Zero-based id of a layer or table inside the feature service, as returned by `getFeatureService`. See `x-drpep-inventory` in this document for the full 58-entry layer/table map.
schema:
type: integer
minimum: 0
example: 0
- name: where
in: query
required: false
description: SQL-92 WHERE clause applied to the layer attributes. Use `1=1` to select everything. A malformed clause returns HTTP 200 with an ArcGIS error envelope (code 500, 'Syntax error').
schema:
type: string
default: 1=1
example: circuit_name = 'Acapulco'
- name: objectIds
in: query
required: false
description: Comma-separated list of ObjectIDs to fetch instead of a where clause.
schema:
type: string
- name: geometry
in: query
required: false
description: Geometry used to spatially filter the layer, in the format implied by geometryType (e.g. an envelope `xmin,ymin,xmax,ymax`).
schema:
type: string
- name: geometryType
in: query
required: false
description: Type of the geometry filter.
schema:
type: string
enum:
- esriGeometryPoint
- esriGeometryMultipoint
- esriGeometryPolyline
- esriGeometryPolygon
- esriGeometryEnvelope
- name: spatialRel
in: query
required: false
description: Spatial relationship applied between the input geometry and the layer geometry.
schema:
type: string
enum:
- esriSpatialRelIntersects
- esriSpatialRelContains
- esriSpatialRelCrosses
- esriSpatialRelWithin
- esriSpatialRelTouches
- esriSpatialRelOverlaps
- esriSpatialRelEnvelopeIntersects
default: esriSpatialRelIntersects
- name: inSR
in: query
required: false
description: Spatial reference of the input geometry (WKID).
schema:
type: string
example: '4326'
- name: outSR
in: query
required: false
description: Spatial reference the returned geometry is projected into (WKID).
schema:
type: string
example: '4326'
- name: outFields
in: query
required: false
description: Comma-separated attribute list to return, or `*` for all. Field names come from the layer descriptor.
schema:
type: string
default: '*'
example: circuit_name,ica_overall_pv
- name: returnGeometry
in: query
required: false
description: Whether to include geometry with each feature. Set false for attribute-only pulls.
schema:
type: boolean
default: true
- name: returnCountOnly
in: query
required: false
description: 'Return only the matching feature count. Verified: `where=1=1&returnCountOnly=true` on ICA - Circuit Segments returned 676,467.'
schema:
type: boolean
default: false
- name: returnIdsOnly
in: query
required: false
description: Return only the matching ObjectIDs - the standard way to page a layer larger than maxRecordCount.
schema:
type: boolean
default: false
- name: orderByFields
in: query
required: false
description: Comma-separated ORDER BY expression. Supported (supportsOrderBy is true on these layers).
schema:
type: string
- name: groupByFieldsForStatistics
in: query
required: false
description: Fields to group by when computing outStatistics.
schema:
type: string
- name: outStatistics
in: query
required: false
description: JSON array of statistic definitions (count/sum/min/max/avg/stddev). Supported (supportsStatistics is true).
schema:
type: string
- name: resultOffset
in: query
required: false
description: Zero-based offset for pagination. Supported (supportsPagination is true).
schema:
type: integer
minimum: 0
- name: resultRecordCount
in: query
required: false
description: Maximum number of features to return in this page; capped by the layer maxRecordCount (2,000 or 5,000 on these services).
schema:
type: integer
minimum: 1
- name: returnDistinctValues
in: query
required: false
description: Return distinct values for the requested outFields (supportsDistinct is true).
schema:
type: boolean
default: false
- name: resultType
in: query
required: false
description: Query result hint.
schema:
type: string
enum:
- none
- standard
- tile
- name: f
in: query
required: false
description: Response format. `json` (Esri JSON), `pjson` (pretty JSON), `geojson` (GeoJSON - verified supported on hosted feature layers), or `html` (the default ArcGIS REST Services Directory page). Always send `f=json` for machine use; without it the service returns HTML.
schema:
type: string
enum:
- json
- pjson
- geojson
- html
default: html
example: json
responses:
'200':
description: A feature set, a count, an id list, or an ArcGIS error envelope - all with HTTP 200.
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/FeatureSet'
- $ref: '#/components/schemas/CountResult'
- $ref: '#/components/schemas/ErrorEnvelope'
examples:
count:
summary: returnCountOnly on ICA - Circuit Segments (verified 2026-07-27)
value:
count: 676467
featureSet:
summary: One ICA circuit segment, attributes only (verified 2026-07-27)
value:
features:
- attributes:
circuit_name: Acapulco
ica_overall_pv: 0
exceededTransferLimit: true
objectIdFieldName: objectid
fields:
- name: circuit_name
alias: Circuit Name
type: esriFieldTypeString
length: 50
- name: ica_overall_pv
alias: Photovoltaic Static Grid
type: esriFieldTypeDouble
error:
summary: Malformed where clause (verified 2026-07-27)
value:
error:
code: 500
message: Syntax error [].
details: []
application/geo+json:
schema:
type: object
description: GeoJSON FeatureCollection, returned when f=geojson.
components:
schemas:
ErrorEnvelope:
type: object
description: ArcGIS error envelope. Returned with HTTP 200; the transport status is not the error signal.
properties:
error:
type: object
properties:
code:
type: integer
examples:
- 400
- 404
- 498
- 499
- 500
message:
type: string
messageCode:
type: string
details:
type: array
items:
type: string
Field:
type: object
properties:
name:
type: string
alias:
type: string
type:
type: string
description: Esri field type, e.g. esriFieldTypeString.
length:
type: integer
FeatureSet:
type: object
description: Esri JSON feature set returned by a query.
properties:
objectIdFieldName:
type: string
globalIdFieldName:
type: string
geometryType:
type: string
spatialReference:
type: object
fields:
type: array
items:
$ref: '#/components/schemas/Field'
exceededTransferLimit:
type: boolean
description: True when the result was truncated at maxRecordCount - page with resultOffset.
features:
type: array
items:
type: object
properties:
attributes:
type: object
geometry:
type: object
CountResult:
type: object
properties:
count:
type: integer
externalDocs:
description: DRPEP portal (Esri Experience Builder app over these services)
url: https://drpep.sce.com/drpep/
x-drpep-inventory:
- service: AVL_LOAD_CAP_TOGGLE
id: 0
name: AVL_LOAD_CAP_FULL_SUBMITTAL
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 128
- service: AVL_LOAD_CAP_TOGGLE
id: 1
name: AVL_LOAD_CAP_FULL_AND_PARTIAL_SUBMITTAL
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 128
- service: AVL_LOAD_HEAT_MAP_TOGGLE
id: 0
name: GRID_RANK_AGGR_FULL
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 6
- service: AVL_LOAD_HEAT_MAP_TOGGLE
id: 1
name: GRID_RANK_AGGR_FULL_PARTIAL
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 6
- service: DDOR_Layer
id: 0
name: DDOR Substations
kind: layer
geometryType: esriGeometryPoint
fieldCount: 33
- service: DDOR_Layer
id: 1
name: DDOR Subtransmission
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 33
- service: DDOR_Layer
id: 2
name: DDOR - Circuits
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 36
- service: DDOR_Layer
id: 3
name: DDOR FGDB DATE TIME
kind: table
geometryType: null
fieldCount: 3
- service: DRP_PSPS_Layer
id: 0
name: PSPS_Subtransmission
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 14
- service: DRP_PSPS_Layer
id: 1
name: PSPS_Circuit
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 16
- service: DRP_ScreenL_08202021
id: 0
name: Sheet1
kind: table
geometryType: null
fieldCount: 3
- service: DRP_Transmission_Projects
id: 0
name: CAISO_APPROVED_POLYGON
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 16
- service: DRP_Transmission_Projects
id: 1
name: UTILITY_APPROVED_POLYGON
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 16
- service: DRP_Transmission_Projects
id: 2
name: CPUC_APPROVED_POLYGON
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 16
- service: Distribution_circuits
id: 0
name: Distribution Circuits
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 11
- service: Firemap
id: 0
name: Tree_Mortality___Tier_1
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 10
- service: Firemap
id: 1
name: CPUC_Fire_Threat_Areas____Tier_2___Elevated
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 10
- service: Firemap
id: 2
name: CPUC_Fire_Threat_Areas____Tier_3___Extreme
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 10
- service: GNA_Layer
id: 0
name: GNA Substations
kind: layer
geometryType: esriGeometryPoint
fieldCount: 31
- service: GNA_Layer
id: 1
name: GNA Subtransmission
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 25
- service: GNA_Layer
id: 2
name: GNA - Circuits
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 39
- service: GNA_Layer
id: 3
name: Circuit Level Planning Assumptions
kind: table
geometryType: null
fieldCount: 23
- service: GNA_Layer
id: 4
name: GNA FGDB DATE TIME
kind: table
geometryType: null
fieldCount: 3
- service: GNA_Layer
id: 5
name: Substation Level Planning Assumptions
kind: table
geometryType: null
fieldCount: 20
- service: ICA_Layer
id: 0
name: ICA - Circuit Segments
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 29
- service: ICA_Layer
id: 1
name: ICA - Circuit Segments, Non-3 Phase
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 16
- service: ICA_Layer
id: 2
name: ICA - Generation Op Flex
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 3
name: ICA - Generation Protection
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 4
name: ICA - Generation Steady State Voltage
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 5
name: ICA - Generation Thermal
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 6
name: ICA - Generation Voltage Variation
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 7
name: ICA - Load Steady State Voltage
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 8
name: ICA - Load Thermal
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 9
name: ICA - Load Voltage Variation
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 10
name: ICA - Solar Op Flex
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 11
name: ICA - Solar PV Static Grid
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 12
name: ICA - Unavailable Circuit Segments
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 8
- service: ICA_Layer
id: 13
name: ICA - Uniform Generation Op Flex
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 14
name: ICA - Uniform Generation Static Grid
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 15
name: ICA - Uniform Load Static Grid
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 17
- service: ICA_Layer
id: 16
name: Substations
kind: layer
geometryType: esriGeometryPoint
fieldCount: 14
- service: ICA_Layer
id: 17
name: RAM - Circuits
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 16
- service: ICA_Layer
id: 18
name: Transmission Circuits
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 6
- service: ICA_Layer
id: 19
name: SCE Service Territory
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 9
- service: ICA_Tables
id: 0
name: DRPEP_FGDB_DATE_TIME
kind: table
geometryType: null
fieldCount: 3
- service: ICA_Tables
id: 1
name: Historical Circuit Load Profile
kind: table
geometryType: null
fieldCount: 12
- service: ICA_Tables
id: 2
name: Historical Substation Load Profile
kind: table
geometryType: null
fieldCount: 9
- service: ICA_Tables
id: 3
name: ICA Single Consolidated Table
kind: table
geometryType: null
fieldCount: 26
- service: ICA_Tables
id: 4
name: Forecasted Circuit Load Profile
kind: table
geometryType: null
fieldCount: 12
- service: LNBA_Layer
id: 0
name: DER Growth Scenario, Planning
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 10
- service: LNBA_Layer
id: 1
name: LNBA Short-term, Planning
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 23
- service: LNBA_Layer
id: 2
name: LNBA Mid-term, Planning
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 23
- service: LNBA_Layer
id: 3
name: LNBA Long-term, Planning
kind: layer
geometryType: esriGeometryPolyline
fieldCount: 23
- service: LNBA_Layer
id: 4
name: LNBA_FGDB_DATE_TIME
kind: table
geometryType: null
fieldCount: 3
- service: LOAD_GROWTH_PEN_HTMAP
id: 0
name: GRID_RANK_AGGR
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 5
- service: MGEP_AVL_LOAD_HEAT_MAP
id: 0
name: GRID_RANK_AGGR_FULL
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 6
- service: MGEP_AVL_LOAD_HEAT_MAP
id: 1
name: GRID_RANK_AGGR_FULL_PARTIAL
kind: layer
geometryType: esriGeometryPolygon
fieldCount: 6
- service: SUBTRANS_HEATMAP
id: 0
name: Subtrans_heatmap
kind: layer
geometryType: esriGeometryPoint
fieldCount: 19