EIA

EIA Open Data API (APIv2)

EIA's public, fully RESTful open data API covering more than two million energy time series. Datasets are arranged in a discoverable tree - request a parent route such as /v2/electricity and the API returns its child routes, available frequencies, facets, and data columns as metadata; append /data to retrieve values, with facets, column selection, date range, sort, offset, and length all expressed as query parameters. Route families cover electricity (including hourly RTO and balancing-authority operating data), natural gas, petroleum, coal, nuclear outages, densified biomass, CO2 emissions, international energy, the State Energy Data System, state electricity profiles, and the Short-Term, Annual, and International Energy Outlook projections. Responses are JSON by default or XML with out=xml, capped at 5,000 rows per request with an explicit pagination warning returned in the payload. The legacy APIv1 series interface is deprecated but its identifiers remain reachable through the /v2/seriesid/{id} route. Verified live 2026-07-27 - an unauthenticated GET returns HTTP 403 with API_KEY_MISSING and a bogus key returns HTTP 403 with API_KEY_INVALID. Published API version at the time of review is 2.1.12 (March 2026).

OpenAPI Specification

eia-api-v2-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: 'EIA APIv2'
  description: 'Swagger UI interface for EIA''s APIv2.  You can also explore EIA''s API using the [Opendata Query Browser](https://www.eia.gov/opendata/browser/).  For this UI, you must use your EIA `api key` to apply filters and return data. You can register for an API Key at [https://www.eia.gov/opendata/](https://www.eia.gov/opendata/)'
  version: 2.1.0
servers:
  -
    url: 'https://api.eia.gov'
