Product Feed

The Product feed returns a list of all currently available products of type “trip” (i.e. tours) for the brand requested. It includes high level information about the trip including duration, description of highlights, a short itinerary, approximate prices and links to categorized images and pages containing more detailed information. A request can also be made to return the same information for an individual product code.

Note: This example feed is only showing a single product, but the full feed will include all products.

Click for example

Data structure

XML Element
Required?
Data Type
Notes
feed [type=<feedType>, brand=<brand>]
Top-level XML tag
<productList>
Optional
productList
{product}
Mandatory
product
<summary>
Mandatory
<urls>
Mandatory
<ratings>
Optional
<meals>
Optional
<accommodation>
Optional
<transport>
Optional
<includedActivities>
Optional
<countryList>
Optional
<imageList>
Optional
<themeList>
Optional
<highlightList>
Optional
<approxPriceList>
Optional
<approxChildPriceList>
Optional
<depositAmount>
Optional
<itineraryList>
Optional
summary
productId
productCode
Mandatory
string
productName
Mandatory
string
productType
Mandatory
string
duration
Optional
string
description
Optional
string
supplier
Optional
string
region
Optional
string
defaultStartCountry
Optional
string
defaultStartCity
Optional
string
defaultFinishCountry
Optional
string
defaultFinishCity
Optional
string
defaultStartPoint
Optional
string
defaultFinishPoint
Optional
string
style
Optional
string
minGroupSize
Optional
string
maxGroupSize
Optional
string
CompulsorySingleSupplement
string
minAge
maxAge
starRating
Optional
decimal
mapImage
Optional
validFrom
Optional
string
Date Format: DDMMMYYY 
e.g. 01JAN2016
validTo
Optional
string
Date Format: DDMMMYYY 
e.g. 01JAN2016
extendedValidTo
Optional
string
Date Format: DDMMMYYY 
e.g. 01JAN2017 (In the case that this date is later than the Valid To date, then any departures beyond the Valid To date are subject to change and may include variations to dates & itinerary.)
lastUpdated
Optional
string
Date Format: DDMMMYYY 
e.g. 01JAN2016
urls
overview
Mandatory
string
itinerary
Mandatory
string
availability
Mandatory
string
tripNotes
Mandatory
string
ratings
physical
Optional
int
cultureShock
Optional
int
responsibleTravel
Optional
int
meals
breakfastsIncluded
Optional
int
lunchesIncluded
Optional
int
dinnersIncluded
Optional
int
includedActivities
includedActivity
Optional
includedActivity
description
Optional
countryList
{country}
Mandatory
country
code
Mandatory
string
The two character ISO code for the country
name
Mandatory
string
The name of the country
imageList
image
Mandatory
string
themeList
theme
Mandatory
string
highlightList
highlight
Mandatory
string
approxPriceList
approxPrice [productVersion=<productVersionType>, currency=<currency>, numPax=<numPax>,paxType=<paxType>, roomType=<roomType>]
Mandatory
decimal
The attribute <numPax> is an integer
depositAmount
depositAmount [currency=<currency>]
Mandatory
decimal
approxChildPriceList
approxChildPrice [productVersion=<productVersionType>, currency=<currency>, numPax=<numPax>]
Mandatory
decimal
The attribute <numPax> is an integer
itineraryList
{itinerary}
Mandatory
itinerary [dayNumber= <dayNumber> ]
The attribute <dayNumber> can be a range, for example “6-8”
location
Optional
string
description
Optional
string
specialInformation
Optional
string
<includedActivityList>
Optional
<optionalActivityList>
Optional
<accommodationList>
Optional
includedActivityList
{includedActivity}
Optional
includedActivity
description
Optional
string
optionalActivityList
{optionalActivity}
Optional
optionalActivity
description
Optional
string
price [currency=<currency>]
Optional
decimal
accommodationList
{accommodation}
Optional
accommodation
description
Mandatory
string
numberOfNights
Optional
string

We have a number of ship-based trips where the actual ship varies for the same itinerary (i.e. they share the same trip code). As such the cabin configurations vary.

Previously, only one ship and its cabin configurations was being returned in the Product feed, and despite sharing the same trip code (<productCode>) not all departures were returned in the Availability feed, only those that matched that single ship.

As such, we extended the Product feed to return all ship variants, per trip code, resulting in more than one <product> node per trip code, with the relevant details under each one. Note that the <productId> is unique for each instance. The <productName> will vary per instance, indicating the ship used. E.g. "Celebrating New Year's in Antarctica (Ocean Nova)" vs. "Celebrating New Year's in Antarctica (Ocean Albatros)"

These variant instances can be grouped at your end by the shared trip code, <productCode> , which is the same for all such instances.

In the Availability feed, each departure lists its relevant as the first field. It may also list the <mainProductId> in the case of multiple cabin types per departure. You can use the <mainProductId> to match against a <productId> in the Product feed, for relevant trip content (e.g. itinerary). If no mainProductId is provided, then use the productId, to associate the departure with the relevant product or ship variant