{"openapi":"3.1.0","info":{"title":"Datacenter Source API","version":"1.0.0","description":"Read-only API for a sourced map of US data centers. Every figure links to its source and carries an evidence level (confirmed / announced / estimated). MW totals are floors: most facilities don't disclose power. No key required; please cache (responses carry ETags) and keep request rates modest.","license":{"name":"ODbL 1.0 (compiled database); per-source terms apply","url":"https://opendatacommons.org/licenses/odbl/1-0/"}},"servers":[{"url":"/api/v1"}],"paths":{"/facilities":{"get":{"summary":"List facilities","description":"Facilities matching any map filter, largest first.","parameters":[{"name":"q","in":"query","required":false,"description":"Free text: name, company, city","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"operating, expanding, under_construction, planned, cancelled, unknown (comma-separated)","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"hyperscale, ai_campus, colocation, carrier_hotel, enterprise, government, crypto_hpc, edge, unknown","schema":{"type":"string"}},{"name":"state","in":"query","required":false,"description":"Two-letter codes, e.g. VA,TX","schema":{"type":"string"}},{"name":"org","in":"query","required":false,"description":"Company ids (operator, owner, tenant or end user), from /api/v1/companies","schema":{"type":"string"}},{"name":"iso","in":"query","required":false,"description":"PJM, ERCOT, MISO, SPP, CAISO, NYISO, ISO-NE…","schema":{"type":"string"}},{"name":"utility","in":"query","required":false,"description":"Utility company ids","schema":{"type":"string"}},{"name":"minMw","in":"query","required":false,"description":"Minimum current-or-planned MW","schema":{"type":"string"}},{"name":"hasPower","in":"query","required":false,"description":"1 = only facilities with a power figure","schema":{"type":"string"}},{"name":"verify","in":"query","required":false,"description":"verified_operating, grid_backed, under_construction, in_development, announced_only, unverified","schema":{"type":"string"}},{"name":"ttp","in":"query","required":false,"description":"Time to power: energized, lt1, 1to2, 2to4, gt4, unknown","schema":{"type":"string"}},{"name":"stage","in":"query","required":false,"description":"pre_grid, grid_study, grid_signed, construction, operating","schema":{"type":"string"}},{"name":"queue","in":"query","required":false,"description":"1 = has an interconnection-queue record","schema":{"type":"string"}},{"name":"onsite","in":"query","required":false,"description":"1 = has documented on-site / dedicated generation","schema":{"type":"string"}},{"name":"near","in":"query","required":false,"description":"lat,lng — only facilities within `radius` miles, nearest first","schema":{"type":"string"}},{"name":"radius","in":"query","required":false,"description":"10, 25 (default) or 50 miles, with `near`","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size. JSON: default 100, max 1000. CSV: default and max 5000.","schema":{"type":"integer","minimum":1}},{"name":"offset","in":"query","required":false,"description":"Rows to skip (follow `meta.next` or the `Link: rel=next` header).","schema":{"type":"integer","minimum":0}},{"name":"format","in":"query","required":false,"description":"`json` (default) or `csv`. Every CSV row includes source URLs, evidence levels and as-of dates.","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"A page of facilities. Headers: ETag, Cache-Control, X-Total-Count, Link (rel=next).","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"meta":{"$ref":"#/components/schemas/PageMeta"},"attribution":{"$ref":"#/components/schemas/Attribution"}}}},"text/csv":{"schema":{"type":"string"}}}},"304":{"description":"Not modified (If-None-Match matched the ETag)."}}}},"/facilities/{slug}":{"get":{"summary":"One facility","description":"Resolved fields (value, evidence level, confidence, asOf, source ids, alternatives), parties, Power Reality, verification, time to power, interconnection records, timeline, recent changes, every claim and every cited source.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"Facility slug or id"}],"responses":{"200":{"description":"The facility"},"304":{"description":"Not modified"},"404":{"description":"Not found"}}}},"/companies":{"get":{"summary":"List companies","description":"Companies linked to at least one facility, with facility counts, states, roles and MW floors split by evidence level.","parameters":[{"name":"kind","in":"query","required":false,"description":"hyperscaler, colocation, neocloud, ai_lab, utility, developer, …","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Name or alias contains","schema":{"type":"string"}},{"name":"role","in":"query","required":false,"description":"operator, owner, developer, tenant, end_user, utility, …","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size. JSON: default 100, max 1000. CSV: default and max 5000.","schema":{"type":"integer","minimum":1}},{"name":"offset","in":"query","required":false,"description":"Rows to skip (follow `meta.next` or the `Link: rel=next` header).","schema":{"type":"integer","minimum":0}},{"name":"format","in":"query","required":false,"description":"`json` (default) or `csv`. Every CSV row includes source URLs, evidence levels and as-of dates.","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"A page of companies. Headers: ETag, Cache-Control, X-Total-Count, Link (rel=next).","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"meta":{"$ref":"#/components/schemas/PageMeta"},"attribution":{"$ref":"#/components/schemas/Attribution"}}}},"text/csv":{"schema":{"type":"string"}}}},"304":{"description":"Not modified (If-None-Match matched the ETag)."}}}},"/companies/{id}":{"get":{"summary":"One company","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The company and its facilities with roles"},"404":{"description":"Not found"}}}},"/states":{"get":{"summary":"Per-state totals and coverage","description":"Facilities, MW floors (online / construction / planned) with evidence mix, coverage (share with a power figure, share with confirmed evidence) and Power Reality totals.","parameters":[{"name":"state","in":"query","required":false,"description":"Comma-separated codes","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"`json` (default) or `csv`. Every CSV row includes source URLs, evidence levels and as-of dates.","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"A page of states (not paginated; ≤ 51 rows). Headers: ETag, Cache-Control, X-Total-Count, Link (rel=next).","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"meta":{"$ref":"#/components/schemas/PageMeta"},"attribution":{"$ref":"#/components/schemas/Attribution"}}}},"text/csv":{"schema":{"type":"string"}}}},"304":{"description":"Not modified (If-None-Match matched the ETag)."}}}},"/changes":{"get":{"summary":"Dated, sourced changes","description":"Capacity, status, permit, grid-request and construction changes over the last three years. A change means the same source reported a new value later.","parameters":[{"name":"state","in":"query","required":false,"description":"Two-letter state code","schema":{"type":"string"}},{"name":"org","in":"query","required":false,"description":"Company id (alias: company)","schema":{"type":"string"}},{"name":"facility","in":"query","required":false,"description":"Facility id or slug","schema":{"type":"string"}},{"name":"kind","in":"query","required":false,"description":"value (a source reported a new value) or milestone (observed construction/permit/grid milestone)","schema":{"type":"string"}},{"name":"level","in":"query","required":false,"description":"confirmed, announced or estimated","schema":{"type":"string"}},{"name":"hideEstimates","in":"query","required":false,"description":"1 = drop estimated (satellite / modeled) changes","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"ISO date, inclusive","schema":{"type":"string"}},{"name":"until","in":"query","required":false,"description":"ISO date, inclusive","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size. JSON: default 100, max 1000. CSV: default and max 5000.","schema":{"type":"integer","minimum":1}},{"name":"offset","in":"query","required":false,"description":"Rows to skip (follow `meta.next` or the `Link: rel=next` header).","schema":{"type":"integer","minimum":0}},{"name":"format","in":"query","required":false,"description":"`json` (default) or `csv`. Every CSV row includes source URLs, evidence levels and as-of dates.","schema":{"type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"A page of change events. Headers: ETag, Cache-Control, X-Total-Count, Link (rel=next).","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"meta":{"$ref":"#/components/schemas/PageMeta"},"attribution":{"$ref":"#/components/schemas/Attribution"}}}},"text/csv":{"schema":{"type":"string"}}}},"304":{"description":"Not modified (If-None-Match matched the ETag)."}}}}},"components":{"schemas":{"EvidenceLevel":{"type":"string","enum":["confirmed","announced","estimated"],"description":"Evidence level (see /sources#evidence-levels)"},"PageMeta":{"type":"object","properties":{"total":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"next":{"type":"string","description":"URL of the next page, when there is one"},"dataAsOf":{"type":"string","description":"Date of the data build","format":"date"}}},"Attribution":{"type":"object","properties":{"license":{"type":"string"},"credit":{"type":"array","items":{"type":"string"}},"terms":{"type":"string"},"note":{"type":"string"}}}}}}