{"openapi":"3.1.0","info":{"title":"CapexAtlas API","version":"v1","description":"Read-only JSON access to CapexAtlas: 47,000+ European energy assets, 806 transmission pipelines, 997 tracked owner entities, and MODELLED per-asset economics. Cross-referenced with GLEIF, S&P CapIQ, Refinitiv PermID, UK Companies House, US SEC, US EIA.","contact":{"name":"CapexAtlas","url":"https://capexatlas.com"},"license":{"name":"Proprietary — usage governed by tier license"}},"servers":[{"url":"https://capexatlas.com","description":"Production"},{"url":"http://localhost:3000","description":"Local dev"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"Meta","description":"Dataset provenance + tier information"},{"name":"Assets","description":"Individual energy assets with modelled economics"},{"name":"Owners","description":"Owner entities with portfolio aggregation"},{"name":"Countries","description":"Per-country roll-ups"},{"name":"Wiki","description":"GEM wiki page structured extract (unauthenticated)"}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"http","scheme":"bearer","description":"API key issued by CapexAtlas. Local dev accepts `demo-explorer-key`. Production keys are configured via the `ATLAS_API_KEYS` env var (`key:tier` pairs). Tiers: `explorer` (100 rows/request, 25 req/min), `analyst` (1,000 rows/request, 300 req/min), `team` (5,000 rows/request, 3,000 req/min)."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]},"Meta":{"type":"object","properties":{"total":{"type":"integer"},"page":{"type":"integer"},"pageSize":{"type":"integer"},"hasMore":{"type":"boolean"},"requestedAt":{"type":"string","format":"date-time"},"dataset":{"type":"string","example":"GEM Mar 2026"},"tier":{"type":"string","enum":["explorer","analyst","team"]},"source":{"type":"string","enum":["json","postgres"]}}},"Economics":{"type":"object","description":"MODELLED reference-based economics. Scale-comparison only — excludes fuel, CO₂, subsidies, PPAs, capacity payments, project-specific terms. Never use as a valuation.","properties":{"applicable":{"type":"boolean"},"notApplicableReason":{"type":"string","nullable":true},"capexEurEst":{"type":"number","nullable":true,"description":"Installed capex, EUR (greenfield reference)."},"annualRevenueEurEst":{"type":"number","nullable":true,"description":"Gross annual revenue, EUR (no fuel/CO₂ deducted)."},"paybackYears":{"type":"number","nullable":true,"description":"Simple capex/revenue. Not IRR."},"capacityFactorAssumed":{"type":"number","nullable":true},"revenueEurPerMwhAssumed":{"type":"number","nullable":true},"capexUsdPerKwAssumed":{"type":"number","nullable":true},"refLabel":{"type":"string"},"method":{"type":"string"},"refs":{"type":"array","items":{"type":"string"}}}},"PortfolioEconomics":{"type":"object","description":"Equity-weighted aggregation of per-asset Economics across power assets in an owner's portfolio.","properties":{"capexEurEst":{"type":"number"},"annualRevenueEurEst":{"type":"number"},"paybackYears":{"type":"number","nullable":true},"modelledAssetCount":{"type":"integer"},"excludedAssetCount":{"type":"integer"},"modelledEquityMw":{"type":"number"},"method":{"type":"string"},"refs":{"type":"array","items":{"type":"string"}}}},"AssetListRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"group":{"type":"string","example":"power_gas"},"fuel":{"type":"string","nullable":true},"technology":{"type":"string","nullable":true},"country":{"type":"string"},"status":{"type":"string"},"capacity":{"type":"number","nullable":true,"description":"MW"},"year":{"type":"integer","nullable":true},"lng":{"type":"number","nullable":true},"lat":{"type":"number","nullable":true},"ownerCount":{"type":"integer"},"topOwnerId":{"type":"string","nullable":true},"topOwnerName":{"type":"string"},"topOwnerShare":{"type":"number","nullable":true}}},"AssetDetail":{"allOf":[{"$ref":"#/components/schemas/AssetListRow"},{"type":"object","properties":{"unit":{"type":"string","nullable":true},"subregion":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"chp":{"type":"boolean","nullable":true},"ccs":{"type":"boolean","nullable":true},"h2_capable":{"type":"boolean","nullable":true},"retired_year":{"type":"integer","nullable":true},"location_accuracy":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true,"description":"GEM wiki slug, when linked."},"owners":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"share":{"type":"number","nullable":true,"description":"Ownership percent 0–100."}}}},"economics":{"$ref":"#/components/schemas/Economics"}}}]},"OwnerListRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"hqCountry":{"type":"string","nullable":true},"publiclyListed":{"type":"boolean","nullable":true},"legalType":{"type":"string","nullable":true},"assetCount":{"type":"integer"},"equityMw":{"type":"number"},"coalShare":{"type":"number"},"fossilShare":{"type":"number"},"renewShare":{"type":"number"},"countryCount":{"type":"integer"},"externalIdCount":{"type":"integer"}}},"OwnerDetail":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"hqCountry":{"type":"string","nullable":true},"registrationCountry":{"type":"string","nullable":true},"publiclyListed":{"type":"boolean","nullable":true},"legalType":{"type":"string","nullable":true},"homePage":{"type":"string","nullable":true},"externalIds":{"type":"object","nullable":true,"properties":{"lei":{"type":"string","nullable":true},"refinitivPermId":{"type":"string","nullable":true},"spCapIq":{"type":"string","nullable":true},"ukCompaniesHouse":{"type":"string","nullable":true},"usSecCik":{"type":"string","nullable":true},"usEiaId":{"type":"string","nullable":true}}},"portfolio":{"type":"object","nullable":true,"properties":{"assetCount":{"type":"integer"},"equityMw":{"type":"number"},"coalShare":{"type":"number"},"fossilShare":{"type":"number"},"renewShare":{"type":"number"},"countryCount":{"type":"integer"},"groupMix":{"type":"object","additionalProperties":{"type":"number"}},"economics":{"$ref":"#/components/schemas/PortfolioEconomics","nullable":true}}}}},"WikiTable":{"type":"object","properties":{"title":{"type":"string"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}}}},"WikiSection":{"type":"object","properties":{"heading":{"type":"string"},"text":{"type":"string"},"subsections":{"type":"array","items":{"$ref":"#/components/schemas/WikiSection"}}}},"WikiExtract":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"tables":{"type":"array","items":{"$ref":"#/components/schemas/WikiTable"}},"sections":{"type":"array","items":{"$ref":"#/components/schemas/WikiSection"}},"citations":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"label":{"type":"string"}}}},"fetchedAt":{"type":"string","format":"date-time"},"sourceUrl":{"type":"string"}}}},"parameters":{"Page":{"name":"page","in":"query","schema":{"type":"integer","default":0}},"PageSize":{"name":"pageSize","in":"query","schema":{"type":"integer","default":100},"description":"Clamped by tier."}}},"paths":{"/api/v1/meta":{"get":{"tags":["Meta"],"summary":"Dataset provenance + tier limits","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/assets":{"get":{"tags":["Assets"],"summary":"List assets","description":"Filterable list. All filters are ANDed. `group` and `status` accept repeated values (OR within the dimension).","parameters":[{"name":"country","in":"query","schema":{"type":"string"},"description":"Exact country name (e.g. `Germany`)."},{"name":"group","in":"query","schema":{"type":"string"},"description":"Repeatable. e.g. `power_gas`."},{"name":"status","in":"query","schema":{"type":"string"},"description":"Repeatable. e.g. `operating`."},{"name":"capMin","in":"query","schema":{"type":"number"},"description":"Capacity floor, MW."},{"name":"capMax","in":"query","schema":{"type":"number"},"description":"Capacity ceiling, MW."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Free-text substring on name/country/owner."},{"name":"format","in":"query","schema":{"type":"string","enum":["json","geojson"],"default":"json"}},{"$ref":"#/components/parameters/Page"},{"$ref":"#/components/parameters/PageSize"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AssetListRow"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}}}}},"/api/v1/assets/{id}":{"get":{"tags":["Assets"],"summary":"Asset detail","description":"Full record including geometry, all owners, and MODELLED economics.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AssetDetail"}}}}}},"404":{"description":"Not found"}}}},"/api/v1/owners":{"get":{"tags":["Owners"],"summary":"List owners","parameters":[{"name":"country","in":"query","schema":{"type":"string"},"description":"HQ country."},{"name":"listing","in":"query","schema":{"type":"string","enum":["public","private"]}},{"name":"exposure","in":"query","schema":{"type":"string","enum":["coal","fossil","renew"]}},{"name":"minEquityMw","in":"query","schema":{"type":"number"}},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["equityMw","assetCount","name"],"default":"equityMw"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"$ref":"#/components/parameters/Page"},{"$ref":"#/components/parameters/PageSize"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OwnerListRow"}},"meta":{"$ref":"#/components/schemas/Meta"}}}}}}}}},"/api/v1/owners/{id}":{"get":{"tags":["Owners"],"summary":"Owner detail","description":"Includes external register IDs and MODELLED portfolio economics (null when the owner holds no power assets).","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OwnerDetail"}}}}}},"404":{"description":"Not found"}}}},"/api/v1/countries":{"get":{"tags":["Countries"],"summary":"List countries with headline stats","responses":{"200":{"description":"OK"}}}},"/api/v1/countries/{name}":{"get":{"tags":["Countries"],"summary":"Country detail","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Not found"}}}},"/api/wiki/deep/{slug}":{"get":{"tags":["Wiki"],"summary":"GEM wiki structured extract","description":"Parses the full GEM wiki page for an asset into structured tables + sections + citations. Cached 7 days. **Unauthenticated** — no API key required (currently).","security":[],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"GEM wiki page slug, e.g. `Hazelwood_power_station`."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WikiExtract"}}}},"404":{"description":"Slug not found on gem.wiki"},"502":{"description":"Upstream MediaWiki API error"}}}}}}