Get information about a ProductsDetail
curl --request GET \
--url https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}import requests
url = "https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyVersion 1
Get information about a ProductsDetail
## Get information about a ProductsDetail ##
<p>
Retrieves information about the given ProductsDetail
</p>
#### Response ####
**Top Level Result Object**
<table class="fullwidth">
<thead>
<tr>
<th>Field name</th>
<th>Nullable</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>productId</td><td>n</td><td>Integer</td><td>Product ID</td>
</tr>
<tr>
<td>productStatusCode</td><td>n</td><td>string</td><td>One-character product status code</td>
</tr>
<tr>
<td>productStatus</td><td>n</td><td>String</td><td>Product status name</td>
</tr>
<tr>
<td>productName</td><td>n</td><td>String</td><td>Product name</td>
</tr>
<tr>
<td>productCountry</td><td>n</td><td>String</td><td>2-character ISO 3166 Country code</td>
</tr>
<tr>
<td>productTimezone</td><td>y</td><td>String</td><td>String (e.g. 'Australia/Sydney') representing products timezone. Based on timezone database @ https://www.iana.org/time-zones</td>
</tr>
<tr>
<td>productClassId</td><td>n</td><td>Integer</td><td>Product class ID</td>
</tr>
<tr>
<td>rating</td><td>y</td><td>Decimal</td><td>Valid only for Accommodation products. A 'star' rating in the range of 1-5.</td>
</tr>
<tr>
<td>productClass</td><td>n</td><td>String</td><td>Name of product class</td>
</tr>
<tr>
<td>teaser</td><td>n</td><td>String</td><td>Short product description</td>
</tr>
<tr>
<td>description</td><td>n</td><td>String</td><td>Long product description</td>
</tr>
<tr>
<td>itineraryDetails</td><td>y</td><td>Array (Object)</td><td>Array of itineraryDetails Objects. Example:
<br><br>
"itineraryDetails": [<br>
{<br>
"itineraryTitle": "day1",<br>
"itineraryBreakfast": 0,<br>
"itineraryLunch": 1,<br>
"itineraryDinner": 0,<br>
"itineraryDescription": "day1 details"<br>
},<br>
{<br>
"itineraryTitle": "day2",<br>
"itineraryBreakfast": 1,<br>
"itineraryLunch": 0,<br>
"itineraryDinner": 0,<br>
"itineraryDescription": "day2 details"<br>
}<br>
]<br> For itineraryBreakfast / itineraryLunch / itineraryDinner: 1 - meal provided, 0 - not provided.</td>
<tr>
<tr>
<td>departuresPickups</td><td>n</td><td>String</td><td>Information about pickups, departures or opening hours</td>
</tr>
<tr>
<td>extras</td><td>n</td><td>String</td><td>Information about extras which can be added to the product</td>
</tr>
<tr>
<td>voucherInstructions</td><td>n</td><td>String</td><td>Instructions to be printed on the voucher</td>
</tr>
<tr>
<td>voucherInformationContactDetailsBits</td><td>n</td><td>Integer</td>
<td>
Combined bitwise value of address contact details to be printed on voucher. Depending on your
supplier setup this will either be the details of your supplier account or contact details
specific to this product. Combination of:<br>
<br>
Work phone = 1<br>
Free phone = 2<br>
Address line one = 4<br>
Address line two = 8<br>
Suburb/city = 16<br>
State = 32<br>
Postcode = 64<br>
Country = 128<br>
Email = 256<br>
</td>
</tr>
<tr>
<td>agentInstructions</td><td>n</td><td>String</td><td>Instructions to be made available to agents when placing orders</td>
</tr>
<tr>
<td>noRefunds</td><td>n</td><td>Boolean</td><td>Whether refunds should be permitted for this product. Default value is true.</td>
</tr>
<tr>
<td>noRefundsMessage</td><td>n</td><td>String</td><td>Message to be displayed when an attempt is made to get a refund for a no-refunds product</td>
</tr>
<tr>
<td>contactEmail</td><td>y</td><td>String</td><td>Contact email address set for product</td>
</tr>
<tr>
<td>contactPhone</td><td>y</td><td>String</td><td>Contact phone number set for product</td>
</tr>
<tr>
<td>addressLineOne</td><td>n</td><td>String</td><td>First line of product address</td>
</tr>
<tr>
<td>addressLineTwo</td><td>n</td><td>String</td><td>Second line of product address</td>
</tr>
<tr>
<td>addressSuburb</td><td>n</td><td>String</td><td>Suburb line of product address</td>
</tr>
<tr>
<td>addressCity</td><td>n</td><td>String</td><td>city line of product address</td>
</tr>
<tr>
<td>addressState</td><td>n</td><td>String</td><td>State line of product address</td>
</tr>
<tr>
<td>addressPostcode</td><td>n</td><td>String</td><td>Postcode of product address</td>
</tr>
<tr>
<td>mediaPath</td><td>n</td><td>Array</td><td>Path to product's thumbnail image</td>
</tr>
<tr>
<td>mediaId</td><td>n</td><td>Integer</td><td>Media ID of product's thumbnail image</td>
</tr>
<tr>
<td>countries</td><td>n</td><td>Array</td><td>List of IDs of countries associated with this product</td>
</tr>
<tr>
<td>states</td><td>n</td><td>Array</td><td>List of IDs of states associated with this product</td>
</tr>
<tr>
<td>regions</td><td>n</td><td>Array</td><td>List of IDs of regions associated with this product</td>
</tr>
<tr>
<td>locations</td><td>n</td><td>Array</td><td>List of IDs of locations associated with this product</td>
</tr>
<tr>
<td>accommodation</td><td>n</td><td>Array</td><td>List of IDs of accommodation categories associated with this product</td>
</tr>
<tr>
<td>activities</td><td>n</td><td>Array</td><td>List of IDs of activity categories associated with this product</td>
</tr>
<tr>
<td>transport</td><td>n</td><td>Array</td><td>List of IDs of transport categories associated with this product</td>
</tr>
<tr>
<td>startLocation</td><td>y</td><td>Integer</td><td>Location ID of product start location</td>
</tr>
<tr>
<td>endLocation</td><td>y</td><td>Array</td><td>Location ID of product end location</td>
</tr>
<tr>
<td>minAgeRecommendation</td><td>n</td><td>Integer</td><td>Minimum recommended age.</td>
</tr>
<tr>
<td>maxAgeRecommendation</td><td>n</td><td>Integer</td><td>Maximum recommended age.</td>
</tr>
<tr>
<td>ageRestriction</td><td>n</td><td>String</td><td>Description of any age restrictions (e.g. for an R18 hostel).</td>
</tr>
<tr>
<td>fitnessRequirement</td><td>n</td><td>String</td><td>Description of fitness requirements.</td>
</tr>
<tr>
<td>minGroupSize</td><td>n</td><td>Integer</td><td>Minimum tour group size.</td>
</tr>
<tr>
<td>maxGroupSize</td><td>n</td><td>Integer</td><td>Maximum tour group size.</td>
</tr>
<tr>
<td>dietaryRequirements</td><td>n</td><td>Integer</td><td>Dietary requirements.</td>
</tr>
<tr>
<td>luggageRequirements</td><td>n</td><td>String</td><td>Luggage requirements.</td>
</tr>
<tr>
<td>includedItems</td><td>n</td><td>Array(String)</td><td>Description of items included in fare.</td>
</tr>
<tr>
<td>bringItems</td><td>n</td><td>Array(String)</td><td>Description of items the guest is expected to bring.</td>
</tr>
<tr>
<td>voucherTerms</td><td>y</td><td>String</td><td>Description of terms and conditions, disclaimers etc.</td>
</tr>
<tr>
<td>weekDays</td><td>y</td><td>Array(String)</td><td>Comma-separated list of days of the week that trip departs. This field is "Deprecated", recommended to use "departureDates" field. </td>
</tr>
<tr>
<td>departureDates</td><td>y</td><td>String</td><td>Comma-separated tour departure dates.</td>
</tr>
<tr>
<td>recurrenceDate</td><td>y</td><td>String</td><td>Frequency of departure recurrence (e.g. "Weekly", "Daily", "Monthly"). This field is "Deprecated", recommended to use "departureDates" field.</td>
</tr>
<tr>
<td>specialCircumstanceDate</td><td>y</td><td>String</td><td>Description of special dates which affect departure info (e.g. Christmas Day).. This field is "Deprecated", recommended to use "departureDates" field.</td>
</tr>
<tr>
<td>operatingPartner</td><td>y</td><td>String</td><td>Operating partner.</td>
</tr>
<tr>
<td>tourCode</td><td>y</td><td>String</td><td>Tour code.</td>
</tr>
<tr>
<td>mandatoryFieldCheckout</td><td>y</td><td>Array</td><td>Array of customer fields absolutely necessary to make the booking. Customer field names: title, phone, emailAddress, dateOfBirth, redeemerCountry, postcode.</td>
</tr>
</tbody>
</table>
**itineraryDetails Object**
<table class="fullwidth">
<thead>
<tr>
<th>Field name</th>
<th>Nullable</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>itineraryTitle</td><td>y</td><td>String</td><td>itinerary Title Example day 1</td>
</tr>
<tr>
<td>itineraryBreakfast</td><td>y</td><td>Integer</td><td>1 - meal provided. 0 - not provided</td>
</tr>
<tr>
<td>itineraryLunch</td><td>y</td><td>Integer</td><td>1 - meal provided. 0 - not provided</td>
</tr>
<tr>
<td>itineraryDinner</td><td>y</td><td>Integer</td><td>1 - meal provided. 0 - not provided</td>
</tr>
<tr>
<td>itineraryDescription</td><td>y</td><td>String</td><td>Details of the specific day</td>
</tr>
</tbody>
</table>
GET
/
{supplierapi}
/
product
/
{productId}
/
{productStatusCode}
Get information about a ProductsDetail
curl --request GET \
--url https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}import requests
url = "https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/{supplierapi}/product/{productId}/{productStatusCode}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body