Travel API

Calculate CO2e emissions for passenger travel across flights, rail, car, bus, ferry, and taxi.

<div class="admonition admonition-tip"><span class="admonition-icon">💡</span><div class="admonition-content"><p>Complete Trip Emissions Pair the Travel API with the <a href="/docs/api/hotel">Hotel API</a> for complete business trip emissions (Scope 3 Category 6). Two calls — transport + accommodation — gives you the full picture.</p> </div></div>

Endpoint

<span class="api-method api-method-get">GET</span> /v1/travel/emissions

Parameters

Required Parameters

Parameter Type Description
origin_country string Origin country code (ISO 3166-1 alpha-2)
destination_country string Destination country code
passengers integer 1

Optional Parameters

Parameter Type Default Description
origin_location string - Origin city or airport code
destination_location string - Destination city or airport code
transport_mode string auto flight, rail, car, bus, ferry, taxi
return_trip boolean false Include return journey
equivalents boolean false Include real-world equivalents

Flight Parameters

Parameter Type Default Description
cabin_class string economy economy, premium_economy, business, first

Car/Taxi Parameters

Parameter Type Default Description
vehicle_type string average small, medium, large, average
vehicle_type string petrol petrol, diesel, hybrid, phev, bev

Example Request

curl "https://api.emissions.dev/v1/travel/emissions?\
origin_country=GB&\
origin_location=Edinburgh&\
destination_country=FR&\
destination_location=Lyon&\
transport_mode=flight&\
cabin_class=economy&\
passengers=1" \
  -H "Authorization: Bearer em_live_xxxxxxxxxxxx"

Example Response

{
  "data": {
    "type": "travel_emission",
    "id": "2214775f-b096-47df-88c9-6d4a17c97054",
    "attributes": {
      "emissions": {
        "co2e": 175.55,
        "co2e_unit": "kg",
        "co2e_calculation_method": "ipcc_ar6_gwp100",
        "per_passenger_kg": 175.55,
        "source_trail": [
          {
            "data_category": "emission_factor",
            "name": "Short-Haul Flight - Economy Class",
            "source": "DEFRA / ICAO",
            "source_dataset": "Greenhouse gas reporting: conversion factors 2025",
            "year": "2025",
            "region": "GB"
          }
        ]
      },
      "journey": {
        "passengers": 1,
        "return_trip": false,
        "mode": "flight",
        "cabin_class": "economy"
      },
      "route": {
        "total_distance_km": 1396,
        "transport_mode": "flight",
        "origin": {
          "input": "Edinburgh",
          "resolved": "City of Edinburgh, Scotland, United Kingdom",
          "lat": 55.9533,
          "lon": -3.1883
        },
        "destination": {
          "input": "Lyon",
          "resolved": "Lyon, France",
          "lat": 45.764,
          "lon": 4.8357
        }
      }
    }
  },
  "meta": {
    "methodology": "DEFRA 2025 / ICAO",
    "emission_factors_year": 2025,
    "includes_radiative_forcing": true,
    "calculated_at": "2026-02-07T14:30:00Z"
  }
}

Cabin Class Multipliers

Flight emissions vary significantly by cabin class:

Cabin Class Multiplier Example (1000km)
Economy 1.0x 125 kg
Premium Economy 1.6x 200 kg
Business 2.9x 362 kg
First 4.0x 500 kg

Location-Aware EVs

For electric vehicles (vehicle_type=bev or vehicle_type=phev), we calculate emissions using the origin country's electricity grid carbon intensity.

Country Grid Intensity 100km EV Journey
Norway 26 g/kWh 0.54 kg CO2e
France 56 g/kWh 1.16 kg CO2e
UK 207 g/kWh 4.31 kg CO2e
Germany 350 g/kWh 7.28 kg CO2e
Poland 635 g/kWh 13.21 kg CO2e
<div class="admonition admonition-info"><span class="admonition-icon">ℹ️</span><div class="admonition-content"><p>Data source: Ember Climate Global Electricity Review 2025</p> </div></div>

Radiative Forcing

Our DEFRA 2025 emission factors for flights already include radiative forcing - the additional warming effect of emissions at high altitude. No separate multiplier is needed.

Transport Modes

Mode Description
flight Commercial aviation
rail Train travel
car Personal car
bus Coach/bus
ferry Passenger ferry
taxi Taxi/rideshare

Complete Trip Emissions

Combine the Travel API with the Hotel API to calculate full business trip emissions:

// London → Tokyo business trip: flights + 4 nights hotel
const [travel, hotel] = await Promise.all([
  fetch('https://api.emissions.dev/v1/travel/emissions?' + new URLSearchParams({
    origin_country: 'GB',
    origin_location: 'London',
    destination_country: 'JP',
    destination_location: 'Tokyo',
    transport_mode: 'flight',
    cabin_class: 'business',
    return_trip: true
  }), { headers: { Authorization: `Bearer ${apiKey}` } }),

  fetch('https://api.emissions.dev/v1/hotel/emissions?' + new URLSearchParams({
    country: 'JP',
    nights: 4
  }), { headers: { Authorization: `Bearer ${apiKey}` } })
]);

const t = (await travel.json()).data.attributes.emissions;
const h = (await hotel.json()).data.attributes.emissions;

console.log(`Flights: ${t.co2e} kg CO2e`);
console.log(`Hotel:   ${h.co2e} kg CO2e`);
console.log(`Total:   ${t.co2e + h.co2e} kg CO2e`);
// Both endpoints report GHG Protocol Scope 3 Category 6