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')
);