Southern California Edison Query API

Attribute and spatial queries against a feature layer or table.

Operations 1

GET /arcgis_server/rest/services/Hosted/{serviceName}/FeatureServer/{layerId}/query Query features from a layer or table #

Documentation

Specifications

Schemas & Data

Other Resources

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/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 Specification

southern-california-edison-query-api-openapi.yml Raw ↑
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`.
  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:
    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
    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
    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