openapi: 3.2.0 info: title: SCE DRPEP ArcGIS REST Services Feature Services 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: Feature Services description: The 15 hosted FeatureServers and their layer/table descriptors. paths: /arcgis_server/rest/services/Hosted/{serviceName}/FeatureServer: get: operationId: getFeatureService tags: - Feature Services summary: Get a feature service descriptor description: 'Returns the service-level descriptor: its layers and tables, `maxRecordCount` (2,000 or 5,000 depending on the service), supported query capabilities, and spatial reference. Every DRPEP hosted service advertises `capabilities: Query`; `DRP_Transmission_Projects` additionally advertises `Extract`.' 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: 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: Feature service descriptor, or an ArcGIS error envelope for an unknown service. content: application/json: schema: $ref: '#/components/schemas/FeatureService' /arcgis_server/rest/services/Hosted/{serviceName}/FeatureServer/{layerId}: get: operationId: getFeatureLayer tags: - Feature Services summary: Get a feature layer or table descriptor description: Returns the layer descriptor including the full field list (name, Esri type, alias), geometry type, drawing info, `maxRecordCount`, and `advancedQueryCapabilities` (pagination, statistics, order-by, distinct are all supported on these layers). The field list is the only field-level documentation SCE provides for DRPEP data. 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: 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: Layer/table descriptor, or an ArcGIS error envelope. content: application/json: schema: $ref: '#/components/schemas/FeatureLayer' components: schemas: FeatureService: type: object description: Feature service descriptor. properties: currentVersion: type: number serviceDescription: type: string maxRecordCount: type: integer capabilities: type: string examples: - Query - Query,Extract layers: type: array items: $ref: '#/components/schemas/LayerSummary' tables: type: array items: $ref: '#/components/schemas/LayerSummary' LayerSummary: type: object properties: id: type: integer name: type: string type: type: string enum: - Feature Layer - Table geometryType: type: string FeatureLayer: type: object description: Feature layer or table descriptor, including the field list. properties: id: type: integer name: type: string type: type: string geometryType: type: string maxRecordCount: type: integer objectIdField: type: string fields: type: array items: $ref: '#/components/schemas/Field' advancedQueryCapabilities: type: object Field: type: object properties: name: type: string alias: type: string type: type: string description: Esri field type, e.g. esriFieldTypeString. length: 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