Skip to main content
GET
List Available Countries
← Hotel Stays API List the countries that have a hotel emission factor behind them. A stay in a country outside this list has no factor to calculate against, so this is what you call to build a destination picker that cannot produce an uncalculable record.
The response is ISO-2 country codes in upper case, not country names. You get ["ES", "FR", "DE", "GB"], never ["Spain", "France", …]. Comparing a user-facing country name against this list matches nothing — map your names to ISO-2 codes first.
Reference data, not your data. The list is the same for every organization and does not depend on where you have actually booked stays — fetch it once and cache it. It is drawn from the hotel factor tables as a whole, which today means DEFRA plus Greenview; a handful of countries are covered only by the latter, so do not assume every code has a DEFRA factor behind it.

Request

Headers

string
required
Your API key.
string
required
UUID of your organization.Format: UUID
The organization header is required even though the list is global. The response is not scoped to an organization, but the router’s authentication dependency resolves one from this header before the handler runs. Omitting it returns 422, not 401.

Response

Returns a flat array of ISO-2 country codes, upper case, not an object wrapping one. There is no items, no total_count, no pagination.
array[string]
Upper-case ISO-2 codes of the countries that have a hotel emission factor — ES, FR, GB.

Example

Successful Response

Returns 200 OK.

Common Errors

422 Unprocessable Entity

Cause: x-organization-id is missing. This fires before any credential check, so it is what a request with no headers at all returns.

401 Unauthorized

Cause: The organization header is present but the credentials are not.

Use Cases

Offer only destinations that can be calculated

Build your country dropdown from this list instead of from a general country catalogue, keying the options by ISO-2 code. A stay recorded in a country with no factor still saves, but it will not produce emissions — and nothing in the record itself makes that obvious afterwards.

Validate an import before you send it

When loading hotel stays in bulk, map each row’s country to its ISO-2 code and check it against this list first. Rejecting the row up front, with a message naming the country, is far easier to act on than discovering later that part of the batch has no emissions.

Create Hotel Stay

Record a stay in one of these countries

Upload Hotel Stays CSV

Bulk load, where validating countries first pays off most

Impact Calculation

How a stay turns into emissions

Hotel Stays API

Everything the Hotel Stays API covers