paths:
  '/v2/aeo/{route1}':
    get:
      tags:
        - AEO
      parameters:
        -
          name: route1
          in: path
          description: 'Available AEO year data route'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
    parameters:
      -
        $ref: '#/components/parameters/route1'
  '/v2/aeo/{route1}/facet':
    get:
      tags:
        - AEO
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
    parameters:
      -
        $ref: '#/components/parameters/route1'
  '/v2/aeo/{route1}/facet/{facet_id}':
    get:
      tags:
        - AEO
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/route1'
      -
        $ref: '#/components/parameters/facetId'
  '/v2/aeo/{route1}/data':
    get:
      tags:
        - AEO
      description: 'API data with query params'
      parameters:
        -
          $ref: '#/components/parameters/data'
        -
          $ref: '#/components/parameters/facets'
        -
          $ref: '#/components/parameters/frequency'
        -
          $ref: '#/components/parameters/start'
        -
          $ref: '#/components/parameters/end'
        -
          $ref: '#/components/parameters/sort'
        -
          $ref: '#/components/parameters/length'
        -
          $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
        - AEO
      summary: 'Return AEO Data'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    parameters:
      -
        $ref: '#/components/parameters/route1'
  '/v2/ieo/{route1}':
    get:
      tags:
        - IEO
      operationId: 'EIA\API\Controllers\Dataset\AeoIeo\IeoController::__construct'
      parameters:
        -
          name: route1
          in: path
          description: 'Available AEO year data route'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
    parameters:
      -
        $ref: '#/components/parameters/route1'
  '/v2/ieo/{route1}/facet':
    get:
      tags:
        - IEO
      operationId: 'EIA\API\Controllers\Dataset\AeoIeo\IeoController::route_facet'
      parameters:
        -
          name: route1
          in: path
          description: 'Available AEO year data route'
          required: true
          schema:
            type: string
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
    parameters:
      -
        $ref: '#/components/parameters/route1'
  '/v2/ieo/{route1}/facet/{facet_id}':
    get:
      tags:
        - IEO
      operationId: 'EIA\API\Controllers\Dataset\AeoIeo\IeoController::route_facetId'
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/route1'
      -
        $ref: '#/components/parameters/facetId'
  '/v2/ieo/{route1}/data':
    get:
      tags:
        - IEO
      description: 'API data with query params'
      operationId: 'EIA\API\Controllers\Dataset\AeoIeo\IeoController::get_data'
      parameters:
        -
          $ref: '#/components/parameters/data'
        -
          $ref: '#/components/parameters/facets'
        -
          $ref: '#/components/parameters/frequency'
        -
          $ref: '#/components/parameters/start'
        -
          $ref: '#/components/parameters/end'
        -
          $ref: '#/components/parameters/sort'
        -
          $ref: '#/components/parameters/length'
        -
          $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
        - IEO
      summary: 'Return IEO Data'
      operationId: 'EIA\API\Controllers\Dataset\AeoIeo\IeoController::post_data'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    parameters:
      -
        $ref: '#/components/parameters/route1'
  '/v2/co2-emissions/co2-emissions-aggregates/facet/{facet_id}':
    get:
      tags:
        - EMISS
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/co2-emissions/co2-emissions-and-carbon-coefficients/facet/{facet_id}':
    get:
      tags:
        - EMISS
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/aggregate-production/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/consumption-and-quality/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/exports-imports-quantity-price/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/market-sales-price/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/mine-production/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/price-by-rank/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/reserves-capacity/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/shipments/by-mine-by-plant/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/shipments/mine-aggregates/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/shipments/mine-state-aggregates/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/shipments/plant-aggregates/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/shipments/plant-state-aggregates/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/coal/shipments/receipts/facet/{facet_id}':
    get:
      tags:
        - COAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/crude-oil-imports/facet/{facet_id}':
    get:
      tags:
        - CRUD_IMPORTS
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/densified-biomass/capacity-by-region/facet/{facet_id}':
    get:
      tags:
        - DBF
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/densified-biomass/characteristics-by-region/facet/{facet_id}':
    get:
      tags:
        - DBF
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/densified-biomass/export-sales-and-price/facet/{facet_id}':
    get:
      tags:
        - DBF
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/densified-biomass/feedstocks-and-cost/facet/{facet_id}':
    get:
      tags:
        - DBF
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/densified-biomass/inventories-by-region/facet/{facet_id}':
    get:
      tags:
        - DBF
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/densified-biomass/production-by-region/facet/{facet_id}':
    get:
      tags:
        - DBF
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/densified-biomass/sales-and-price-by-region/facet/{facet_id}':
    get:
      tags:
        - DBF
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/densified-biomass/wood-pellet-plants/facet/{facet_id}':
    get:
      tags:
        - DBF
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/facility-fuel/facet/{facet_id}':
    get:
      tags:
        - ELEC
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/electric-power-operational-data/facet/{facet_id}':
    get:
      tags:
        - ELEC
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/operating-generator-capacity/facet/{facet_id}':
    get:
      tags:
        - ELEC
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/retail-sales/facet/{facet_id}':
    get:
      tags:
        - ELEC
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/state-electricity-profiles/capability/facet/{facet_id}':
    get:
      tags:
        - SEP
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/state-electricity-profiles/emissions-by-state-by-fuel/facet/{facet_id}':
    get:
      tags:
        - SEP
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/state-electricity-profiles/energy-efficiency/facet/{facet_id}':
    get:
      tags:
        - SEP
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/state-electricity-profiles/meters/facet/{facet_id}':
    get:
      tags:
        - SEP
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/state-electricity-profiles/net-metering/facet/{facet_id}':
    get:
      tags:
        - SEP
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/state-electricity-profiles/source-disposition/facet/{facet_id}':
    get:
      tags:
        - SEP
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/state-electricity-profiles/summary/facet/{facet_id}':
    get:
      tags:
        - SEP
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/rto/daily-interchange-data/facet/{facet_id}':
    get:
      tags:
        - RTO
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/rto/daily-fuel-type-data/facet/{facet_id}':
    get:
      tags:
        - RTO
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/rto/daily-region-sub-ba-data/facet/{facet_id}':
    get:
      tags:
        - RTO
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/rto/daily-region-data/facet/{facet_id}':
    get:
      tags:
        - RTO
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/rto/interchange-data/facet/{facet_id}':
    get:
      tags:
        - RTO
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/rto/fuel-type-data/facet/{facet_id}':
    get:
      tags:
        - RTO
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/rto/region-sub-ba-data/facet/{facet_id}':
    get:
      tags:
        - RTO
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/electricity/rto/region-data/facet/{facet_id}':
    get:
      tags:
        - RTO
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/international/facet/{facet_id}':
    get:
      tags:
        - INTL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/nuclear-outages/facility-nuclear-outages/facet/{facet_id}':
    get:
      tags:
        - NUC_STATUS
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/nuclear-outages/generator-nuclear-outages/facet/{facet_id}':
    get:
      tags:
        - NUC_STATUS
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/nuclear-outages/us-nuclear-outages/facet/{facet_id}':
    get:
      tags:
        - NUC_STATUS
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  '/v2/natural-gas/{route1}/{route2}':
    get:
      tags:
        - NG
      responses:
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
    parameters:
      -
        $ref: '#/components/parameters/route1'
      -
        $ref: '#/components/parameters/route2'
  '/v2/natural-gas/{route1}':
    get:
      tags:
        - NG
      responses:
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/route'
    parameters:
      -
        $ref: '#/components/parameters/route1'
  '/v2/natural-gas/{route1}/{route2}/facet/{facet_id}':
    get:
      tags:
        - NG
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/route1'
      -
        $ref: '#/components/parameters/route2'
      -
        $ref: '#/components/parameters/facetId'
  '/v2/natural-gas/{route1}/{route2}/facet':
    get:
      tags:
        - NG
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
    parameters:
      -
        $ref: '#/components/parameters/route1'
      -
        $ref: '#/components/parameters/route2'
  '/v2/natural-gas/{route1}/{route2}/data':
    get:
      tags:
        - NG
      description: 'API data with query params'
      parameters:
        -
          $ref: '#/components/parameters/data'
        -
          $ref: '#/components/parameters/facets'
        -
          $ref: '#/components/parameters/frequency'
        -
          $ref: '#/components/parameters/start'
        -
          $ref: '#/components/parameters/end'
        -
          $ref: '#/components/parameters/sort'
        -
          $ref: '#/components/parameters/length'
        -
          $ref: '#/components/parameters/offset'
      responses:
        '405':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
        - NG
      summary: 'Return Natural Gas Data'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '405':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    parameters:
      -
        $ref: '#/components/parameters/route1'
      -
        $ref: '#/components/parameters/route2'
  '/v2/total-energy/facet/{facet_id}':
    get:
      tags:
        - TOTAL
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
    parameters:
      -
        $ref: '#/components/parameters/facetId'
  /v2/seds:
    get:
      tags:
        - SEDS
      responses:
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/seds/facet:
    get:
      tags:
        - SEDS
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  '/v2/seds/facet/{facet_id}':
    get:
      tags:
        - SEDS
      parameters:
        -
          name: facet_id
          in: path
          description: ''
          required: true
          schema:
            type: string
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/seds/data:
    get:
      tags:
        - SEDS
      description: 'API data with query params'
      parameters:
        -
          $ref: '#/components/parameters/data'
        -
          $ref: '#/components/parameters/facets'
        -
          $ref: '#/components/parameters/frequency'
        -
          $ref: '#/components/parameters/start'
        -
          $ref: '#/components/parameters/end'
        -
          $ref: '#/components/parameters/sort'
        -
          $ref: '#/components/parameters/length'
        -
          $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: 'Invalid input'
        '404':
          description: 'Not Found'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
        - SEDS
      summary: 'Return SEDS Data'
      description: "Class SEDSController\n\nSEDS data set top-level controller."
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: 'Invalid input'
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/steo:
    get:
      tags:
        - STEO
      responses:
        '200':
          description: 'successful operation'
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/steo/facet:
    get:
      tags:
       

# --- truncated at 32 KB (140 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eia/refs/heads/main/openapi/eia-api-v2-openapi.yml