Get all units at behind-the-meter gas plants
curl --request GET \
--url https://api.cleanview.co/api/v1/gas-plant-units \
--header 'x-api-key: <api-key>'import requests
url = "https://api.cleanview.co/api/v1/gas-plant-units"
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/gas-plant-units', 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/gas-plant-units",
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/gas-plant-units"
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/gas-plant-units")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cleanview.co/api/v1/gas-plant-units")
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,
"metadata": {
"total_count": 209,
"generated_at": "2026-10-15T16:00:00.000Z"
},
"customer": {
"id": "test_user_001",
"name": "Test Developer"
},
"data": [
{
"id": 165,
"plant_id": 88,
"plant_name": "Apollo Power Generation Facility",
"developer": "Williams",
"campus_id": 243,
"county": "Wood",
"state": "OH",
"latitude": 41.463279,
"longitude": -83.626865,
"oem": "Siemens Energy",
"model": "SGT-800",
"model_family": "SGT-800",
"version": "62 MW rating",
"equipment_type": "Gas turbine",
"configuration": "simple_cycle",
"unit_count": 2,
"iso_rating_mw": 62.5,
"nameplate_capacity_mw": 125,
"capacity_basis": "rating",
"status": "Under Construction",
"operating_year": 2027,
"source_1": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-06-02_air-permit_ohio-epa-final-pti-p0139272-will-power-oh-apollo.pdf",
"source_2": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-06_utility-filing_opsb-25-973-response-to-staff-data-request-1-unit-mw-table.pdf",
"source_3": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-27_utility-filing_opsb-25-973-staff-report-of-investigation.pdf"
},
{
"id": 170,
"plant_id": 88,
"plant_name": "Apollo Power Generation Facility",
"developer": "Williams",
"campus_id": 243,
"county": "Wood",
"state": "OH",
"latitude": 41.463279,
"longitude": -83.626865,
"oem": "Caterpillar",
"model": "G3520",
"model_family": "G3520",
"version": null,
"equipment_type": "Reciprocating engine",
"configuration": "reciprocating_engine",
"unit_count": 6,
"iso_rating_mw": null,
"nameplate_capacity_mw": 15,
"capacity_basis": "stated",
"status": "Under Construction",
"operating_year": 2027,
"source_1": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-06-02_air-permit_ohio-epa-final-pti-p0139272-will-power-oh-apollo.pdf",
"source_2": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-06_utility-filing_opsb-25-973-response-to-staff-data-request-1-unit-mw-table.pdf",
"source_3": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-27_utility-filing_opsb-25-973-staff-report-of-investigation.pdf"
}
]
}
BTM Gas Plants
Gas Plant Units
Retrieve the turbines, engines and fuel cells at behind-the-meter gas plants: manufacturer, model, count, capacity, status and year
GET
/
gas-plant-units
Get all units at behind-the-meter gas plants
curl --request GET \
--url https://api.cleanview.co/api/v1/gas-plant-units \
--header 'x-api-key: <api-key>'import requests
url = "https://api.cleanview.co/api/v1/gas-plant-units"
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/gas-plant-units', 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/gas-plant-units",
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/gas-plant-units"
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/gas-plant-units")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cleanview.co/api/v1/gas-plant-units")
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,
"metadata": {
"total_count": 209,
"generated_at": "2026-10-15T16:00:00.000Z"
},
"customer": {
"id": "test_user_001",
"name": "Test Developer"
},
"data": [
{
"id": 165,
"plant_id": 88,
"plant_name": "Apollo Power Generation Facility",
"developer": "Williams",
"campus_id": 243,
"county": "Wood",
"state": "OH",
"latitude": 41.463279,
"longitude": -83.626865,
"oem": "Siemens Energy",
"model": "SGT-800",
"model_family": "SGT-800",
"version": "62 MW rating",
"equipment_type": "Gas turbine",
"configuration": "simple_cycle",
"unit_count": 2,
"iso_rating_mw": 62.5,
"nameplate_capacity_mw": 125,
"capacity_basis": "rating",
"status": "Under Construction",
"operating_year": 2027,
"source_1": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-06-02_air-permit_ohio-epa-final-pti-p0139272-will-power-oh-apollo.pdf",
"source_2": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-06_utility-filing_opsb-25-973-response-to-staff-data-request-1-unit-mw-table.pdf",
"source_3": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-27_utility-filing_opsb-25-973-staff-report-of-investigation.pdf"
},
{
"id": 170,
"plant_id": 88,
"plant_name": "Apollo Power Generation Facility",
"developer": "Williams",
"campus_id": 243,
"county": "Wood",
"state": "OH",
"latitude": 41.463279,
"longitude": -83.626865,
"oem": "Caterpillar",
"model": "G3520",
"model_family": "G3520",
"version": null,
"equipment_type": "Reciprocating engine",
"configuration": "reciprocating_engine",
"unit_count": 6,
"iso_rating_mw": null,
"nameplate_capacity_mw": 15,
"capacity_basis": "stated",
"status": "Under Construction",
"operating_year": 2027,
"source_1": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-06-02_air-permit_ohio-epa-final-pti-p0139272-will-power-oh-apollo.pdf",
"source_2": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-06_utility-filing_opsb-25-973-response-to-staff-data-request-1-unit-mw-table.pdf",
"source_3": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-27_utility-filing_opsb-25-973-staff-report-of-investigation.pdf"
}
]
}
The BTM gas plant endpoints require the
gas-plants scope on your API key. A key without it gets 403 INSUFFICIENT_SCOPE. Contact us to add it.Overview
This endpoint returns the equipment at the plants in Gas Plants. Each record is one unit: one equipment model at one stage of a plant’s build, with its manufacturer (OEM), model, number of machines, capacity, status and year. A plant that uses two models has two units. So does a plant that installs the same model in two stages with different timelines. The plant’s developer and location are repeated on every record, so the table stands on its own. Pivot it by OEM, model, status, year or state. This is a “download link” style endpoint that returns all records in a single response. There is no pagination.Equipment
oemandmodelare spelled the way the manufacturer sells them, like Siemens Energy SGT-800 or INNIO Jenbacher J624.modelisnullwhen a document names the manufacturer but not the model. Cleanview doesn’t guess a model from the plant’s size.model_familygroups products built on the same machine: GE’s TM2500 and LM2500XPRESS are bothLM2500. Use it to count every machine of a kind, however it was packaged.versionis the model’s rated version, when a document identifies it.
Configuration
equipment_type is the kind of machine: Gas turbine, Steam turbine, Reciprocating engine or Fuel cell. configuration is how it generates:
| Configuration | Description |
|---|---|
simple_cycle | Gas turbines on their own: frame, aeroderivative (adapted from jet engines) and mobile turbines |
combined_cycle | Gas turbines built to run with a heat recovery steam generator, which turns their exhaust into steam. Includes turbines that run on their own first and join a combined-cycle block later |
steam_turbine | The steam turbines in a combined-cycle plant, which run on that steam |
reciprocating_engine | Large natural gas engines, like those from Caterpillar, INNIO Jenbacher and Wärtsilä |
fuel_cell | Equipment that makes electricity from gas without burning it, like Bloom Energy’s servers |
combined_cycle records for its gas turbines and steam_turbine records for its steam turbines. Add both for the plant’s full combined-cycle capacity.
Capacity
nameplate_capacity_mw is the nameplate capacity of all the unit’s machines together: the number of machines times the manufacturer’s rating for each one. Manufacturers rate gas turbines at 59°F at sea level and engines at 77°F, so one machine has one rating wherever it’s installed. capacity_basis says where the number comes from:
| Basis | Description |
|---|---|
rating | unit_count × iso_rating_mw: the manufacturer’s data sheet rating for the exact version a document names |
stated | A rating a filing or announcement gives, for equipment Cleanview has no data sheet for |
estimate | Cleanview’s estimate, when the version isn’t confirmed and the versions differ by more than about 10%. It uses the developer’s own figure first, then the version the evidence points to, then the middle of the permitted range |
Status
status uses the same five values as Gas Plants. Canceled units are included with status Canceled, and Gas Plants leaves them out of its capacity figures.
Example Requests
Get All Gas Plant Units
Get All Gas Plant Units
curl -H "x-api-key: your_api_key_here" \
"https://api.cleanview.co/api/v1/gas-plant-units"
Response Schema
{
"success": true,
"metadata": {
"total_count": 209,
"generated_at": "2026-10-15T16:00:00.000Z"
},
"customer": {
"id": "test_user_001",
"name": "Test Developer"
},
"data": [
{
"id": 165,
"plant_id": 88,
"plant_name": "Apollo Power Generation Facility",
"developer": "Williams",
"campus_id": 243,
"county": "Wood",
"state": "OH",
"latitude": 41.463279,
"longitude": -83.626865,
"oem": "Siemens Energy",
"model": "SGT-800",
"model_family": "SGT-800",
"version": "62 MW rating",
"equipment_type": "Gas turbine",
"configuration": "simple_cycle",
"unit_count": 2,
"iso_rating_mw": 62.5,
"nameplate_capacity_mw": 125,
"capacity_basis": "rating",
"status": "Under Construction",
"operating_year": 2027,
"source_1": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-06-02_air-permit_ohio-epa-final-pti-p0139272-will-power-oh-apollo.pdf",
"source_2": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-06_utility-filing_opsb-25-973-response-to-staff-data-request-1-unit-mw-table.pdf",
"source_3": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-27_utility-filing_opsb-25-973-staff-report-of-investigation.pdf"
},
{
"id": 170,
"plant_id": 88,
"plant_name": "Apollo Power Generation Facility",
"developer": "Williams",
"campus_id": 243,
"county": "Wood",
"state": "OH",
"latitude": 41.463279,
"longitude": -83.626865,
"oem": "Caterpillar",
"model": "G3520",
"model_family": "G3520",
"version": null,
"equipment_type": "Reciprocating engine",
"configuration": "reciprocating_engine",
"unit_count": 6,
"iso_rating_mw": null,
"nameplate_capacity_mw": 15,
"capacity_basis": "stated",
"status": "Under Construction",
"operating_year": 2027,
"source_1": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-06-02_air-permit_ohio-epa-final-pti-p0139272-will-power-oh-apollo.pdf",
"source_2": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-06_utility-filing_opsb-25-973-response-to-staff-data-request-1-unit-mw-table.pdf",
"source_3": "https://storage.googleapis.com/data-center-source-files/gas-plants/88__meta-bowling-green-power-plant/2026-01-27_utility-filing_opsb-25-973-staff-report-of-investigation.pdf"
}
]
}
Response Fields
Metadata Section
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates if the request was successful |
total_count | number | Total number of unit records returned |
generated_at | string | ISO 8601 timestamp when response was generated |
Unit Fields
| Field | Type | Description |
|---|---|---|
id | number | Unique identifier for the unit |
plant_id | number | The plant, as id in Gas Plants |
plant_name | string | Name of the plant |
developer | string | Company that builds and owns the plant |
campus_id | number | The data center campus the plant powers, as id in Data Center Campuses |
county | string | County where the plant’s generation equipment is |
state | string | Two-letter state code |
latitude | number | Latitude of the plant’s generation equipment, not the data center campus |
longitude | number | Longitude of the plant’s generation equipment, not the data center campus |
oem | string | Equipment manufacturer, like Siemens Energy or Caterpillar |
model | string | Model as the manufacturer sells it, like SGT-800. null when a document names only the manufacturer |
model_family | string | The machine the model is built on: GE’s TM2500 and LM2500XPRESS are both LM2500 |
version | string | The model’s rated version, when a document identifies it |
equipment_type | string | Kind of machine: Gas turbine, Steam turbine, Reciprocating engine or Fuel cell |
configuration | string | How it generates: simple_cycle, combined_cycle, steam_turbine, reciprocating_engine or fuel_cell (see Configuration) |
unit_count | number | Number of machines in the unit |
iso_rating_mw | number | One machine’s rating from the manufacturer’s data sheet, at standard conditions (MW). null when the version isn’t known |
nameplate_capacity_mw | number | Nameplate capacity of all the unit’s machines together (MW) |
capacity_basis | string | Where the capacity comes from: rating, stated or estimate (see Capacity) |
status | string | Announced, Permitted, Under Construction, Operating or Canceled (see Status) |
operating_year | number | Year the unit began generating, or Cleanview’s estimate of when it will |
source_1 | string | Cleanview’s archived copy of a document behind the record |
source_2 | string | Cleanview’s archived copy of a document behind the record |
source_3 | string | Cleanview’s archived copy of a document behind the record |
Null Values:
null means Cleanview doesn’t know the value yet, not zero. oem, model, model_family and version are null until they’re public; iso_rating_mw when the version isn’t known; equipment_type and configuration for the few units whose configuration isn’t known; unit_count, nameplate_capacity_mw and capacity_basis when the number or size of the machines isn’t public yet.Authorizations
API key authentication using x-api-key header
Response
Successful response with all gas plant units