Thermal Power Power Operations API

Electric power operational statistics by fuel type.

OpenAPI Specification

thermal-power-power-operations-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Thermal Power Capacity Power Operations API
  description: The Thermal Power API provides access to thermal power generation data, plant-level operational metrics, fuel consumption, heat rate performance, and capacity utilization for coal, natural gas, oil, and nuclear generation assets. Designed for grid operators, energy analysts, utilities, and industrial energy consumers who need programmatic access to thermal generation data.
  version: 1.0.0
  contact:
    name: Thermal Power Data Services
    url: https://www.eia.gov/developer/
  license:
    name: Public Domain
    url: https://www.eia.gov/about/copyrights_reuse.php
servers:
- url: https://api.eia.gov/v2
  description: EIA Open Data API v2
security:
- apiKey: []
tags:
- name: Power Operations
  description: Electric power operational statistics by fuel type.
paths:
  /electricity/electric-power-operational-data/data:
    get:
      operationId: getElectricPowerOperationalData
      summary: Get Electric Power Operational Data
      description: Retrieves electric power operational data including generation, fuel consumption, and heat content by fuel type, sector, and state. Supports filtering by fuel type (coal, natural gas, petroleum, nuclear) for thermal generation analysis.
      tags:
      - Power Operations
      parameters:
      - name: api_key
        in: query
        required: true
        schema:
          type: string
        description: EIA API key.
      - name: frequency
        in: query
        required: false
        schema:
          type: string
          enum:
          - monthly
          - quarterly
          - annual
          default: monthly
        description: Data frequency.
      - name: data[]
        in: query
        required: false
        schema:
          type: string
        description: Data columns to return (e.g., generation, total-consumption, consumption-for-eg, heat-content).
      - name: facets[fueltypeid][]
        in: query
        required: false
        schema:
          type: string
        description: Filter by fuel type ID (e.g., COL for coal, NG for natural gas, PEL for petroleum, NUC for nuclear, ALL for all sources).
      - name: facets[location][]
        in: query
        required: false
        schema:
          type: string
        description: Filter by US state abbreviation (e.g., TX, CA, NY).
      - name: start
        in: query
        required: false
        schema:
          type: string
        description: Start period in YYYY-MM format.
      - name: end
        in: query
        required: false
        schema:
          type: string
        description: End period in YYYY-MM format.
      - name: sort[0][column]
        in: query
        required: false
        schema:
          type: string
        description: Column to sort by.
      - name: sort[0][direction]
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
        description: Sort direction.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          default: 0
        description: Pagination offset.
      - name: length
        in: query
        required: false
        schema:
          type: integer
          default: 5000
        description: Number of records to return (max 5000).
      responses:
        '200':
          description: Electric power operational data records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ElectricPowerOperationalDataResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /electricity/rto/fuel-type-data/data:
    get:
      operationId: getRTOFuelTypeData
      summary: Get RTO Fuel Type Data
      description: Retrieves hourly net generation by fuel type for Regional Transmission Organizations (RTOs) and Independent System Operators (ISOs). Includes thermal generation from coal, natural gas, petroleum, and nuclear sources.
      tags:
      - Power Operations
      parameters:
      - name: api_key
        in: query
        required: true
        schema:
          type: string
        description: EIA API key.
      - name: frequency
        in: query
        required: false
        schema:
          type: string
          enum:
          - hourly
          - local-hourly
          default: hourly
        description: Data frequency.
      - name: data[]
        in: query
        required: false
        schema:
          type: string
        description: Data columns (e.g., value for generation in MWh).
      - name: facets[respondent][]
        in: query
        required: false
        schema:
          type: string
        description: RTO/ISO identifier (e.g., MISO, PJM, CAISO, ERCOT, SPP, NYISO, ISONE).
      - name: facets[fueltype][]
        in: query
        required: false
        schema:
          type: string
        description: Fuel type filter (e.g., NG, COL, OIL, NUC, OTH).
      - name: start
        in: query
        required: false
        schema:
          type: string
        description: Start datetime in YYYY-MM-DDTHH format.
      - name: end
        in: query
        required: false
        schema:
          type: string
        description: End datetime in YYYY-MM-DDTHH format.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          default: 0
        description: Pagination offset.
      - name: length
        in: query
        required: false
        schema:
          type: integer
          default: 5000
        description: Number of records to return (max 5000).
      responses:
        '200':
          description: Hourly RTO fuel type generation data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RTOFuelTypeDataResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ElectricPowerOperationalDataResponse:
      type: object
      properties:
        response:
          type: object
          properties:
            total:
              type: integer
              description: Total number of matching records.
            dateFormat:
              type: string
              description: Date format used in the response.
            frequency:
              type: string
              description: Data frequency.
            data:
              type: array
              items:
                $ref: '#/components/schemas/ElectricPowerRecord'
            description:
              type: string
            series-description:
              type: object
    RTOFuelTypeDataResponse:
      type: object
      properties:
        response:
          type: object
          properties:
            total:
              type: integer
            data:
              type: array
              items:
                $ref: '#/components/schemas/RTOFuelTypeRecord'
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error message.
    ElectricPowerRecord:
      type: object
      properties:
        period:
          type: string
          description: Time period (e.g., 2026-03).
        location:
          type: string
          description: US state abbreviation.
        stateDescription:
          type: string
          description: State full name.
        sectorid:
          type: string
          description: Sector identifier.
        sectorDescription:
          type: string
          description: Sector description.
        fueltypeid:
          type: string
          description: Fuel type identifier (COL, NG, PEL, NUC, ALL).
        fuelTypeDescription:
          type: string
          description: Fuel type description.
        generation:
          type: number
          description: Net generation in thousand megawatthours.
        total-consumption:
          type: number
          description: Total fuel consumption in physical units.
        consumption-for-eg:
          type: number
          description: Fuel consumption for electricity generation.
        heat-content:
          type: number
          description: Heat content of fuel consumed (trillion BTU).
    RTOFuelTypeRecord:
      type: object
      properties:
        period:
          type: string
          description: Datetime in YYYY-MM-DDTHH format (UTC).
        respondent:
          type: string
          description: RTO/ISO identifier.
        respondent-name:
          type: string
          description: RTO/ISO full name.
        fueltype:
          type: string
          description: Fuel type code.
        type-name:
          type: string
          description: Fuel type description.
        value:
          type: number
          description: Net generation in MWh.
  securitySchemes:
    apiKey:
      type: apiKey
      name: api_key
      in: query
      description: EIA API key. Register for free at https://www.eia.gov/opendata/register.php