rastriq. Talk to us →
Rastriq / EU ETS emissions

Who emits CO2 in Europe, how much and since when.

The EU Emissions Trading System register (EU Transaction Log) as one table: power plants, factories, aircraft operators and shipping companies, with operator, LEI, activity, permit and address, plus verified emissions, free allocation and surrendered allowances for every year since 2005. In Delta mode you only receive what changes.

Quick answer: The roughly 23,500 installations and operators in the EU Emissions Trading System (EU Transaction Log) in one table: operator, LEI, activity, permit and verified emissions, free allocation and surrendered allowances for every year since 2005, with a Delta mode that returns only openings, closures and newly verified emissions. Run it with the Rastriq public actor on Apify; the sample of real rows downloads without signing up.

23,500
Installations and operators
2005
First year of verified emissions
30+
Countries in the system

What the EU ETS register is

The European Commission publishes the EU Transaction Log every day split across several files, with one row per installation per year on a fixed 2005-2030 grid.

One row per installation. The actor joins the files, keeps only the years with data and computes the latest-year figures: verified emissions, previous year, % change, free allocation, surrendered allowances and their gap, the lifetime total and the full yearly history.

Source calendar. Verified emissions for year N are reported by 31 March of N+1 and allowances are surrendered by 30 September, so the latest-year figures can move during that period.

TypeWhat it is
stationary_installationStationary installation: power plants, cement, steel, refineries, chemicals…
aircraft_operatorAircraft operator
maritime_operatorShipping company
ets2_regulated_entityETS2 fuel supplier

Installation types in the actor filter. Activity also comes with its EUTL code (20 combustion, 24 steel, 29 cement clinker…).

What the source does not keep. The Commission publishes the picture of the day, not a log of openings, closures or newly verified emissions. The actor does: in Delta mode every run compares the complete file with the previous one and returns only what is new (new), what changed (changed, with changed_fields and the old values in previous_values) and what disappeared (removed).

Filters never fool the history. The actor always reads the whole source; filters only decide which rows you receive. So a removal is never missed or invented because of a filter, and runs where the source has not changed finish in seconds and only charge the start fee.

What EU ETS data is used for

Five use cases: who uses them, what you do and which fields you need.

1 · Carbon market analysis
Energy and carbon traders and analystsCompare verified emissions with free allocation by installation, sector and country, and spot who surrenders fewer allowances than it emits.Result: short or long position by installation and sector.
Fields: verified_emissions_latest, free_allocation_latest, surrender_gap_latest, activity_type
2 · ESG and scope 1 emissions
ESG analysts and climate researchGroup by operator_lei to add up a listed group's emissions and follow its trend since 2005 with the yearly history.Result: emissions per group and historical trend.
Fields: operator_lei, operator_name, verified_emissions_total, history
3 · Prospecting for decarbonisation
CCS, heat-pump, hydrogen, efficiency and PPA vendorsFilter by activity, country and minimum emissions to list the highest-emitting installations in your sector, with city and operator.Result: a list of plants (companies, never people) sorted by emissions.
Fields: installation_name, activity_code, city, verified_emissions_latest
4 · Supply chain and CBAM
Procurement, sustainability and customsCement, steel, aluminium, fertiliser and hydrogen plants with their verified emissions, to document the footprint of your European suppliers.Result: verified emissions per supplier plant.
Fields: permit_id, activity_type, verified_emissions_latest, latest_emissions_year
5 · Alerts on openings, closures and new emissions
Analysts, consultancies and risk teamsSchedule Delta weekly: you receive new installations, closed ones and those reporting a new year of emissions (every spring).Result: one alert per change, without rereading the register.
Fields: change_type, changed_fields, previous_values, status

Installations in Spain and a first Delta picture

Real rows from existing runs. The sample downloads without signing up.

Stationary installations in Spain by verified emissions

