CMS API Methods
API Next
API Next is Softrip's latest version of the CMS API, using new technologies and structures to publish your content for third-parties to display on their own websites.
Endpoint
Softrip's API Next exposes regions, destinations, TOCs, and packages through a JSON API. The root URL for all API calls is:
/api/
Structure
CMS content is organized into four nested levels:
Regions
Subregions
Destinations
TOCs (Tables of Content)
Packages
Required input parameters
Every CMS API call requires a input for "BrandID" that should be passed in the query string for your API call. Check with your Softrip subscriber to get their brand IDs for the content you wish to retrieve.
/api/cms/regions/?brandid=MYBRAND
CMS Calls
In order to pull all CMS and package content from the API, your code will have to run multiple calls to the API:
Get all the regions ("Regions" API call) - The response contains all regions, subregions, destinations, and TOCs, and each TOC will have a list of packages.
For each region, parse the subregion
For each subregion, parse the destinations
For each destination, parse the TOCs
For each TOC, parse the packages and get their IDs to pull their details using the "Packages" CMS API call
For each package, request its details ("Package" API call)
Regions
Regions represent groups of destinations, and reflect the organization of the main website. For example, there is a region for "Italy and Europe"
To get a list of all regions, use the API call:
/api/cms/regions/?brandid=[MYBRAND]
The JSON response contains a list of region objects. Each region object contains a list of destination objects, each destination object contains a list of TOCs, and each TOC contains a list of packages.
Subregions
Subregions represent a subdivision of the regions loaded in the system, and reflect the organization of the main website. For example, the "Italy and Europe" region has a "Italy and Sicily" subregion.
Destinations
Destinations represent groups of TOCs, and reflect the organization of the main website.
Destinations can be pulled from the "Regions" API call (for all regions and destinations), or on an individual basis:
The JSON response contains a list of TOC objects.
TOCs
TOCs represent groups of packages in a given destination, and reflect the organization of the main website.
TOCs can be pulled from the "Regions" API call (for all regions and destrinations), or on an individual basis:
The JSON response contains a list of Package objects.
Packages
Packages represent a particular offering for a given tour. This includes detailed itinerary, travel tips, departure dates, and prices.
Packages can be pulled using the "Package" API call:
Object definitions
Regions
Region members:
ID (string) - A globally unique ID for this Region object
Title (string) - The title or name of this Region
Description (string) - A short paragraph describing this Region
Subregions (array of Subregion objets) - The list of Subregions that belong to this Region object
Subregions
Subregion members:
ID (string) - A globally unique ID for this Subregion object
Title (string) - The title or name of this Subregion
Description (string) - A short paragraph describing this Subregion
Destinations (array of Destination objects) - The list of destinations that belong to this Subregion object
Destinations
Destination members:
ID (string) - A globally unique ID for this Destination object
Title (string) - The title or name of this Destination
Description (string) - A short paragraph describing this Destination
TOCs (array of TOC objects) - The list of TOCs that belong to this Destination object
TOCs
TOC members:
ID (string) - A globally unique ID for this TOC object
Title (string) - The title or name of this TOC
Description (string) - A short paragraph describing this TOC
Packages (array of Package objects) - The list of Packages that belong to this TOC object
Packages
Some package members are only exposed when requesting details on a specific package (e.g. /api/cms/packages/[PACKAGEID]), as opposed to the list of packages you would get from a Regions call (e.g. /api/cms/regions/).
Package members (always exposed):
ID (string) - A globally unique ID for this Package object
Title (string) - The title or name of this Package
Description (string) - A short paragraph describing this Package
LeadPriceLandOnly (numeric) - The lead price for this package when booked without flights
LeadPriceLandAndAir (numeric) - The lead price for this package when booked with flights
Season (string) - The departure date range for this package (e.g. "Feb - Dec '16")
Duration (integer) - The duration in number of days for this package
Countries (array of strings) - The list of countries visited on this package (e.g. "Italy", "Croatia")
PackageCategories (array of strings) - The array of categories this package belongs to (e.g. "Small Groups", "Adventure Travel")
URL (string) - The URL to the landing page for this package
Package members - only exposed with a Package details call (/api/cms/packages/[PACKAGEID]):
Images (array of Image objects) - The list of images/photo gallery that belong to this Package object
Title (string) - The title for this image
Description (string) - A short paragraph describing this image
Image (string) - The URL to the image resource for this image
Thumbnail (string) - The URL to the thumbnail resource for this image (if available)
Maps (array of Map objects) - The list of maps that belong to this Package object. Usually a map showing the itinerary for this package.
Title (string) - The title for this map
Description (string) - A short paragraph describing this map
Image (string) - The URL to the image resource for this map
Thumbnail (string) - The URL to the thumbnail resource for this map (if available)
MiscInfo (array of MiscInfo objects) - The list of additional information that belong to this Package object. Usually a paragraph detailing what is NOT included in the package.
Title (string) - The title for this MiscInfo
Description (string) - A short paragraph describing this MiscInfo
Image (string) - The URL to the image resource for this MiscInfo
Thumbnail (string) - The URL to the thumbnail resource for this MiscInfo (if available)
Highlights (array of Highlight objects) - The list of highlights that belong to this Package object. Usually an HTML-formatted description of the details and inclusions of this package
Title (string) - The title for this Highlight
Description (string) - An HTML-formatted paragraph describing this Highlight
Image (string) - The URL to the image resource for this Highlight
Thumbnail (string) - The URL to the thumbnail resource for this Highlight (if available)
ActivityInfo (array of ActivityInfo objects) - The list of Activity details for this package object. Usually a description of the level of activity (are there any difficult walks etc.)
Title (string) - The title for this ActivityInfo
Description (string) - A short paragraph describing this ActivityInfo
Image (string) - The URL to the image resource for this ActivityInfo
Thumbnail (string) - The URL to the thumbnail resource for this ActivityInfo (if available)
DepartureDateFrom (date) - The first departure date for this package
DepartureDateTo (date) - The last departure date for this package
BookingDateFrom (date) - The first date on which this package can be booked
BookingDateTo (date) - The last date on which this package can be booked
DateSpecific (boolean) - Indicates whether this package must be booked on specific dates, or if the package lets users book any date within a given date range
LandOnlyOK (boolean) - Indicates whether this package can be booked without flights
AirIncluded (boolean) - Indicates whether this package offers flights
ShareOK (boolean) - Indicates whether this package can be booked as a "Share". For example, an individual could book a "half-double" room, and be paired up with another individual traveler to share a room.
ProductCodes (array of strings) - The array of product codes that are tied to this package. For example, a given package could have different products for Monday vs. Wednesday departures. This is important to show the correct itinerary and pricing based on the selected departure date.
Itineraries (array of Itinerary objects) - The array of Itineraries associated with this package
ProductCode (string) - The product code for which this Itinerary is applicable (cf. ProductCodes array above)
ProductName (string) - The name of this product (e.g. "Monday Departures")
Title (string) - The title of this Itinerary object
Image (string) - The URL to the image resource for this Itinerary object
Description (string) - An HTML-formatted description of this Itinerary object
Map (string) - The URL to the map resource for this Itinerary
Optionals (array of Optional objects) - The array of optional additions for this package. Usually optional shore excursions or sightseeing tours.
SupplierID (string) - The ID of the supplier/provider for this optional service
ServiceID (string) - The ID of this optional service
ServiceType (string) - The type of service for this optional service. Common optional service types are:
TRF - Transfer
SST - Sightseeing Tour
MLS - Meal
Title (string) - The title/name of this optional service
Image (string) - The URL to the image resource for this optional service
Description (string) - A short paragraph describing this optional service
OnDay (integer) - The day number on which this optional service is bookable. For example, an optional service that is offered on the third day of the package's total duration would have an OnDay of "3".
Price (numeric) - The lead price for this optional service
PlanGroups (array of PlanGroup objects) - The list of plan groups representing pricing for this package
ProductCode (string) - The ProductCode tied to this PlanGroup object (cf. ProductCodes array above)
ProductName (string) - The name of this product (cf. ProductCodes array above) (eg. "Monday Departures")
Plans (array of Plan objects) - The array of plans tied to this PlanGroup
PlanDescription (string) - The description/name of this Plan object (e.g. "Luxury Class Hotels" or "Tourist Class Hotels")
Rates (array of Rate objects) - The list of pricing for this Plan object
SaleStatus (string) - The status of this departure (e.g. "Sold Out", "Open", "Closed")
DepartureDate (date) - The departure date for which this rate is applicable
PriceLandOnly (numeric) - The per-person package price for this package if booked without flights (if available), based on two adults sharing a room
PriceLandAndAir (numeric) - The per-person package price for this package if booked with flights (if available), based on two adults sharing a room
BookingDateFrom (date) - The first booking date on which this rate is applicable. Note that a departure date may appear multiple times in the rates if there are different prices based on the booking date (e.g. "Book by Dec 2016 and save")
BookingDateTo (date) - The last booking date on which this rate is applicable
Hotels (array of Hotel objects) - The list of hotels tied to this Plan object
SupplierID (string) - The ID of this hotel
SupplierName (string) - The name of this hotel
SupplierRating (numeric) - The rating of this hotel (in number of stars, e.g. "4.5")
Title (string) - The title for this hotel
Description (string) - A short paragraph describing this hotel and its location and features
Image (string) - The URL to the image resource for this hotel