Getting Started with the Xeni Activities APIHow to Book an ActivityHow to Browse Activity Tags and CategoriesHow to Cancel an Activity BookingHow to Check Activity AvailabilityHow to Get Activity DetailsHow to Retrieve Activity Booking DetailsHow to Search for Activities with FiltersHow to Search for Activity DestinationsCar Rental API - Getting StartedCar Rental API - Understanding Response FieldsHow to Book a Car RentalHow to Get Rental Car Details and Equipment Add-OnsHow to Retrieve or Cancel a Car Rental BookingHow to Search for Available Rental CarsHow to Search for Pickup LocationsHow to Use Car Rental Search FiltersDeals API Best Practices for IntegrationDeals API Frequently Asked QuestionsGetting Started with the Xeni Deals APIDeals API Request Parameters and Headers ReferenceDeals API Supported Currencies and LocalizationHow to Display Deals in Your ApplicationHow to Fetch Hotel Deals by LocationFlights API Error Codes and TroubleshootingGetting Started with the Xeni Flights APIHow to Book a FlightHow to Check Flight Availability and PricingHow to Confirm or Cancel a Flight BookingHow to Retrieve Fare Rules for a FlightHow to Retrieve Flight Booking DetailsHow to Search for Airports Using AutocompleteHow to Search for FlightsHow to Use Flight Search Filters, Sorting, and PaginationHow to Check Room Availability and PricingHow to Filter Vacation Rental ResultsHow to Get Resort Property Details, Amenities, and AccessibilityHow to Hold and Confirm a Resort BookingHow to Release a Resort HoldHow to Retrieve Resort Booking DetailsHow to Search for Available ResortsHow to Search for Resort DestinationsHow to Search for Vacation Rental LocationsHow to Search for Vacation RentalsHow to Use Resort Search Filters and SortingGetting Started with the Xeni Resorts APIResorts API: Understanding Booking Statuses and PoliciesGetting Started with the Vacation Rentals APIVacation Rentals Frequently Asked QuestionsVacation Rentals Supported Property TypesUnderstanding Async Search for Vacation RentalsAuthentication & API SignaturesBooking Hotels — Direct API & SSO CheckoutError Handling, Rate Limits & Best PracticesGetting Started with the Xeni Hotels APIManaging Bookings: Status, Retrieval & CancellationPricing Confirmation & Token LifecycleRetrieving Hotel Details & Room AvailabilitySearching for Hotels: Locations, Filters & PaginationSearching for HotelsSession Management & Correlation IDsAPI authentication and getting your API keys

Deals API Supported Currencies and Localization

Last updated: 2026-03-03

Deals API Supported Currencies and Localization

The Deals API is designed for international use. You can request deal pricing in a wide range of currencies, localize response content by language, and provide timezone context for time-sensitive deal information. This article covers how each of these localization features works.

Currency Support

The currency Parameter

The currency query parameter accepts an ISO 4217 three-letter currency code. All prices in the response — including deal prices, original prices, and savings amounts — are returned in the specified currency.

GET /hotels/api/v2/deals?lat=48.8566&long=2.3522&currency=EUR

Commonly Used Currencies

CodeCurrencySymbolExample Region
USDUS Dollar$United States
EUREuroEurozone
GBPBritish Pound Sterling£United Kingdom
CADCanadian DollarCA$Canada
AUDAustralian DollarA$Australia
MXNMexican PesoMX$Mexico
BRLBrazilian RealR$Brazil
JPYJapanese Yen¥Japan
CNYChinese Yuan¥China
INRIndian RupeeIndia
KRWSouth Korean WonSouth Korea
SGDSingapore DollarS$Singapore
THBThai Baht฿Thailand
AEDUAE Dirhamد.إUnited Arab Emirates
CHFSwiss FrancCHFSwitzerland
SEKSwedish KronakrSweden
NZDNew Zealand DollarNZ$New Zealand
ZARSouth African RandRSouth Africa
COPColombian Peso$Colombia
ARSArgentine Peso$Argentina
This is not an exhaustive list. The API supports most ISO 4217 currency codes. If you pass an unsupported code, the API will return an error.

How Currency Conversion Works

Hotel deals are sourced from multiple suppliers, each of which may price their inventory in different base currencies. When you specify a currency in your request, the API performs the conversion server-side using current exchange rates before returning results.

