curl --request GET \
--url https://api.cleanview.co/api/v1/eia-860m \
--header 'x-api-key: <api-key>'import requests
url = "https://api.cleanview.co/api/v1/eia-860m"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.cleanview.co/api/v1/eia-860m', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cleanview.co/api/v1/eia-860m",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cleanview.co/api/v1/eia-860m"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cleanview.co/api/v1/eia-860m")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cleanview.co/api/v1/eia-860m")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"summary": {
"limit": 50,
"offset": 0,
"total_results": 3044,
"has_more": true,
"current_page": 1,
"total_pages": 61
},
"filters": {
"state": "CA",
"energy_source": null,
"balancing_authority": null,
"status": "all",
"start_year": null,
"end_year": null,
"developer": null
},
"customer": {
"id": "test_user_001",
"name": "Test Developer"
},
"data": [
{
"plant_id": "66659",
"plant_name": "Acid BESS",
"plant_state": "CA",
"county": "Fresno",
"latitude": 36.6905,
"longitude": -119.7404,
"entity_id": "65678",
"entity_name": "Malaga BESS LLC",
"generator_id": "MAL",
"unit_code": null,
"nameplate_capacity_mw": 97,
"nameplate_energy_capacity_mwh": 97,
"energy_source_code": "MWH",
"technology": "Batteries",
"prime_mover_code": "BA",
"status": "Operating",
"status_detailed": "(OP) Operating",
"operating_year": 2025,
"operating_month": "3",
"retirement_year": null,
"retirement_month": null,
"operating_date": "2025-03-01",
"retirement_date": null,
"balancing_authority_code": "CISO",
"sector": "IPP Non-CHP",
"plant_generator_key": "66659_MAL",
"developer": "Malaga BESS LLC"
},
{
"plant_id": "66167",
"plant_name": "AM Wind Repower LLC",
"plant_state": "CA",
"county": "Riverside",
"latitude": 33.943741,
"longitude": -116.6615,
"entity_id": "63235",
"entity_name": "Brookfield Renewable Trading and Marketing LP",
"generator_id": "63235",
"unit_code": null,
"nameplate_capacity_mw": 27,
"nameplate_energy_capacity_mwh": null,
"energy_source_code": "WND",
"technology": "Onshore Wind Turbine",
"prime_mover_code": "WT",
"status": "Operating",
"status_detailed": "(OP) Operating",
"operating_year": 2025,
"operating_month": "3",
"retirement_year": null,
"retirement_month": null,
"operating_date": "2025-03-01",
"retirement_date": null,
"balancing_authority_code": "CISO",
"sector": "IPP Non-CHP",
"plant_generator_key": "66167_63235",
"developer": "Brookfield Renewable"
}
]
}
EIA 860M Data
Retrieve EIA 860M power plant data with detailed capacity, operational status, and location information
curl --request GET \
--url https://api.cleanview.co/api/v1/eia-860m \
--header 'x-api-key: <api-key>'import requests
url = "https://api.cleanview.co/api/v1/eia-860m"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.cleanview.co/api/v1/eia-860m', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cleanview.co/api/v1/eia-860m",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cleanview.co/api/v1/eia-860m"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cleanview.co/api/v1/eia-860m")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cleanview.co/api/v1/eia-860m")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"summary": {
"limit": 50,
"offset": 0,
"total_results": 3044,
"has_more": true,
"current_page": 1,
"total_pages": 61
},
"filters": {
"state": "CA",
"energy_source": null,
"balancing_authority": null,
"status": "all",
"start_year": null,
"end_year": null,
"developer": null
},
"customer": {
"id": "test_user_001",
"name": "Test Developer"
},
"data": [
{
"plant_id": "66659",
"plant_name": "Acid BESS",
"plant_state": "CA",
"county": "Fresno",
"latitude": 36.6905,
"longitude": -119.7404,
"entity_id": "65678",
"entity_name": "Malaga BESS LLC",
"generator_id": "MAL",
"unit_code": null,
"nameplate_capacity_mw": 97,
"nameplate_energy_capacity_mwh": 97,
"energy_source_code": "MWH",
"technology": "Batteries",
"prime_mover_code": "BA",
"status": "Operating",
"status_detailed": "(OP) Operating",
"operating_year": 2025,
"operating_month": "3",
"retirement_year": null,
"retirement_month": null,
"operating_date": "2025-03-01",
"retirement_date": null,
"balancing_authority_code": "CISO",
"sector": "IPP Non-CHP",
"plant_generator_key": "66659_MAL",
"developer": "Malaga BESS LLC"
},
{
"plant_id": "66167",
"plant_name": "AM Wind Repower LLC",
"plant_state": "CA",
"county": "Riverside",
"latitude": 33.943741,
"longitude": -116.6615,
"entity_id": "63235",
"entity_name": "Brookfield Renewable Trading and Marketing LP",
"generator_id": "63235",
"unit_code": null,
"nameplate_capacity_mw": 27,
"nameplate_energy_capacity_mwh": null,
"energy_source_code": "WND",
"technology": "Onshore Wind Turbine",
"prime_mover_code": "WT",
"status": "Operating",
"status_detailed": "(OP) Operating",
"operating_year": 2025,
"operating_month": "3",
"retirement_year": null,
"retirement_month": null,
"operating_date": "2025-03-01",
"retirement_date": null,
"balancing_authority_code": "CISO",
"sector": "IPP Non-CHP",
"plant_generator_key": "66167_63235",
"developer": "Brookfield Renewable"
}
]
}
Overview
The EIA 860M endpoint provides access to the U.S. Energy Information Administration’s monthly electric generator inventory data. This dataset includes comprehensive information about power plants and generators across the United States, including renewable energy projects, traditional generation facilities, and energy storage systems.Energy Source Codes
The most common energy source codes in our dataset:| Code | Description | Count |
|---|---|---|
NG | Natural Gas | 9,742 |
SUN | Solar | 9,000 |
DFO | Distillate Fuel Oil (Diesel) | 5,517 |
WAT | Hydro | 4,598 |
LFG | Landfill Gas | 1,983 |
WND | Wind | 1,955 |
MWH | Battery Storage | 1,435 |
BIT | Bituminous Coal | 828 |
SUB | Subbituminous Coal | 463 |
GEO | Geothermal | 341 |
Balancing Authority Codes
The most common balancing authorities in our dataset:| Code | Description | Count |
|---|---|---|
MISO | Midcontinent Independent System Operator | 6,404 |
PJM | PJM Interconnection | 5,370 |
CISO | California Independent System Operator | 3,738 |
ERCO | Electric Reliability Council of Texas | 2,850 |
ISNE | ISO New England | 2,694 |
NYIS | New York Independent System Operator | 2,303 |
SWPP | Southwest Power Pool | 2,126 |
Status Options
| Status | Description |
|---|---|
operating | Currently operating facilities |
retired | Retired from service |
planned | Planned but not yet operating |
canceled | Cancelled projects |
all | All statuses |
Example Requests
Get Solar Projects in California
Get Solar Projects in California
curl -H "x-api-key: your_api_key_here" \
"https://api.cleanview.co/api/v1/eia-860m?state=CA&energy_source=SUN&limit=50"
energy_source=SUN for solar. See all energy source codes.Get Wind Projects
Get Wind Projects
curl -H "x-api-key: your_api_key_here" \
"https://api.cleanview.co/api/v1/eia-860m?energy_source=WND&limit=50"
energy_source=WND for wind. See all energy source codes.Get Battery Storage Projects
Get Battery Storage Projects
curl -H "x-api-key: your_api_key_here" \
"https://api.cleanview.co/api/v1/eia-860m?energy_source=MWH&status=operating&limit=50"
energy_source=MWH for battery storage. See all energy source codes.Get Projects by Multiple Balancing Authorities
Get Projects by Multiple Balancing Authorities
curl -H "x-api-key: your_api_key_here" \
"https://api.cleanview.co/api/v1/eia-860m?balancing_authority=CISO,ERCO&limit=50"
balancing_authority=CISO,ERCO for California ISO and ERCOT. See all balancing authority codes.Get Projects by Developer
Get Projects by Developer
curl -H "x-api-key: your_api_key_here" \
"https://api.cleanview.co/api/v1/eia-860m?developer=NextEra&limit=50"
Response Schema
{
"success": true,
"summary": {
"limit": 50,
"offset": 0,
"total_results": 3044,
"has_more": true,
"current_page": 1,
"total_pages": 61
},
"filters": {
"state": "CA",
"energy_source": null,
"balancing_authority": null,
"status": "all",
"start_year": null,
"end_year": null,
"developer": null
},
"customer": {
"id": "test_user_001",
"name": "Test Developer"
},
"data": [
{
"plant_id": "66659",
"plant_name": "Acid BESS",
"plant_state": "CA",
"county": "Fresno",
"latitude": 36.6905,
"longitude": -119.7404,
"entity_id": "65678",
"entity_name": "Malaga BESS LLC",
"generator_id": "MAL",
"unit_code": null,
"nameplate_capacity_mw": 97,
"nameplate_energy_capacity_mwh": 97,
"energy_source_code": "MWH",
"technology": "Batteries",
"prime_mover_code": "BA",
"status": "Operating",
"status_detailed": "(OP) Operating",
"operating_year": 2025,
"operating_month": "3",
"retirement_year": null,
"retirement_month": null,
"operating_date": "2025-03-01",
"retirement_date": null,
"balancing_authority_code": "CISO",
"sector": "IPP Non-CHP",
"plant_generator_key": "66659_MAL",
"developer": "Malaga BESS LLC"
},
{
"plant_id": "66167",
"plant_name": "AM Wind Repower LLC",
"plant_state": "CA",
"county": "Riverside",
"latitude": 33.943741,
"longitude": -116.6615,
"entity_id": "63235",
"entity_name": "Brookfield Renewable Trading and Marketing LP",
"generator_id": "63235",
"unit_code": null,
"nameplate_capacity_mw": 27,
"nameplate_energy_capacity_mwh": null,
"energy_source_code": "WND",
"technology": "Onshore Wind Turbine",
"prime_mover_code": "WT",
"status": "Operating",
"status_detailed": "(OP) Operating",
"operating_year": 2025,
"operating_month": "3",
"retirement_year": null,
"retirement_month": null,
"operating_date": "2025-03-01",
"retirement_date": null,
"balancing_authority_code": "CISO",
"sector": "IPP Non-CHP",
"plant_generator_key": "66167_63235",
"developer": "Brookfield Renewable"
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
plant_id | string | Unique EIA plant identifier |
plant_name | string | Name of the power plant facility |
plant_state | string | Two-letter state code where plant is located |
county | string | County name where plant is located |
latitude | number | Plant latitude coordinate |
longitude | number | Plant longitude coordinate |
entity_id | string | EIA entity (utility/company) identifier |
entity_name | string | Name of utility or company operating the plant |
generator_id | string | Generator unit identifier within the plant |
unit_code | string | Additional unit identifier (if applicable) |
nameplate_capacity_mw | number | Nameplate capacity in megawatts (MW) |
nameplate_energy_capacity_mwh | number | Energy storage capacity in megawatt-hours (MWh) for storage units |
energy_source_code | string | Primary energy source code (SUN, WND, NG, etc.) |
technology | string | Technology description |
prime_mover_code | string | Prime mover technology code |
status | string | Operational status |
status_detailed | string | Detailed operational status with EIA codes |
operating_year | number | Year facility began/will begin operation |
operating_month | string | Month facility began/will begin operation |
retirement_year | number | Year facility retired/will retire (if applicable) |
retirement_month | number | Month facility retired/will retire (if applicable) |
operating_date | string | Operating date in YYYY-MM-DD format |
retirement_date | string | Retirement date in YYYY-MM-DD format (if applicable) |
balancing_authority_code | string | Balancing authority acronym |
sector | string | Sector classification |
plant_generator_key | string | Composite key combining plant_id and generator_id |
developer | string | Developer company name(s) associated with the project |
Authorizations
API key authentication using x-api-key header
Query Parameters
Filter by state code (e.g., CA, TX, NY)
Filter by energy source code(s). Multiple codes separated by comma. Common codes: SUN (Solar), WND (Wind), MWH (Battery), NG (Natural Gas)
Filter by balancing authority acronym(s). Multiple codes separated by comma. Common codes: CISO (California), ERCO (Texas), PJM (Mid-Atlantic)
Filter by plant status. Default includes all statuses - use this to narrow down results
operating, retired, planned, canceled, all Filter by minimum operating year
Filter by maximum operating year
Number of records to return. Must be between 50-5000 for optimal performance.
50 <= x <= 5000Number of records to skip
Response
Successful response with EIA 860M power plant data
Always true for successful responses
true
Summary metadata for pagination
Show child attributes
Show child attributes
Applied filters for the request
Customer information for the API key
Show child attributes
Show child attributes
Array of EIA 860M power plant records
Show child attributes
Show child attributes