Get all data center campuses
curl --request GET \
--url https://api.cleanview.co/api/v1/data-center-campuses \
--header 'x-api-key: <api-key>'import requests
url = "https://api.cleanview.co/api/v1/data-center-campuses"
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/data-center-campuses', 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/data-center-campuses",
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/data-center-campuses"
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/data-center-campuses")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cleanview.co/api/v1/data-center-campuses")
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": 1445,
"generated_at": "2026-10-15T16:00:00.000Z"
},
"customer": {
"id": "test_user_001",
"name": "Test Developer"
},
"data": [
{
"id": 358,
"campus_name": "Google Cedar Rapids",
"developer": "Google",
"status": "Under Construction",
"operating_capacity_mw": 97.4,
"under_construction_capacity_mw": 200.7,
"planned_capacity_mw": 309.9,
"total_capacity_mw": 608,
"building_count": 6,
"buildings_with_capacity": 6,
"first_operating_year": 2026,
"last_operating_year": 2030,
"building_square_footage": 846651,
"tenant_name": null,
"end_user_name": null,
"has_onsite_gas": false,
"county": "Linn",
"state": "IA",
"latitude": 41.9182,
"longitude": -91.7226,
"utility": "Alliant Energy",
"utility_parent": "Alliant Energy",
"utility_eia_id": 9417,
"balancing_authority": "MISO",
"balancing_authority_code": "MISO",
"iso_rto": "MISO"
},
{
"id": 160,
"campus_name": "Stargate Abilene",
"developer": "Crusoe",
"status": "Under Construction",
"operating_capacity_mw": 300,
"under_construction_capacity_mw": 900,
"planned_capacity_mw": null,
"total_capacity_mw": 1200,
"building_count": 8,
"buildings_with_capacity": 8,
"first_operating_year": 2025,
"last_operating_year": 2026,
"building_square_footage": 3920000,
"tenant_name": "Oracle",
"end_user_name": "OpenAI",
"has_onsite_gas": true,
"county": "Taylor",
"state": "TX",
"latitude": 32.50018025,
"longitude": -99.783973125,
"utility": "AEP Texas",
"utility_parent": "American Electric Power",
"utility_eia_id": 20404,
"balancing_authority": "ERCOT",
"balancing_authority_code": "ERCO",
"iso_rto": "ERCOT"
}
]
}
Data Centers
Data Center Campuses
Retrieve data center campuses with status, capacity and building counts rolled up from their buildings
GET
/
data-center-campuses
Get all data center campuses
curl --request GET \
--url https://api.cleanview.co/api/v1/data-center-campuses \
--header 'x-api-key: <api-key>'import requests
url = "https://api.cleanview.co/api/v1/data-center-campuses"
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/data-center-campuses', 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/data-center-campuses",
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/data-center-campuses"
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/data-center-campuses")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cleanview.co/api/v1/data-center-campuses")
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": 1445,
"generated_at": "2026-10-15T16:00:00.000Z"
},
"customer": {
"id": "test_user_001",
"name": "Test Developer"
},
"data": [
{
"id": 358,
"campus_name": "Google Cedar Rapids",
"developer": "Google",
"status": "Under Construction",
"operating_capacity_mw": 97.4,
"under_construction_capacity_mw": 200.7,
"planned_capacity_mw": 309.9,
"total_capacity_mw": 608,
"building_count": 6,
"buildings_with_capacity": 6,
"first_operating_year": 2026,
"last_operating_year": 2030,
"building_square_footage": 846651,
"tenant_name": null,
"end_user_name": null,
"has_onsite_gas": false,
"county": "Linn",
"state": "IA",
"latitude": 41.9182,
"longitude": -91.7226,
"utility": "Alliant Energy",
"utility_parent": "Alliant Energy",
"utility_eia_id": 9417,
"balancing_authority": "MISO",
"balancing_authority_code": "MISO",
"iso_rto": "MISO"
},
{
"id": 160,
"campus_name": "Stargate Abilene",
"developer": "Crusoe",
"status": "Under Construction",
"operating_capacity_mw": 300,
"under_construction_capacity_mw": 900,
"planned_capacity_mw": null,
"total_capacity_mw": 1200,
"building_count": 8,
"buildings_with_capacity": 8,
"first_operating_year": 2025,
"last_operating_year": 2026,
"building_square_footage": 3920000,
"tenant_name": "Oracle",
"end_user_name": "OpenAI",
"has_onsite_gas": true,
"county": "Taylor",
"state": "TX",
"latitude": 32.50018025,
"longitude": -99.783973125,
"utility": "AEP Texas",
"utility_parent": "American Electric Power",
"utility_eia_id": 20404,
"balancing_authority": "ERCOT",
"balancing_authority_code": "ERCO",
"iso_rto": "ERCOT"
}
]
}
Overview
A campus is a site with one or more data center buildings or phases. This endpoint returns one record per campus, with its status, capacity, building count, tenants, location and grid connection rolled up from its buildings. The buildings themselves are on the Data Centers endpoint, where each carries its campus’scampus_id.
This is a “download link” style endpoint that returns all records in a single response. There is no pagination - every campus record is returned at once.
Which Campuses Are Included
Campuses that have passed Cleanview’s review and have at least one building that isn’t canceled. Canceled buildings are left out of every figure: status, capacity, counts, years, size and tenants. A campus whose buildings are all canceled isn’t returned.Status Values
A campus’s status is rolled up from its buildings, ignoring canceled ones. A campus with operating buildings and a phase under construction isUnder Construction.
| Status | Description |
|---|---|
Under Construction | At least one building is under construction |
Operating | No building is under construction and at least one is operating |
Planned | Every building is planned |
Capacity
Capacity is facility power: the total power the campus draws from the grid, not its IT load.total_capacity_mw sums the campus’s buildings, and operating_capacity_mw, under_construction_capacity_mw and planned_capacity_mw split that sum by building status, so the three add up to the total.
Sums use the buildings that have a capacity. When buildings_with_capacity is less than building_count, some buildings have no known capacity and the totals are a lower bound. A capacity field is null when no building in it has a capacity, including when the campus has no buildings with that status.
IT capacity is on each building in Data Centers (it_capacity_mw). To total IT capacity by campus, join the buildings on campus_id and leave out canceled ones.
Grid Connection and On-Site Gas
has_onsite_gasistruewhen an on-site, behind-the-meter gas plant serves the campus.- The utility and balancing authority fields are set only when known with high confidence;
nullmeans unknown. A campus’s buildings in Data Centers carry the same values.
Example Requests
Get All Data Center Campuses
Get All Data Center Campuses
curl -H "x-api-key: your_api_key_here" \
"https://api.cleanview.co/api/v1/data-center-campuses"
Response Schema
{
"success": true,
"metadata": {
"total_count": 1445,
"generated_at": "2026-10-15T16:00:00.000Z"
},
"customer": {
"id": "test_user_001",
"name": "Test Developer"
},
"data": [
{
"id": 358,
"campus_name": "Google Cedar Rapids",
"developer": "Google",
"status": "Under Construction",
"operating_capacity_mw": 97.4,
"under_construction_capacity_mw": 200.7,
"planned_capacity_mw": 309.9,
"total_capacity_mw": 608,
"building_count": 6,
"buildings_with_capacity": 6,
"first_operating_year": 2026,
"last_operating_year": 2030,
"building_square_footage": 846651,
"tenant_name": null,
"end_user_name": null,
"has_onsite_gas": false,
"county": "Linn",
"state": "IA",
"latitude": 41.9182,
"longitude": -91.7226,
"utility": "Alliant Energy",
"utility_parent": "Alliant Energy",
"utility_eia_id": 9417,
"balancing_authority": "MISO",
"balancing_authority_code": "MISO",
"iso_rto": "MISO"
},
{
"id": 160,
"campus_name": "Stargate Abilene",
"developer": "Crusoe",
"status": "Under Construction",
"operating_capacity_mw": 300,
"under_construction_capacity_mw": 900,
"planned_capacity_mw": null,
"total_capacity_mw": 1200,
"building_count": 8,
"buildings_with_capacity": 8,
"first_operating_year": 2025,
"last_operating_year": 2026,
"building_square_footage": 3920000,
"tenant_name": "Oracle",
"end_user_name": "OpenAI",
"has_onsite_gas": true,
"county": "Taylor",
"state": "TX",
"latitude": 32.50018025,
"longitude": -99.783973125,
"utility": "AEP Texas",
"utility_parent": "American Electric Power",
"utility_eia_id": 20404,
"balancing_authority": "ERCOT",
"balancing_authority_code": "ERCO",
"iso_rto": "ERCOT"
}
]
}
Response Fields
Metadata Section
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates if the request was successful |
total_count | number | Total number of campus records returned |
generated_at | string | ISO 8601 timestamp when response was generated |
Campus Fields
| Field | Type | Description |
|---|---|---|
id | number | Unique identifier for the campus; buildings in Data Centers carry it as campus_id |
campus_name | string | Name of the campus |
developer | string | Developer or operator of the campus |
status | string | Campus status rolled up from its buildings (Planned, Under Construction, Operating) |
operating_capacity_mw | number | Facility power of the operating buildings in megawatts (MW) |
under_construction_capacity_mw | number | Facility power of the buildings under construction (MW) |
planned_capacity_mw | number | Facility power of the planned buildings (MW) |
total_capacity_mw | number | Facility power of all the buildings (MW); a lower bound when buildings_with_capacity is less than building_count |
building_count | number | Number of buildings or phases on the campus, not counting canceled ones |
buildings_with_capacity | number | Number of those buildings with a known facility power |
first_operating_year | number | Earliest year a building began or will begin operations |
last_operating_year | number | Latest year a building began or will begin operations |
building_square_footage | number | Total building area in square feet, summed over the buildings that have it |
tenant_name | string | Tenant(s) across the campus’s buildings, comma-separated when there are multiple |
end_user_name | string | End user(s) across the campus’s buildings, comma-separated when there are multiple |
has_onsite_gas | boolean | true when an on-site, behind-the-meter gas plant serves the campus |
county | string | County where the campus is located |
state | string | Two-letter state code where the campus is located |
latitude | number | Latitude coordinate of the campus |
longitude | number | Longitude coordinate of the campus |
utility | string | Retail utility whose service territory the campus is in |
utility_parent | string | The utility’s parent company; null for co-ops, municipal and public utilities |
utility_eia_id | number | The utility’s EIA utility number (EIA-861) |
balancing_authority | string | Balancing authority the campus is in |
balancing_authority_code | string | The balancing authority’s EIA-930 code (e.g. ERCO, PJM, SOCO) |
iso_rto | string | ISO/RTO the campus is in: PJM, ERCOT, MISO, SPP, CAISO, NYISO, ISO-NE, or Non-ISO |
Null Values: Fields are
null when the information isn’t available. The capacity fields are null when no building in them has a capacity, first_operating_year and last_operating_year when no building has an operating year, and latitude and longitude for the few campuses without coordinates. tenant_name and end_user_name are only populated where a tenant or end user has been publicly identified. The utility and balancing authority fields are null unless known with high confidence.Data Updates
Campus figures are computed from the building records in Data Centers on every request, so the two endpoints always agree.Authorizations
API key authentication using x-api-key header
Response
Successful response with all data center campuses