Commodity forward curve API for energy markets
EOX Live delivers energy forward curves, refreshed every 15 minutes, along with implied volatility surfaces, correlations and heat rates, through a REST API, a Python client and Excel functions. Every curve carries mid, bid and ask, and daily history is included with your subscription.
What the API provides
The API reads the same tables as the EOX files that clients receive by email and FTPES, so models built on the files and models built on the API agree to the decimal.
Energy forward curves
Forward curves across power, natural gas, refined products, NGLs, crude oil, coal, freight, European gas and power, and agricultural and soft commodities, plus 20-year power and natural gas curves.
Implied volatility surfaces
Power and natural gas implied volatilities, including power volatility surfaces by strike with call and put vols, premiums and option settlements where available.
Correlations, heat rates and CFDs
Correlation matrices by lookback window, power-to-gas heat rates, and crude CFD curves.
Mid, bid and ask
Each record has the curve date, the contract (month, quarter, season or calendar strip), its start and end dates, a rolling tenor key, and mid, bid and ask.
Daily history
Every published curve date is kept. Pull one date, a range of dates, or one contract's full history in a single request; history is included with every subscription.
The files, too
Download any delivered EOD file, today's or historical, in CSV or Excel, exactly as it was sent.
Ways to connect
REST: JSON or CSV
HTTPS GET requests with your key in a header. JSON is paged with a cursor; CSV streams the whole
selection in one response, in the EOD file layout. Choose rows (one per curve and tenor) or a grid
(tenors or dates down, curves across).
Python
The eoxlive client returns pandas DataFrames, splits long histories into chunks and retries
politely when rate limited.
Excel
An add-in for Excel on Windows, Mac and the web adds live functions and a curve browser:
=EOX.PRICEone value=EOX.CURVEa spilled curve grid=EOX.HISTORYa time series=EOX.DATESpublished dates
Can't install add-ins? An Excel template built on Power Query works with no installation. And for no code at all, the browser Curve Picker lets you pick curves, tenors and dates and download exactly that as Excel or CSV.
Tools included with your data
The same subscription puts the curves to work: value positions and deals in the browser, in Excel and in Python, at no extra charge.
Mark-to-market and risk
Mark a book of swaps and forwards to EOX curves, end of day or intraday, with value at risk.
PPA valuation
Solar, wind and baseload PPAs priced hour by hour: capture price, shape factor and breakeven price.
Battery storage valuation
Optimal daily dispatch on the forward curve, a day-ahead backtest, and regulation and reserves.
All tools, including options, heat-rate calls and forwards against day-ahead →
Examples
The codes below are placeholders. Each dataset's curve catalogue lists the real codes your subscription includes.
REST (curl)
# two curves, first 24 months, as CSV
curl -H "X-API-Key: YOUR_KEY" \
"https://api.eoxlive.com/v1/power/curve?market_code=CODE1,CODE2&time_key=M01-M24&format=csv"
# one contract's daily history
curl -H "X-API-Key: YOUR_KEY" \
"https://api.eoxlive.com/v1/natural_gas/history?market_code=CODE1&contract=Jan_2027&start=2025-01-01&format=csv"
Python
pip install https://api.eoxlive.com/downloads/eoxlive-1.16.0-py3-none-any.whl
from eoxlive import EOX
eox = EOX("YOUR_KEY")
eox.curve("power", "CODE1,CODE2", "M01-M24") # latest curves as a DataFrame
eox.history("natural_gas", "CODE1", "Jan_2027", start="2020-01-01") # daily history of one contract
eox.price("power", "CODE1", "M01", field="bid") # one number
Excel
=EOX.PRICE("power","CODE1","Jan_2027","bid")
=EOX.CURVE("natural_gas","CODE1,CODE2","M01-M24")
=EOX.HISTORY("power","CODE1","M01","2025-01-01")
JSON response
{"count": 1, "next_cursor": null, "data": [
{"curve_date": "2026-10-08", "market_code": "CODE1", "contract_name": "Jan_2027", "contract_term": "Month",
"contract_begin": "2027-01-01", "contract_end": "2027-01-31", "time_key": "M04",
"mid": 12.34, "bid": 12.30, "ask": 12.38, ...}]}
Values shown are illustrative only.
Access and security
- Per-user API keys. Every user has a personal key; a key can be replaced or revoked on its own, and trial keys expire on their end date.
- Licensed by complex. A subscription covers whole complexes (Power Forwards, Natural Gas Forwards and so on), not individual curves.
- HTTPS only, with a per-user rate limit and a
Retry-Afterheader the clients respect automatically. - Clear errors. Unknown or misspelt parameters are rejected rather than silently ignored.
Questions
- How often is the data updated?
- Every 15 minutes. The API reads the same tables the EOX files are built from, so each refresh is available through the API, Excel and the Curve Picker as soon as it is loaded.
- Is history included?
- Yes. Daily history comes with every subscription, through the API and as downloadable files.
- Can I use it from Python and Excel at the same time?
- Yes. The same personal key works in the Excel add-in, the Python client and any HTTPS tool.
- How do I get access?
- Request a trial and we'll set up a key for the complexes you want to evaluate.