List Hotel Factors

<span class="api-method api-method-get">GET</span> /v1/hotel/factors

Get all available country emission factors for hotel stays. Results are sorted by emissions (lowest first).


Request

No parameters required.


Response

{
  "data": [
    {
      "country_code": "CR",
      "country_name": "Costa Rica",
      "factor": 4.7,
      "unit": "kg CO2e per room per night",
      "region": "Central America",
      "is_estimate": false
    },
    {
      "country_code": "SE",
      "country_name": "Sweden",
      "factor": 5.1,
      "unit": "kg CO2e per room per night",
      "region": "Northern Europe",
      "is_estimate": false
    },
    {
      "country_code": "NO",
      "country_name": "Norway",
      "factor": 6.8,
      "unit": "kg CO2e per room per night",
      "region": "Northern Europe",
      "is_estimate": false
    },
    {
      "country_code": "FR",
      "country_name": "France",
      "factor": 8.2,
      "unit": "kg CO2e per room per night",
      "region": "Western Europe",
      "is_estimate": false
    },
    {
      "country_code": "GB",
      "country_name": "United Kingdom",
      "factor": 31.5,
      "unit": "kg CO2e per room per night",
      "region": "Western Europe",
      "is_estimate": false
    }
  ],
  "meta": {
    "total_countries": 60,
    "source": "DEFRA 2025 / Cornell CHSB Index",
    "unit": "kg CO2e per room per night"
  }
}

Response Fields

data (array)

Field Type Description
country_code string ISO 3166-1 alpha-2 code
country_name string Full country name
factor number Emission factor
unit string Always kg CO2e per room per night
region string Geographic region
is_estimate boolean Whether this is a regional estimate

meta

Field Type Description
total_countries integer Number of countries with factors
source string Data source
unit string Unit of measurement

Example

curl "https://api.emissions.dev/v1/hotel/factors" \
  -H "Authorization: Bearer em_live_xxxx"

All Available Factors

Country Code Factor (kg/night) Region
Costa Rica CR 4.7 Central America
Sweden SE 5.1 Northern Europe
Norway NO 6.8 Northern Europe
France FR 8.2 Western Europe
Switzerland CH 8.5 Western Europe
Iceland IS 9.1 Northern Europe
Finland FI 10.3 Northern Europe
Brazil BR 11.2 South America
Canada CA 12.8 North America
Austria AT 13.5 Western Europe
New Zealand NZ 14.2 Oceania
Spain ES 15.8 Southern Europe
Portugal PT 16.4 Southern Europe
Denmark DK 17.2 Northern Europe
Belgium BE 18.9 Western Europe
Italy IT 19.5 Southern Europe
Netherlands NL 21.3 Western Europe
Ireland IE 23.7 Western Europe
Germany DE 27.8 Western Europe
United Kingdom GB 31.5 Western Europe
Japan JP 35.2 East Asia
United States US 38.4 North America
South Korea KR 42.1 East Asia
Singapore SG 45.8 Southeast Asia
Greece GR 48.3 Southern Europe
Hong Kong HK 51.2 East Asia
Thailand TH 52.8 Southeast Asia
Mexico MX 54.6 North America
China CN 58.9 East Asia
Indonesia ID 61.4 Southeast Asia
India IN 63.2 South Asia
Turkey TR 64.8 Middle East
Australia AU 67.8 Oceania
UAE AE 72.5 Middle East
Saudi Arabia SA 78.3 Middle East
Egypt EG 81.2 Africa
South Africa ZA 89.3 Africa
Botswana BW 101.5 Africa
Maldives MV 152.2 South Asia

Code Examples

JavaScript

const response = await fetch(
  'https://api.emissions.dev/v1/hotel/factors',
  {
    headers: {
      'Authorization': `Bearer ${process.env.EMISSIONS_API_KEY}`
    }
  }
);

const data = await response.json();

// Find low-carbon destinations
const lowCarbon = data.data.filter(c => c.factor < 20);
console.log('Low-carbon destinations:', lowCarbon.map(c => c.country_name));

// Find factor for a specific country
const uk = data.data.find(c => c.country_code === 'GB');
console.log(`UK factor: ${uk.factor} kg/night`);

Python

import requests

response = requests.get(
    'https://api.emissions.dev/v1/hotel/factors',
    headers={
        'Authorization': f'Bearer {api_key}'
    }
)

data = response.json()

# Find low-carbon destinations
low_carbon = [c for c in data['data'] if c['factor'] < 20]
print('Low-carbon destinations:', [c['country_name'] for c in low_carbon])

# Find factor for a specific country
uk = next(c for c in data['data'] if c['country_code'] == 'GB')
print(f"UK factor: {uk['factor']} kg/night")

PHP

$response = Http::withToken($apiKey)
    ->get('https://api.emissions.dev/v1/hotel/factors');

$data = $response->json();

// Find low-carbon destinations
$lowCarbon = collect($data['data'])
    ->filter(fn($c) => $c['factor'] < 20)
    ->pluck('country_name');

echo "Low-carbon destinations: " . $lowCarbon->join(', ');

Use Cases

Build a Destination Selector

function getSustainabilityRating(factor) {
  if (factor < 15) return { rating: 'Excellent', color: 'green', stars: 5 };
  if (factor < 30) return { rating: 'Good', color: 'lime', stars: 4 };
  if (factor < 50) return { rating: 'Average', color: 'yellow', stars: 3 };
  if (factor < 80) return { rating: 'Poor', color: 'orange', stars: 2 };
  return { rating: 'Very High', color: 'red', stars: 1 };
}

Filter by Region

const europeanCountries = data.data.filter(c => 
  c.region.includes('Europe')
);