OrbTop

Ember Electricity Data Scraper - Generation, CO2 Intensity

BUSINESSDEVELOPER TOOLSOTHER

Ember Global Electricity Data Scraper

Pull country-level electricity-sector data from Ember, the leading independent global electricity think tank. Returns generation by fuel (TWh), capacity (GW), CO2 emissions (MtCO2), CO2 intensity (gCO2/kWh), and demand for ~250 countries — yearly back to 1985, monthly back to 2010. The closest free substitute for the IEA's paywalled Electricity Information product.


Ember Scraper Features

  • Streams four Ember CSV datasets: yearly global, yearly EU, monthly global, monthly EU
  • Returns 14 fields per record: country, ISO-3 code, continent, year, month, category, subcategory, variable, unit, value, source dataset
  • Filters by period type (yearly, monthly, or both), geographic scope (global, Europe, or both), country list, year range, and variable name
  • Covers ~250 countries plus Ember regional groupings, EU/OECD/G20/G7/ASEAN aggregates
  • All data published under CC-BY 4.0 — no API key, no auth, no proxy
  • Direct GCS download via stream-parsed CSV — fast and cheap
  • Pay-per-event pricing tied to records returned

Who Uses Ember Electricity Data?

  • Energy analysts — track fuel-mix shifts (coal vs. gas vs. renewables) across countries year over year
  • Climate researchers — pull CO2 emissions and intensity series for grid decarbonization modeling
  • Policy teams — benchmark national electricity mixes against EU, G20, or OECD aggregates
  • ESG and sustainability reporting — feed gCO2/kWh figures into Scope 2 emissions calculations for facilities in any country
  • Quant funds and traders — wire generation, demand, and capacity series into utility-sector models without paying IEA subscription rates
  • Journalists and policy writers — cite Ember's open-license data for reporting on the energy transition

How Ember Scraper Works

  1. You pick a period type, geographic scope, and optionally a country list, year range, and variable filter.
  2. The scraper downloads the matching Ember CSV(s) directly from Ember's public GCS bucket — no API key, no rate limiting.
  3. Each CSV row is parsed in stream, filtered against your inputs, and normalized into a single output schema with year, month, and source-dataset fields.
  4. Records are emitted up to your maxItems cap, batched in groups of 500 for efficient downstream consumption.

Input

CO2 intensity for Germany and France, 2015 to 2024:

{
  "periodType": "yearly",
  "scope": "europe",
  "countries": ["Germany", "France"],
  "variables": ["CO2 intensity"],
  "yearFrom": 2015,
  "yearTo": 2024,
  "maxItems": 0
}

Global monthly generation since 2020:

{
  "periodType": "monthly",
  "scope": "global",
  "yearFrom": 2020,
  "yearTo": 2026,
  "variables": ["Generation"],
  "maxItems": 0
}

Everything Ember has on India:

{
  "periodType": "both",
  "scope": "global",
  "countries": ["India", "IND"],
  "maxItems": 0
}
Field Type Default Description
periodType string "yearly" Period granularity: yearly, monthly, or both
scope string "global" Geographic scope: global (~250 countries), europe (EU + wider Europe with more detail), or both
countries array [] Country names or ISO-3 codes to include. Empty = all countries.
yearFrom integer 2010 Earliest year (inclusive). Yearly data starts 1985; monthly starts 2010.
yearTo integer 2024 Latest year (inclusive)
variables array [] Variable names to include (e.g. "CO2 intensity", "Generation", "Share of generation"). Empty = all.
maxItems integer 10 Maximum number of records to return. 0 = no limit.

Ember Scraper Output Fields

{
  "country": "Germany",
  "country_iso3": "DEU",
  "continent": "Europe",
  "ember_region": "Europe",
  "period_type": "yearly",
  "year": 2023,
  "month": null,
  "category": "Power sector emissions",
  "subcategory": null,
  "variable": "CO2 intensity",
  "unit": "gCO2/kWh",
  "value": 381.4,
  "source_dataset": "ember-yearly-eu"
}
Field Type Description
country string Country or region name (e.g. "Germany", "European Union")
country_iso3 string ISO-3 country code (e.g. "DEU")
continent string Continent (e.g. "Europe", "Asia")
ember_region string Ember's regional grouping (e.g. "Europe", "Latin America and Caribbean")
period_type string yearly or monthly
year integer Year (e.g. 2023)
month integer Month 1-12 for monthly rows, null for yearly rows
category string Data category (e.g. "Electricity generation", "Capacity", "Electricity demand")
subcategory string Fuel or subcategory (e.g. "Coal", "Gas", "Solar", "Wind", "Hydro", "Nuclear", "Clean", "Fossil")
variable string Metric name (e.g. "Generation", "Share of generation", "CO2 intensity", "Demand")
unit string Unit of measurement (TWh, GW, gCO2/kWh, MtCO2, %, MWh)
value number Numeric value in the indicated unit
source_dataset string Source dataset: ember-yearly-global, ember-yearly-eu, ember-monthly-global, or ember-monthly-eu

FAQ

How do I get electricity generation data by country?

Ember Scraper accepts a country list (names or ISO-3 codes), a year range, and an optional variable filter. Run it and you get one record per country-year-fuel-variable combination. Generation, capacity, CO2 emissions, CO2 intensity, and demand all come from the same run.

Does Ember Scraper need an API key or proxies?

No. Ember publishes its full-release CSV datasets publicly under CC-BY 4.0. The scraper hits Ember's GCS bucket directly — no auth, no rate limit, no proxy.

What is the difference between Ember and IEA electricity data?

Ember Scraper pulls from Ember's annual and monthly global electricity datasets, which cover roughly the same surface as the IEA's Electricity Information product. Ember's data is free and CC-BY licensed. The IEA's equivalent costs several thousand dollars per year. Coverage differs slightly — Ember leans toward power sector and emissions; IEA covers a broader energy balance — but for grid-level generation, capacity, and CO2 work, they overlap heavily.

How far back does the data go?

Ember Scraper covers yearly data back to 1985 and monthly data back to 2010, for both global (~250 countries) and Europe (more granular EU coverage) datasets.

Can I get just one fuel type, like solar or coal?

Ember Scraper organizes fuel breakdowns under the subcategory field. Filter the output dataset by subcategory after the run — Solar, Coal, Gas, Nuclear, Wind, Hydro, Clean, Fossil, and a few more — or use the variables input to narrow the variable axis (e.g. Generation only).

What attribution is required?

Ember publishes under CC-BY 4.0, so attribute Ember as the data source in any published work. The exact citation Ember requests is on their site — typically "Source: Ember" with a link to ember-energy.org is sufficient.


Need More Features?

Need custom fields, filters, or a different target site? File an issue or get in touch.

Why Use Ember Scraper?

  • Free substitute for IEA Electricity Information — Generation by fuel, capacity, CO2 intensity, and demand for ~250 countries, without the IEA subscription cost.
  • CSV streamed direct from source — No HTML scraping, no rate limits, no auth — the actor downloads Ember's published CSVs and parses them in stream, so a full pull is cheap and fast.
  • One unified schema across four datasets — Yearly global, yearly EU, monthly global, and monthly EU collapse into the same field structure, with source_dataset and period_type so you can recombine or split however you want.