name: eia
description: EIA API for energy data (oil, gas, electricity prices and production). API key via EIA_API_KEY env var. Use for energy market and commodity forecasting.
EIA API
US Energy Information Administration. API key from EIA_API_KEY env var.
Endpoint
https://api.eia.gov/v2/
Common Routes
| Route |
Description |
| /petroleum/pri/spt/data |
Oil spot prices (WTI, Brent) |
| /natural-gas/pri/sum/data |
Natural gas prices |
| /electricity/retail-sales/data |
Electricity prices |
Series Codes
| Code |
Description |
| RWTC |
WTI Crude Oil (Cushing) |
| RBRTE |
Brent Crude Oil |
| RNGWHHD |
Natural Gas (Henry Hub) |
Basic Usage
import requests
import os
api_key = os.environ.get('EIA_API_KEY')
# Get WTI crude oil spot prices
url = "https://api.eia.gov/v2/petroleum/pri/spt/data"
params = {
"api_key": api_key,
"data[]": "value",
"facets[series][]": "RWTC",
"frequency": "daily",
"sort[0][column]": "period",
"sort[0][direction]": "desc",
"length": 30
}
response = requests.get(url, params=params)
data = response.json()
for row in data['response']['data']:
print(f"{row['period']}: ${row['value']}/barrel")
Date Filtering for Backtesting
params = {
"api_key": api_key,
"start": "2023-01",
"end": "2024-06", # Cutoff
"frequency": "monthly"
}