Key points to understand:

  • Real-time rates — Exchange rates are updated regularly to reflect current market conditions.
  • Consistent pricing — All deals in a single response use the same currency and the same exchange rate snapshot, so prices are directly comparable.
  • No client-side conversion needed — You can display the returned prices as-is without additional conversion logic.
  • Rounding — Converted amounts are rounded appropriately for the target currency (e.g., to two decimal places for USD, to whole numbers for JPY).

Formatting Prices for Display

When displaying deal prices, use the browser's Intl.NumberFormat to format values correctly for the user's locale:

JAVASCRIPT
function formatPrice(amount, currencyCode, locale = 'en-US') {
  return new Intl.NumberFormat(locale, {
    style: 'currency',
    currency: currencyCode,
    minimumFractionDigits: currencyCode === 'JPY' ? 0 : 2,
    maximumFractionDigits: currencyCode === 'JPY' ? 0 : 2
  }).format(amount);
}

// Examples:
formatPrice(199.00, 'USD'); // "$199.00"
formatPrice(175.50, 'EUR', 'de-DE'); // "175,50 €"
formatPrice(15000, 'JPY', 'ja-JP'); // "¥15,000"

Language Localization

The accept-language Header

The accept-language header controls the language of localized text in the API response. This may affect property descriptions, deal labels, and other human-readable fields.

accept-language: es

Supported Language Codes

The API supports standard BCP 47 language tags. Common values include:

CodeLanguage
enEnglish
esSpanish
frFrench
deGerman
itItalian
ptPortuguese
pt-BRBrazilian Portuguese
jaJapanese
koKorean
zhChinese (Simplified)
zh-TWChinese (Traditional)
arArabic
ruRussian

Localization Behavior


  • Fallback — If the requested language is not available for a particular piece of content, the API falls back to English.
  • Partial localization — Some fields like property names may remain in their original language (the name the hotel uses) regardless of the language header.
  • Consistent within response — All localizable fields in a single response use the same language.

Detecting the User's Language

You can detect the user's preferred language from the browser:

JAVASCRIPT
const userLanguage = navigator.language || navigator.userLanguage || 'en';
// e.g., "es-MX", "fr", "en-US"

Timezone Handling

The timezone Header

The timezone header accepts an IANA timezone identifier and helps the API return time-relevant information adjusted to the user's local time.

timezone: America/Los_Angeles

Why Timezone Matters

  • Deal expiry — If a deal has a booking deadline, the API can express it relative to the user's timezone.
  • Check-in date relevance — Time-sensitive deals for "tonight" or "this weekend" depend on what "today" means in the user's timezone.
  • Consistency — Ensures that timestamps in the response align with what the user expects.

Detecting the User's Timezone

JAVASCRIPT
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
// e.g., "America/New_York", "Europe/Berlin", "Asia/Tokyo"

Common IANA Timezone Values

TimezoneUTC OffsetRegion
America/NewYorkUTC-5US Eastern
America/ChicagoUTC-6US Central
America/DenverUTC-7US Mountain
America/LosAngelesUTC-8US Pacific
Europe/LondonUTC+0United Kingdom
Europe/ParisUTC+1Western Europe
Europe/BerlinUTC+1Central Europe
Asia/DubaiUTC+4Gulf Region
Asia/KolkataUTC+5:30India
Asia/SingaporeUTC+8Singapore / Malaysia
Asia/TokyoUTC+9Japan
Australia/SydneyUTC+11Eastern Australia
Pacific/AucklandUTC+13New Zealand
> Note: UTC offsets vary with daylight saving time. Always use the IANA timezone name rather than a fixed offset.

Putting It Together

A fully localized request for a Spanish-speaking user in Mexico City:

BASH
curl -X GET "https://travelapi.ai/hotels/api/v2/deals?lat=19.4326&long=-99.1332&currency=MXN" \
  -H "accept: application/json" \
  -H "accept-language: es" \
  -H "timezone: America/Mexico_City" \
  -H "x-correlation-id: c3d4e5f6-a1b2-7890-cdef-123456789abc" \
  -H "x-session-id: 12345678-abcd-ef01-2345-abcdef012345"

This request returns hotel deals near Mexico City with prices in Mexican Pesos and Spanish-language content where available.

Was this article helpful?