Train: Base Empreinte πŸ‡«πŸ‡·

Calculate train travel emissions with ADEME's Base Empreinte factors, which take train type, regional context, grid or fuel, and factor year into account.

type trainmethodology BASE-EMPREINTEADEME Base Empreinte, 2025Supports audit mode

About the methodology

Base Empreinte, managed by ADEME, is a comprehensive environmental impact database that combines data from Base Carbone and Base IMPACTS. It supports environmental evaluations with multi-criteria data, including greenhouse gas (GHG) emissions and other environmental impacts.

For train travel, Base Empreinte factors in train type, location context (for example Corsica and Île-de-France), grid or fuel, and the year of the factor, so stakeholders get accurate, audit-ready emission calculations.

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": "BASE-EMPREINTE",
    "external_reference": "test_1",
    "number_of_travelers": 1,
    "origin": "FRA",
    "destination": "NCE",
    "train_type": "tram",
    "state": "Ile-de-France",
    "country": "FR",
    "year": "2021"
  }]
}

audit_for is optional

Pass the ID of an auditable entity when you calculate on behalf of that entity. Otherwise, leave it out.

Defaults

FieldDefaultApplies when
city_typepopulation_under_250000No city_type is sent; city_type is used when state isn't provided
stateIle-de-FranceNo state is sent
countryFRNo country is sent
yearLatest availableNo year is sent
train_typemain_lineOnly train type is passed
number_of_travelers1No number_of_travelers is sent

Request fields

typestringrequired

train

methodologystringrequired

BASE-EMPREINTE

external_referencestring

A unique identifier that links results to the requested item. Up to 128 characters.

number_of_travelersinteger

Minimum 1. Defaults to 1.

originstring

Origin location. See Origin and destination formats.

destinationstring

Destination location. Same formats as origin.

distance_in_kmnumber

Takes priority over origin and destination. If you send both, SQUAKE uses distance_in_km.

train_typeenum

One of ter, tgv, intercity, metro, tram, trolleybus, main_line. Defaults to main_line when only train type is passed.

stateenum

Supported regional specificity: "Corsica" or "Ile-de-France". Defaults to "Ile-de-France".

countrystring

ISO 3166-1 alpha-2 country code. Defaults to "FR".

yearstring

Year of the factor. Defaults to the latest available year.

city_typeenum

Used when state isn't provided. One of population_under_250000 (default) or population_above_250000.

auditboolean

Set to true to create immutable audit records for finalised calculations. Must be enabled for your account.

See every field of POST /v2/calculations in the API reference

Origin 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": "BASE-EMPREINTE",
  "origin": "db:8011160",        // Berlin Hbf (example code structure)
  "destination": "db:8000105",   // Frankfurt (Main) Hbf (example code structure)
  "number_of_travelers": 2
}

Distance and fallback

  • If you send both origin/destination and distance_in_km, SQUAKE uses distance_in_km for emissions.
  • Invalid, unsupported or unresolvable location codes trigger a fallback to generic (non-journey-specific) factors consistent with Base Empreinte/ADEME practice.

Sample response

200 OKapplication/json
{
  "carbon_quantity": 4890,
  "carbon_unit": "gram",
  "items": [{
    "carbon_quantity": 4890,
    "carbon_unit": "gram",
    "external_reference": "test_1",
    "type": "train",
    "methodology": "BASE-EMPREINTE",
    "distance": 685.0,
    "distance_unit": "kilometer"
  }]
}

Bibliography

On this page

POST/v2/calculations

Run this request against the sandbox with your test key.

Open in API reference