Content

Adds extra content fields to products, options and units.

To use this capability add octo/content to your Octo-Capabilities header.

This capability extends the Product, Option and Unit schemas to add extra content. Below is a summary of the fields that were added:

Supplier
Product
Option
Unit
Availability
Booking
Supplier
{
// ...rest of the Supplier object
"country": "US",
"destinations": [
{
"id": "b1cb75fe-299c-4f0e-8630-bcc02c1c7cd0",
"name": "San Francisco",
"country": "US",
"contact": {
"website": "https://www.example.com/san-fran",
"email": "[email protected]",
"telephone": "+447840000000",
"address": "99 Jefferson St, San Francisco, CA, USA"
},
"categories": [
{
"id": "c82fedd0-9032-45de-83cb-fbc8f05183fe",
"title": "Hop-on Hop-off Tours",
"shortDescription": "All our hop-on hop-off double decker sightseeing tours",
"coverImageUrl": "https://example.com/cover.jpg",
"bannerImageUrl": "https://example.com/banner.jpg",
"productIds": [
"3236e9d7-5001-4e92-947b-a63cc042d20c",
"789e52b2-6a61-450f-989b-5d74c6424081",
"03e43d66-d005-4814-9bcd-abab4bef4d05",
"f0065abc-77e0-4c13-bbd6-4385000f3e75"
]
},
{
"id": "7e226b54-f15c-4418-b3c5-8d57772df893",
"title": "Attraction Tickets",
"shortDescription": "All our hop-on hop-off double decker sightseeing tours",
"coverImageUrl": "https://example.com/cover.jpg",
"bannerImageUrl": "https://example.com/banner.jpg",
"productIds": [
"fa20b40b-a17b-4273-b63b-40211753d07b",
"8df3ad36-dc23-4a8e-8616-13e59816d502",
"adb54d3c-f7f6-44b3-b33b-153b6ac0b7cc"
]
}
]
},
{
"id": "f9d97f82-e797-4642-84f1-c4f25222cac2",
"name": "New York",
"country": "US",
"contact": {
"website": "https://www.example.com/nyc",
"email": "[email protected]",
"telephone": "+447840000000",
"address": "117 West St, New York, NY 10006, USA"
},
"categories": [
{
"id": "c82fedd0-9032-45de-83cb-fbc8f05183fe",
"title": "Hop-on Hop-off Tours",
"shortDescription": "All our hop-on hop-off double decker sightseeing tours",
"coverImageUrl": "https://example.com/cover.jpg",
"bannerImageUrl": "https://example.com/banner.jpg",
"productIds": [
"e1911cba-7a09-466c-a429-2dc49a57f717",
"6d095658-1ea9-43e5-97db-0cae0d38a5a5",
"03e731fb-1740-4d6a-80a1-c4aa7810cf76",
"1c5b8fce-6423-41f4-a8c3-3a5887ad223d",
"ff8919af-69da-4d83-bad7-40882ee1ed2a"
]
},
{
"id": "7e226b54-f15c-4418-b3c5-8d57772df893",
"title": "Attraction Tickets",
"shortDescription": "All our hop-on hop-off double decker sightseeing tours",
"coverImageUrl": "https://example.com/cover.jpg",
"bannerImageUrl": "https://example.com/banner.jpg",
"productIds": [
"99ba5af6-71cc-4c1f-ac96-8f07d02c2ee0",
"fc4559cd-018a-438a-a7c4-6c2cdd0f945a",
"80150865-de34-4cf7-a7b2-fd0b66feac4e",
"772ab190-d49b-4971-8399-794cdcdb2bde",
"2adb0466-3804-43ea-8bf8-42683dd7e16b",
"ddecce88-6948-46e3-a2c0-755071fd1950"
]
}
]
},
]
}
Product
{
// ...rest of the Product object
"title": "Mega Pass",
"country": "US",
"subtitle": "Mega Pass",
"shortDescription": "Mega Pass is the perfect way to build your own itinerary while making huge savings on the top tours and attractions that San Francisco has to offer.",
"description": "<p>Some long HTML encoded description about the Mega Pass</p>",
"highlights": [
"All the top attractions in San Francisco",
"No restrictions on what you can do"
],
"inclusions": [
"Your choice of attractions"
],
"exclusions": [
"Tips & Gratuities",
"Souvenirs"
],
"redemptionInstructions": "Meet us in the lobby of the Hilton at least 10 minutes before your tour is due to begin",
"bookingTerms": "Some attractions may be closed during your visit and will not accept any attendees. Please check before booking.",
"cancellationPolicy": "Free cancellation up to 24 hours prior to travel date. Same day sales are final.",
"destination": {
"id": "b1cb75fe-299c-4f0e-8630-bcc02c1c7cd0",
"name": "San Francisco",
"country": "US",
"contact": {
"website": "https://www.example.com/san-fran",
"email": "[email protected]",
"telephone": "+447840000000",
"address": "99 Jefferson St, San Francisco, CA, USA"
}
},
"faqs": [
{
"question": "Redemption Location",
"answer": "Skyline Sightseeing office at 2724 Taylor St (between Beach and Jefferson St)"
},
{
"question": "Selection of attractions",
"answer": "You do not have to pre-select the attractions upon booking the package online. Choose when redeeming the voucher with us in San Francisco and our friendly agents will help you to make a choice if you want. "
},
{
"question": "Validity",
"answer": "The pass is valid for 7 consecutive days"
},
{
"question": "When to use the pass?",
"answer": "Don't worry! We are flexible! The date you picked doesn't matter until you redeem your voucher with us in San Francisco. Since the voucher is redeemed you have 7 days to visit your selected attractions."
}
],
"coverImageUrl": "https://cdn.ventrata.com/image/upload/v1517853155/epd8lskwd9z9w4nnmlky.jpg",
"bannerImageUrl": "https://cdn.ventrata.com/image/upload/v1517853155/epd8lskwd9z9w4nnmlky.jpg",
"videoUrl": "https://cdn.ventrata.com/image/upload/v1517853155/epd8lskwd9z9w4nnmlky.mp4",
"galleryImages": [
{
"url": "https://cdn.ventrata.com/image/upload/v1581032927/deyoung-02_v2xgzq.jpg",
"title": "De Young Museum",
"caption": "Art museum in Golden Gate Park"
},
{
"url": "https://cdn.ventrata.com/image/upload/v1581033038/SF-Zoo_qoiklm.jpg",
"title": "San Francisco Zoo",
"caption": "See the African Lion, Kangaroo, Koala, Black Bear and more!"
},
{
"url": "https://cdn.ventrata.com/image/upload/v1581032898/ATTpark3_glyqmn.jpg",
"title": "Oracle Park Tour",
"caption": "Behind-the-scenes of the baseball park"
}
],
"bannerImages": [
{
"url": "https://cdn.ventrata.com/image/upload/v1534441354/bay-Cruise3_b9izx3.jpg",
"title": null,
"caption": null
},
{
"url": "https://cdn.ventrata.com/image/upload/v1581033166/Disney-6_eb16km.jpg",
"title": null,
"caption": null
}
]
}
Option
{
// ...rest of the Option object
"title": "Pick 3",
"subtitle": "Pick any 3 attractions from 50",
"shortDescription": null,
"duration": "2 Days",
"itinerary": [
{
"name": "Marble Arch",
"type": "START",
"description": "Marble Arch is a 19th-century white marble-faced triumphal arch in London, England.",
"address": "Marble Arch, London, UK",
"googlePlaceId": "ChIJjfEsXjMFdkgR2MhDam285XY",
"latitude": 51.5131099,
"longitude": -0.1589148,
"travelTime": "30 minutes",
"travelTimeAmount": 30,
"travelTimeUnit": "minute",
"duration": "5 minutes",
"durationAmount": 5,
"durationUnit": "minute"
},
{
"name": "London Bridge",
"type": "POI",
"description": null,
"address": "London Bridge, London, UK",
"googlePlaceId": "ChIJxRO7WVEDdkgRrGM1fCYoHqY",
"latitude": 51.5078788,
"longitude": -0.0877321,
"travelTime": "15 minutes",
"travelTimeAmount": 15,
"travelTimeUnit": "minute",
"duration": "5 minutes",
"durationAmount": 5,
"durationUnit": "minute"
}
]
}
Unit
{
// ...the rest of the Unit object
"title": "Adult",
"subtitle": "Must be over 18"
}
Availability
{
// ...the rest of the Availability object
"meetingPoint": "Redeem this voucher at 2724 Taylor St, San Francisco, CA, 94133. You can call us at 415-440-8687 if you have any questions.",
"meetingPointCoordinates": [38.8951, -77.0364],
"meetingLocalDateTime": "2020-07-01T09:00:00-05:00",
"openingHours": [
{
// ...the rest of the Opening Hour object
"frequency": "10 minutes",
"frequencyAmount": 10,
"frequencyUnit": "minute"
}
]
}
Booking
{
// ...the rest of the Booking object
"meetingPoint": "Redeem this voucher at 2724 Taylor St, San Francisco, CA, 94133. You can call us at 415-440-8687 if you have any questions.",
"meetingPointCoordinates": [38.8951, -77.0364],
"meetingLocalDateTime": "2020-07-01T09:00:00-05:00",
"duration": "2 Days"
}

The content provided by this endpoint belongs to the supplier, so please make sure you have their express permission before using it online.

All fields should be self explanatory based on their name, with the exception of options.itinerary which is defined by:

Field

Description

itinerary.type

This is an enum field with one of the following values:

START The starting/meeting location

POI A point of interest that's visited en-route

EVENT A event that happens e.g. "Lunch" or "Shopping Break"

END The ending/final location

itinerary.travelTime

The travel time to get to this location

itinerary.duration

How much time is spent on this itinerary item

get
Products

https://api.ventrata.com/octo/products
This capability extends the GET /products endpoint described here to allow you to pass a destinatonId which will filter the list of products returned by that destination.
Request
Response
Request
Query Parameters
destinationId
optional
string
The destination ID you want to filter the product list by,
Response
200: OK
... the list of products in that destination