Train: CO2-emissiefactoren π³π±
Calculate train travel emissions with the Dutch CO2-emissiefactoren factor set, pinned to a published year and to a tank-to-wheel or well-to-wheel energy scope.
About the methodology
CO2-emissiefactoren is a leading European reference for robust, harmonised COβ emission values across sectors, including rail. For train travel, it reflects operational energy, electricity mix, traction efficiency and, where applicable, infrastructure impacts, so results are consistent, comparable and useful for decisions.
Versions
The factor set is published per year. Set methodology_version (a 4-digit year) to pin a version for reproducible results.
- Omitted on this endpoint: SQUAKE uses the latest supported year. Train items carry no date, so the year is never inferred here. On the Travel Data API, where activities do carry dates, an omitted
methodology_versionis derived from the trip or activity start date instead. - A year without its own published set: resolves to the most recent prior year (for example
2024β2023). - A year before the earliest supported set (
2020): returns a validation error.
Supported years: 2020, 2021, 2023, 2025, 2026.
Sample requests
Send a quote before booking, then repeat the call with audit set to true once the booking is final. The body is otherwise identical.
{
"expand": ["items"],
"items": [{
"audit": false,
"type": "train",
"methodology": "CO2-EMISSIEFACTOREN-NL",
"external_reference": "test",
"train_type": "international",
"fuel_type": "average",
"origin": "AMS",
"destination": "BER",
"number_of_travelers": 1,
"energy_scope": "ttw"
}]
}audit_for is optional
Pass the ID of an auditable entity when you calculate on behalf of that entity. Otherwise, leave it out.
Defaults
| Field | Default | Applies when |
|---|---|---|
train_type | average | No train_type is sent |
fuel_type | average | No fuel_type is sent |
energy_scope | wtw | No energy_scope is sent |
number_of_travelers | 1 | No number_of_travelers is sent |
methodology_version | latest | No methodology_version is sent |
Mapping intercity
If your integration assumes train_type: intercity as a product-level alias, map it to the dataset's available categories (average or international) according to your business rules.
Request fields
typestringrequiredtrain
methodologystringrequiredCO2-EMISSIEFACTOREN-NL
methodology_versionstringFactor year, one of 2020, 2021, 2023, 2025, 2026, or latest. If omitted, the year is derived from the trip or activity start date, and defaults to the latest supported year when no date is available. See Versions.
external_referencestringA unique identifier that links results to the requested item. Up to 128 characters.
number_of_travelersintegerMinimum 1. Defaults to 1.
originstringOrigin location. See Origin and destination formats.
destinationstringDestination location. Same formats as origin.
distance_in_kmnumberTakes priority over origin and destination. If you send both, SQUAKE uses distance_in_km.
train_typeenumOne of average, international. Defaults to average.
fuel_typeenumOne of diesel, electricity, average. Defaults to average.
energy_scopeenumWell-to-wheel scope selector, ttw or wtw. Defaults to wtw.
auditbooleanSet to true to create immutable audit records for finalised calculations. Must be enabled for your account.
POST /v2/calculations in the API referenceOrigin and destination formats
SQUAKE tries to resolve origin and destination whatever their format. Ideally, use:
- Addresses: the Post standard.
- Airports: an IATA/ICAO code (regex
^[A-Z]{3,4}$, for example"MUC"). - Ports and trade locations: a UN/LOCODE (regex
^[A-Z]{2}\W?[A-Z2-9]{3}$, for example"DEHAM"). - Coordinates: latitude and longitude (regex
^[-+]?\d{1,3}\.\d{1,10}\s?,\s?[-+]?\d{1,3}\.\d{1,10}$, for example"+40.712,-74.006").
UIC and provider codes
A UIC code is also a valid format for trains. If the value isn't valid, the system falls back to general, non-journey-specific emission data.
To use a UIC or provider code, send <provider>:<uic_code>, for example sncf:FRAAA. Possible provider prefixes: uic, uic8_sncf, sncf, sncf_tvs, entur, db, busbud, distribusion, flixbus, cff, leoexpress, obb, trenitalia, trenitalia_rtvt, trenord, ntv_rtiv, ntv, hkx, renfe, atoc, benerail, westbahn.
{
"type": "train",
"methodology": "CO2-EMISSIEFACTOREN-NL",
"origin": "db:8011160", // Berlin Hbf (example code structure)
"destination": "db:8000105", // Frankfurt (Main) Hbf (example code structure)
"number_of_travelers": 1,
"energy_scope": "wtw"
}Distance and fallback
- If you send both
origin/destinationanddistance_in_km, SQUAKE usesdistance_in_kmfor emissions. - Invalid, unsupported or unresolvable location codes trigger a fallback to generic (non-journey-specific) factors consistent with the CO2-emissiefactoren methodology.
Sample response
{
"carbon_quantity": 10132,
"carbon_unit": "gram",
"items": [{
"carbon_quantity": 10132,
"carbon_unit": "gram",
"external_reference": "test",
"type": "train",
"methodology": "CO2-EMISSIEFACTOREN-NL",
"distance": 596.0,
"distance_unit": "kilometer"
}]
}Bibliography
- Lijst emissiefactoren (2025). COβ-emissiefactoren.
- Milieu Centraal (n.a.). milieucentraal.nl.