installation_nameactivity_typecityverified_emissions_latestemissions_change_pct
ARCELORMITTAL ESPAÑA, S.A.Production of pig iron or steelAvilés y Gijón (Asturias)4,673,784-2.24
Aboño Generaciones Eléctricas, S.L.U.Combustion of fuelsAboño (Asturias)2,642,623-33.84
Repsol Petróleo S.A.Refining of mineral oilCartagena (Murcia)2,370,702-6.01
Repsol Petróleo S.A. - Instalación de…Refining of mineral oilLa Pobla de Mafumet…2,080,917-3.68
Petróleos del Norte S.A.Refining of mineral oilMuskiz (Vizcaya)1,956,497-7.53
Unión Eléctr. de Canarias Generación-CT…Combustion of fuelsGranadilla de Abona (Santa…1,941,6032.22
Unión Eléct.Canarias Generac.-CT Barranco…Combustion of fuelsSan Bartolomé de Tirajana…1,660,5052.08
C.T. Velilla del Río Carrión, Grupo 2Combustion of fuelsVelilla del Río Carrión…1,533,383-14.66

Real rows from a run on 24 October 2026: stationary installations in Spain sorted by latest verified emissions (tCO2e).

Delta baseline for Iceland and Liechtenstein

registry_codeinstallation_typeinstallation_namechange_type
ISmaritime_operatorAnglo-Eastern Cruise Management Inc.baseline
ISmaritime_operatorCompass Shipping 37 Corporation Limitedbaseline
ISstationary_installationGeymslusvæði Carbfix hf. á Hellisheiðibaseline
LIstationary_installationHilcona AGbaseline

First Delta run (baseline) on 12 October 2026 for Iceland and Liechtenstein: 57 rows, 37 aircraft operators, 12 stationary installations and 8 shipping companies.

No personal data. Some account holders are individuals (private aircraft or small farms). When the operator name is not recognisably an organisation, the name, registration number and street address are set to null and the row is flagged; the figures stay.

Inputs ready to copy

Paste the input into the actor's JSON tab and press Start. Countries use the registry code (ES, DE, PL…).

TaskInput (JSON)What it is for
Installations in Spain{"mode": "snapshot", "countries": ["ES"], "installationTypes": ["stationary_installation"], "maxItems": 100}The sample run.
Cement plants in Germany and Poland{"mode": "snapshot", "countries": ["DE", "PL"], "activityCodes": ["29"], "includeHistory": false}Example from the actor README.
Weekly alerts for a country{"mode": "delta", "countries": ["ES"], "minVerifiedEmissions": 0}First run as baseline, then only changes.
Full register{"mode": "snapshot", "maxItems": 0}About 23,500 installations with yearly history.

Rows are sorted by latest verified emissions, highest first.

ModeWhat it returnsWhen to use it
snapshotThe full list with your filtersOne-off extract
delta1st run: baseline. Then: new, changed and removedScheduled: alerts and history

Field dictionary

One row per installation.

FieldDescription
installation_keyStable registry-installation key
registry_code · installation_name · permit_id · eprtr_idRegistry country, name, permit and E-PRTR ID
installation_type · activity_code · activity_typeEUTL type and activity
statusactive or closed (permit revoked or final emissions year)
operator_name · operator_lei · operator_company_registration_numberAccount holder, normalised LEI and company number
latest_emissions_year · verified_emissions_latest · verified_emissions_previous_year · emissions_change_pctLatest verified year, previous year and change (tCO2e)
free_allocation_latest · surrendered_latest · surrender_gap_latestFree allocation, surrendered allowances and gap
verified_emissions_total · historyLifetime total and one entry per year with data
change_type · changed_fields · previous_valuesbaseline / new / changed / removed
quality_flagsoperator_redacted_possible_person, operator_no_legal_form, no_operator, missing_address, invalid_lei

How you receive the data

Run it yourself, receive it on a schedule or commission the project.

Apify
You run the actor with your filters and download Excel, CSV or JSON. $2 per 1,000 installations and $4 per 1,000 changes (Bronze plan); the full register with history costs about $47.
Channels: console, API, MCP
Recurring dataset
The full register or your countries and sectors, with the change history week by week.
Channels: S3, CSV, JSON
Custom project
Matching by LEI with your portfolio, suppliers or customers.

Frequently asked questions about EU ETS data

Where does the data come from?

From the European Commission's public daily EU Transaction Log (Union Registry) extracts. Each row carries the extract date in source_updated_at.

How often should I run it?

In Delta, weekly or daily is plenty: the source refreshes daily and verified emissions are reported once a year, in spring.

Why is the emissions figure empty on some rows?

Because the installation has no verified emissions on record: it is new, closed long ago or an ETS2 entity before its first reporting year.

Can I get one row per year?

Yes: the history field has one entry per year. Export as JSON or flatten it in your tool.

Is personal data included?

No. Holders that look like people lose name, registration number and street address, and the row is flagged. The free-text account label is never output.

Does it include transactions or the Swiss registry?

No. Neither transactions nor holdings, nor the linked Swiss registry columns.

Get an extract for your countries and sectors

Tell us countries, activities or groups and we will send an extract in the schema you would receive.

  • 30+ countries
  • Yearly emissions since 2005
  • No personal data
Could not send. Please use the contact form instead.
Received. Meanwhile, download the real samples at /en/samples/.

Keep exploring