openapi: 3.1.0
info:
title: U.S. Energy Information Administration Open Data CO2 Emissions SEDS API
description: The U.S. Energy Information Administration (EIA) Open Data API v2 provides free programmatic access to EIA's open energy data, including time-series datasets organized by energy category. The API uses a hierarchical route structure where each route corresponds to a category or dataset, and metadata about child routes, available facets, frequencies, and data columns is returned by querying any parent route. An API key, obtained via free registration at https://www.eia.gov/opendata/register.php, is required on every request and must be supplied as a URL query parameter.
version: '2.1'
contact:
name: EIA Open Data
url: https://www.eia.gov/opendata/
email: EIA-OpenData@eia.gov
license:
name: EIA Copyrights and Reuse Policy
url: https://www.eia.gov/about/copyrights_reuse.php
servers:
- url: https://api.eia.gov/v2
description: EIA Open Data API v2 production server
security:
- apiKeyQuery: []
tags:
- name: SEDS
description: State Energy Data System.
paths:
/seds/data:
get:
operationId: getStateEnergyData
summary: Query State Energy Data System time series
description: Returns SEDS time-series data by state and energy series.
tags:
- SEDS
parameters:
- $ref: '#/components/parameters/Frequency'
- $ref: '#/components/parameters/DataArray'
- $ref: '#/components/parameters/Start'
- $ref: '#/components/parameters/End'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Length'
- $ref: '#/components/parameters/Out'
responses:
'200':
description: Time-series response.
content:
application/json:
schema:
$ref: '#/components/schemas/SeriesResponse'
components:
parameters:
Out:
name: out
in: query
description: Output format.
required: false
schema:
type: string
enum:
- json
- xml
default: json
DataArray:
name: data[]
in: query
description: Columns to include in the response (repeat for multiple columns).
required: false
schema:
type: array
items:
type: string
style: form
explode: true
End:
name: end
in: query
description: Inclusive end of the date range (format depends on frequency, e.g. YYYY-MM-DD).
required: false
schema:
type: string
Length:
name: length
in: query
description: Maximum number of rows to return (5,000 max for JSON, 300 max for XML).
required: false
schema:
type: integer
maximum: 5000
Start:
name: start
in: query
description: Inclusive start of the date range (format depends on frequency, e.g. YYYY-MM-DD).
required: false
schema:
type: string
Frequency:
name: frequency
in: query
description: Periodicity of returned data (annual, monthly, quarterly, daily).
required: false
schema:
type: string
enum:
- annual
- quarterly
- monthly
- weekly
- daily
- hourly
Offset:
name: offset
in: query
description: Pagination offset (zero-based row index).
required: false
schema:
type: integer
minimum: 0
schemas:
SeriesResponse:
type: object
description: Time-series data response.
properties:
response:
type: object
properties:
total:
type: integer
description: Total rows available for the query.
dateFormat:
type: string
frequency:
type: string
data:
type: array
items:
type: object
additionalProperties: true
request:
type: object
apiVersion:
type: string
securitySchemes:
apiKeyQuery:
type: apiKey
in: query
name: api_key
description: Free API key obtained at https://www.eia.gov/opendata/register.php. Must be supplied on every request as the api_key URL parameter.