Open data
Commercial electricity open data
The records behind every page, as JSON anyone can read: states, utilities, cities and ZIP Codes. For developers, researchers, journalists and AI assistants.
Every figure on this site is open as JSON at /data/api/v1/: 51 state files, 228 utility records, 299 cities and a ZIP Code index, 381 files in all. No key, no sign-up, CORS open, rebuilt with the site whenever EIA publishes. Credit the U.S. Energy Information Administration and this site.
Source: EIA Form EIA-861, EIA-861M and Short-Term Energy Outlook; U.S. Census Bureau
The files
| Path | What it holds |
|---|---|
/data/api/v1/index.json | The list of files, what each holds and how many there are |
/data/api/v1/states.json | Every state and DC: average commercial price over the trailing 12 months and the latest final year, supply choice |
/data/api/v1/states/{state}.json | Price history since 2010, energy and delivery split, residential and industrial prices, sales, supply-choice rules, EIA regional forecast, net metering, smart meters, time-varying rates, reliability, utilities and cities |
/data/api/v1/utilities.json | One record per utility with a page here: price and its history, average use and bill, reliability, smart meters, time-varying rates, net metering |
/data/api/v1/utilities/{state}/{utility}.json | One utility, with every year’s customers, sales, revenue and price, bundled and delivery-only apart |
/data/api/v1/cities.json | The cities with a page here, with population and counties |
/data/api/v1/zip/{NN}.json | ZIP Code areas to counties to the utilities EIA lists there, one file per two-digit ZIP prefix |
The same figures as CSV are listed on the data page.
An example
Texas, trimmed to the price block. rank counts from the highest price (1) to the lowest (51); change is the fraction against the 12 months before.
{
"state": {
"name": "Texas",
"abbr": "TX",
"slug": "texas",
"url": "https://commercialelectricityrates.com/commercial-electricity-rates/texas/"
},
"commercialPrice": {
"trailing12Months": {
"cents": 8.57,
"previousCents": 8.57,
"change": 0,
"from": "2025-09",
"through": "2026-08",
"status": "Preliminary",
"rank": 50,
"of": 51
}
}
}
From a browser or a script: fetch('https://commercialelectricityrates.com/data/api/v1/states/texas.json').then((r) => r.json()). Responses carry Access-Control-Allow-Origin: *.
Rules of use
- Credit. The data are U.S. government works in the public domain; please credit “U.S. Energy Information Administration (public domain), compiled by CommercialElectricityRates.com” and link to the page a figure comes from.
- Averages, not offers. Each price is revenue divided by kWh over every commercial customer. It is not a rate schedule or a price anyone can buy at, and a delivery-only figure is not comparable with an all-in one.
- Freshness. Files are rebuilt with the site: monthly prices after each EIA monthly release, utility figures when EIA publishes the final annual data, the forecast with each Short-Term Energy Outlook. Each file carries its build date in
_meta.updated. - Stability. Paths under
/v1/keep their meaning; a change that breaks a field gets a new version.
For AI assistants and search
The site publishes llms.txt, a plain-text map of what is here and which figures are worth citing, and every data page carries schema.org Dataset markup. Quote a figure with its date and its source; the JSON has both.
Embed a rate card
To show a state’s current average commercial price on another site, with the figure updating itself, use the embeddable rate card.
Open data describes markets. For one business’s bill, a person can read it: rate schedule, demand, riders, contract window. Nobody calls unless you ask.