Skip to content
English
  • There are no suggestions because the search field is empty.

How Can I Use the Itinerary API (V7) to Fetch Itinerary Data?

The Wetu Itinerary API allows you to load, create, update, and delete itineraries programmatically. It supports both SOAP/XML and JSON REST formats, and is designed to work alongside the Wetu Content API.

Audience: This article is intended for software developers integrating with the Wetu Itinerary API. Familiarity with web services is assumed. We recommend exploring the Wetu Itinerary Builder, Digital Itinerary, and Printable Itinerary before starting, as these provide context for the underlying data model.

Quick Links
- Overview & Endpoints
- SOAP / XML Functions
- JSON Functions
- XML Examples
- Data Models
- Enumerations
- Need Help?

Overview & Endpoints

The Itinerary API is available via two formats. Both are served over HTTPS.

SOAP / XML Web Service

SOAP https://wetu.com/Map/ItineraryServiceV7.asmx

JSON REST Service

Individual endpoints are listed under each JSON function below. All accept parameters via querystring or POST variables.

Property naming: SOAP/XML uses CamelCase. JSON uses snake_case (e.g. ItineraryId → itinerary_id). The JSON API is read-only.

SOAP / XML Functions

LoadItinerary
Returns a single itinerary. Use this to integrate an itinerary into a webpage or back-office system.
PARAMETER TYPE DESCRIPTION
identifier required string UUID-style unique identifier of the itinerary
sessionToken optional string Session token identifying the requesting user
Returns

Itinerary

LoadItineraries

Returns a paginated list of itineraries. Use this to search for an itinerary to display or import.
 
PARAMETER TYPE DESCRIPTION

resultsPerPage
required

int Limits the number of results returned per page
pageStart
required
int Starting page for results (0-based)
typeFilter
required
ItinerarySearchFilterEnum Filters by itinerary type - see values below
ownItinerariesOnly
required
bool If true, limits results to itineraries built by the authenticated consultant only
searchText
optional
string Filters by name, client name, or reference number
sort
required
BrowseableItinerarySortOrderEnum Sort order for results - see values below
sessionToken
required
string

Session token identifying the requesting user

TypeFilter Values
Personal; Sample; AllItineraries; DayComponent; Component; AllComponents; DayTours; PublishedDayTours; MultiDayTours; All
 
Returns
array of BrowseableItineraryPage
 

LoadDayTours

Returns a list of day tours - including your private day tours and publicly available day tours from other providers.

PARAMETER TYPE DESCRIPTION
searchText
optional
string Filters by name or reference number
sort
required
SupplierItinerarySortOrderEnum Sort order - ItineraryNameAsc/Desc, ReferenceNoAsc/Desc, DaysAsc/Desc, LastModifiedAsc/Desc
sessionToken
required
string Session token identifying the requesting user

Returns
array of SupplierItineraryPage

AuthenticateAndSaveItinerary

Saves a new itinerary or updates an existing one. Single-call alternative to calling AuthenticateUser + SaveItinerary in succession.

PARAMETER TYPE DESCRIPTION
itinerary required Itinerary The complete itinerary object to save or update
username required string Wetu account username
password required string Wetu account password

Returns
ItinerarySummary

SaveItinerary

Saves a new itinerary or updates an existing one using a session token. See also AuthenticateAndSaveItinerary.

PARAMETER TYPE DESCRIPTION
itinerary required Itinerary The complete itinerary object to save or update
sessionToken required string Session token identifying the requesting user

Returns
ItinerarySummary

AuthenticateUser

Authenticates a user with their username and password, returning a session token for subsequent calls.

PARAMETER TYPE DESCRIPTION
username required string Wetu account username
password required string Wetu account password

Returns
Session

DeleteItineraries

Deletes one or more previously created itineraries. Failure is signalled via an HTTP error status code.

PARAMETER TYPE DESCRIPTION
identifiers required array of string Set of itinerary identifiers (UUIDs) to delete
sessionToken required string Session token identifying the requesting user

Returns
none

LoadBranding

Loads the branding for an itinerary. Used for display or generating external documents.

PARAMETER TYPE DESCRIPTION
identifier required string UUID-style unique identifier of the itinerary

Returns
ItineraryBranding

LoadDefaultBranding

Loads the default branding for an itinerary (used when the itinerary is branded as an agent or identity).

PARAMETER TYPE DESCRIPTION
identifier required string UUID-style unique identifier of the itinerary

Returns
ItineraryBranding

GenerateMapViewForItinerary

Returns a URL to a representative map image of the itinerary. Use for generating external documents.

PARAMETER TYPE DESCRIPTION
identifier required string UUID-style unique identifier of the itinerary
width required int CSS pixel width of the desired image (max 640)
height required int CSS pixel height of the desired image (max 640)
scale required int Scale multiplier: 1 or 2. Using 2 returns double resolution (max 1280×1280)
mode required string Controls which travel is shown on the map — see values below

Mode Values
at — All travel including international flights eiof
— Excludes inbound/outbound flights (incl. long-haul) eadt
— Excludes long-haul/overnight flights eiot
— Excludes inbound/outbound travel (default)

Returns
string (URL)

Search

Simple search of Wetu content. Useful for mapping between databases. For bulk mapping, use the Wetu Content API instead.

PARAMETER TYPE DESCRIPTION
name required string Name to search for
type optional string Type hint to bias results (most common: Accommodation)
sessionToken required string Session token identifying the requesting user

Returns
array of SearchPin

back to top


JSON Functions

Note: The JSON API is read-only. To create or update itineraries, use the SOAP/XML API.

LoadItinerary - Load a single itinerary

Returns a single itinerary for integration into a webpage or back-office system.

GET https://wetu.com/API/Itinerary/V7/Get?id=<IDENTIFIER>

PARAMETER TYPE DESCRIPTION
id required string Identifier of the requested itinerary or day tour

Load Supporting Content - Loads all supporting content for an itinerary

Returns all supporting content for an itinerary, including Day Tours and Content Entities (pins).

GET https://wetu.com/API/Itinerary/V7/GetContent?id=<IDENTIFIER>&appKey=<APPKEY>

PARAMETER TYPE DESCRIPTION
id required string Identifier of the requested itinerary or day tour
appKey required string Your application identifier (available from Wetu on request)

Returns

{ "day_tours": [], "pins": [] }

See the Wetu Content API documentation for details on the structure of the pins collection.

Branding — Load itinerary branding

PARAMETER TYPE DESCRIPTION
id required string Identifier of the requested itinerary or day tour

DefaultBranding — Load default branding

Loads default branding for an itinerary (used when branded as an agent or identity).

GET https://wetu.com/API/Itinerary/V7/DefaultBranding?id=<IDENTIFIER>

PARAMETER TYPE DESCRIPTION
id required string Identifier of the requested itinerary or day tour

List — List available itineraries

GET https://wetu.com/API/Itinerary/V7/List?username=<USERNAME>&password=<PASSWORD>

GET https://wetu.com/API/Itinerary/<APIKEY>/V7/List

GET https://wetu.com/API/Itinerary/V7/List?appkey=<APPKEY>

PARAMETER TYPE DESCRIPTION
search optional string Text to filter results on
type optional string Filter by itinerary type. Default: AllItineraries. Options: Personal, Sample, All, DayComponent, Component, AllComponents, AllItineraries
own optional bool If true, returns only itineraries from the authenticated user. Default: false
sort optional string Sort order. Default: LastModifiedDesc. Options: ClientNameAsc/Desc, ItineraryNameAsc/Desc, ReferenceNoAsc/Desc, StartDateAsc/Desc, LastModifiedAsc/Desc
start optional int Numeric offset to begin listing from. Default: 0
results optional int Maximum number of results to return. Default: 100
tags optional string Comma-separated list of tag filters. Filters are inclusive (itinerary must match all tags). Tags are client-specific.
operatorid optional int App key integrations only. Filters results to a specific operator.

Returns
array of BrowseableItineraryPage

MapView — Generate a map image URL

Returns a URL to a representative map image for the itinerary.

GET https://wetu.com/API/Itinerary/V7/MapView?id=<IDENTIFIER>&width=<WIDTH>&height=<HEIGHT>&scale=<SCALE>&mode=<MODE>

PARAMETER TYPE DESCRIPTION
width required int CSS pixel width (max 640)
height required int CSS pixel height (max 640)
scale required int 1 or 2. Using 2 returns double resolution (max 1280×1280)
mode required string at / eiof / eadt / eiot (default) - controls which travel is shown on the map

back to top


XML Examples

Example 1 — One accommodation

A minimal itinerary: one night at a property, followed by a departure leg.

<?xml version="1.0"?>
<itinerary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Type>Personal</Type>
<Identifier>27BCEA41-DA52-493E-92A6-7B2E9A25EE35</Identifier>
<Days>2</Days>
<n>Minimal Example</n>
<Summary>1 night at Ellerman House, departure</Summary>
<StartDate>2016-01-01T00:00:00</StartDate>
<Legs>
<ItineraryLeg xsi:type="ItineraryLegByDay">
<ItineraryLegId>1</ItineraryLegId>
<Sequence>0</Sequence>
<ContentEntityId>3733</ContentEntityId>
<Nights>1</Nights>
<Type>Standard</Type>
<Days>
<ItineraryLegDay>
<Day>0</Day>
<RoomBasis>BedAndBreakfast</RoomBasis>
<DrinksBasis>None</DrinksBasis>
</ItineraryLegDay>
</Days>
</ItineraryLeg>
<ItineraryLeg xsi:type="ItineraryLegByDay">
<ItineraryLegId>2</ItineraryLegId>
<Sequence>1</Sequence>
<ContentEntityId>0</ContentEntityId>
<Nights>0</Nights>
<Type>Departure</Type>
<Days>
<ItineraryLegDay>
<Day>0</Day>
<RoomBasis>BedAndBreakfast</RoomBasis>
<DrinksBasis>None</DrinksBasis>
</ItineraryLegDay>
</Days>
</ItineraryLeg>
</Legs>
</itinerary>

Example 2 — Two accommodations with transfer

Two-night itinerary with a transfer route between properties.

<?xml version="1.0"?>
<itinerary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Type>Personal</Type>
<Identifier>5A00FFF2-4F56-41A1-AC6F-C902917729ED</Identifier>
<Days>3</Days>
<n>Two Accommodation Example</n>
<Summary>1 night Ellerman House, 1 night Cape Grace, departure</Summary>
<StartDate>2016-01-01T00:00:00</StartDate>
<Legs>
<ItineraryLeg xsi:type="ItineraryLegByDay">
<ItineraryLegId>1</ItineraryLegId>
<Sequence>0</Sequence>
<ContentEntityId>3733</ContentEntityId>
<Nights>1</Nights>
<Type>Standard</Type>
<Days>
<ItineraryLegDay>
<Day>0</Day>
<RoomBasis>BedAndBreakfast</RoomBasis>
<DrinksBasis>None</DrinksBasis>
</ItineraryLegDay>
</Days>
</ItineraryLeg>
<ItineraryLeg xsi:type="ItineraryLegByDay">
<ItineraryLegId>2</ItineraryLegId>
<Sequence>1</Sequence>
<ContentEntityId>1158</ContentEntityId>
<Nights>1</Nights>
<Type>Standard</Type>
<Days>
<ItineraryLegDay>
<Day>0</Day>
<RoomBasis>BedAndBreakfast</RoomBasis>
<DrinksBasis>None</DrinksBasis>
</ItineraryLegDay>
</Days>
</ItineraryLeg>
<ItineraryLeg xsi:type="ItineraryLegByDay">
<ItineraryLegId>3</ItineraryLegId>
<Sequence>2</Sequence>
<ContentEntityId>0</ContentEntityId>
<Nights>0</Nights>
<Type>Departure</Type>
<Days>
<ItineraryLegDay>
<Day>0</Day>
<RoomBasis>BedAndBreakfast</RoomBasis>
<DrinksBasis>None</DrinksBasis>
</ItineraryLegDay>
</Days>
</ItineraryLeg>
</Legs>
<Routes>
<ItineraryRoute>
<Mode>Transfer</Mode>
<StartLegId>1</StartLegId>
<EndLegId>2</EndLegId>
<StartContentEntityId>3733</StartContentEntityId>
<EndContentEntityId>1158</EndContentEntityId>
<Sequence>0</Sequence>
<Type>InterLeg</Type>
</ItineraryRoute>
</Routes>
</itinerary>

Example 3 — Extended: one accommodation, 3 nights, with activities

Three nights at a property with included and recommended daily activities.

<?xml version="1.0"?>
<itinerary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Type>Personal</Type>
<Identifier>3B289D89-945F-4328-A7A4-D345E780BD0F</Identifier>
<Days>4</Days>
<Name>Minimal Example Three</Name>
<Summary>A description of this itinerary: extended example - 3 nights at Ellerman House with activities, departure</Summary>
<StartDate>2016-01-01T00:00:00</StartDate>
<Legs>
<ItineraryLeg xsi:type="ItineraryLegByDay">
<ItineraryLegId>1</ItineraryLegId>
<Sequence>0</Sequence>
<ContentEntityId>3733</ContentEntityId>
<Nights>3</Nights>
<Type>Standard</Type>
<Days>
<ItineraryLegDay>
<Day>0</Day>
<RoomBasis>BedAndBreakfast</RoomBasis>
<DrinksBasis>None</DrinksBasis>
<Notes>Today, you enjoy a ride up the cableway to the top of the world famous Table Mountain. In the afternoon, relax and explore the Kirstenbosch Botanical Gardens.</Notes>
<Activities>
<ItineraryLegDayActivity>
<Sequence>0</Sequence>
<Name>Table Mountain Cableway</Name>
<Type>Included</Type>
<ContentEntityId>231</ContentEntityId>
<TimeSlot>None</TimeSlot>
</ItineraryLegDayActivity>
<ItineraryLegDayActivity>
<Sequence>1</Sequence>
<Name>Table Mountain Cableway</Name>
<Type>Included</Type>
<ContentEntityId>728</ContentEntityId>
<TimeSlot>None</TimeSlot>
</ItineraryLegDayActivity>
</Activities>
</ItineraryLegDay>
<ItineraryLegDay>
<Day>0</Day>
<RoomBasis>BedAndBreakfast</RoomBasis>
<DrinksBasis>None</DrinksBasis>
<Notes>Head out the Cape Winelands and enjoy a tasting at Spier Wine Estate, followed by lunch at "The Goatshed" and another wine tasting at Fairview.</Notes>
<ConsultantNotes>You mentioned being an avid wine lover, so we've organised this excursion for you.</ConsultantNotes>
<Activities>
<ItineraryLegDayActivity>
<Sequence>0</Sequence>
<Name>Wine Tasting at Spier</Name>
<Type>Included</Type>
<ContentEntityId>245</ContentEntityId>
<TimeSlot>Morning</TimeSlot>
</ItineraryLegDayActivity>
<ItineraryLegDayActivity>
<Sequence>1</Sequence>
<Name>The Goatshed</Name>
<Type>Included</Type>
<ContentEntityId>1284</ContentEntityId>
<TimeSlot>Lunch</TimeSlot>
</ItineraryLegDayActivity>
<ItineraryLegDayActivity>
<Sequence>2</Sequence>
<Name>Wine Tasting at Fairview</Name>
<Type>Included</Type>
<ContentEntityId>1282</ContentEntityId>
<TimeSlot>Afternoon</TimeSlot>
</ItineraryLegDayActivity>
</Activities>
</ItineraryLegDay>
<ItineraryLegDay>
<Day>0</Day>
<RoomBasis>BedAndBreakfast</RoomBasis>
<DrinksBasis>None</DrinksBasis>
<Notes>Spend today exploring Cape Town at your leisure. We've suggested a few ideas.</Notes>
<Activities>
<ItineraryLegDayActivity>
<Sequence>0</Sequence>
<Name>Robben Island Ferry</Name>
<Type>Recommended</Type>
<ContentEntityId>144</ContentEntityId>
<TimeSlot>None</TimeSlot>
</ItineraryLegDayActivity>
<ItineraryLegDayActivity>
<Sequence>1</Sequence>
<Name>Robben Island</Name>
<Type>Recommended</Type>
<ContentEntityId>45</ContentEntityId>
<TimeSlot>None</TimeSlot>
</ItineraryLegDayActivity>
<ItineraryLegDayActivity>
<Sequence>2</Sequence>
<Name>Two Oceans Aquarium</Name>
<Type>Recommended</Type>
<ContentEntityId>145</ContentEntityId>
<TimeSlot>None</TimeSlot>
</ItineraryLegDayActivity>
<ItineraryLegDayActivity>
<Sequence>3</Sequence>
<Name>V&A Waterfront</Name>
<Type>Recommended</Type>
<ContentEntityId>140</ContentEntityId>
<TimeSlot>None</TimeSlot>
</ItineraryLegDayActivity>
<ItineraryLegDayActivity>
<Sequence>4</Sequence>
<Name>Simonstown</Name>
<Type>Recommended</Type>
<ContentEntityId>77</ContentEntityId>
<TimeSlot>None</TimeSlot>
</ItineraryLegDayActivity>
<ItineraryLegDayActivity>
<Sequence>5</Sequence>
<Name>Cape Point Nature Reserve</Name>
<Type>Recommended</Type>
<ContentEntityId>72</ContentEntityId>
<TimeSlot>None</TimeSlot>
</ItineraryLegDayActivity>
</Activities>
</ItineraryLegDay>
</Days>
</ItineraryLeg>
<ItineraryLeg xsi:type="ItineraryLegByDay">
<ItineraryLegId>2</ItineraryLegId>
<Sequence>1</Sequence>
<ContentEntityId>0</ContentEntityId>
<Nights>0</Nights>
<Type>Departure</Type>
<Days>
<ItineraryLegDay>
<Day>0</Day>
<RoomBasis>BedAndBreakfast</RoomBasis>
<DrinksBasis>None</DrinksBasis>
<Notes>Unfortunately, today is your last day.</Notes>
</ItineraryLegDay>
</Days>
</ItineraryLeg>
</Legs>
</itinerary>

back to top


Data Models

The following objects are returned by or accepted by the API functions above.

BrowseableItineraryPage

PROPERTY TYPE DESCRIPTION
Itineraries array of BrowseableItinerary The itineraries in this page
TotalResults int Total number of results available (used for paging)

BrowseableItinerary

PROPERTY TYPE DESCRIPTION
Type ItineraryTypeEnum Type of itinerary
Identifier string Unique GUID for this itinerary
IdentifierKey string Shorter 6-character key for loading via the mobile app
Days int Duration of the itinerary in days
Name string Name of the itinerary
ReferenceNumber string Operator's reference number for this itinerary/booking
ClientName string Name of the client
ClientEmail string Email address of the client
StartDate datetime Start date of the itinerary; null for Sample, Components, Day Tours
LastModified datetime UTC timestamp of last modification
AccessCount int Total number of views (web and mobile)
IsDisabled bool If true, prevents viewing on web and mobile
Categories array of string Identifying tags/categories for the itinerary
LastViewed datetime UTC timestamp of last viewing
BookingStatus BookingStatusEnum Current booking status

ItinerarySummary

PROPERTY TYPE DESCRIPTION
Name string Name of the itinerary
Identifier string Unique UUID for this itinerary
IdentifierKey string Shorter 6-character key (Personal itineraries with dates only)

Session

PROPERTY TYPE DESCRIPTION
ExpiryDate datetime Session expiry date - token not accepted after this date
OperatorId int ID of the authenticated operator
OperatorUserId int ID of the authenticated user
OperatorName string Name of the authenticated operator
Username string Username of the authenticated user
SessionStatuses array of SessionStatus Status flags for this session
Token string Session token used by other API functions

ItineraryBranding

PROPERTY TYPE DESCRIPTION
Name string Company name
LogoUrl string Full path to the company logo
LogoUrlFragment string Partial URL to logo - use with the Wetu Image Scaler
Website string Company website URL
Email string Company contact email
Phone string Company contact phone number
Facebook string Company Facebook URL
TwitterAccount string Company Twitter handle
Description string Company description
ConsultantName string Consultant name (if available)
ConsultantEmail string Consultant contact email (if available)
ConsultantPhone string Consultant contact phone number
ConsultantSkype string Consultant Skype address
ConsultantPhotoUrl string Full path to consultant photo (if available)
ConsultantPhotoUrlFragment string Partial URL - use with the Wetu Image Scaler
ConsultantDescription string Description of the consultant
EnquiryUrl string URL for booking enquiries
Terms string Company terms and conditions

SearchPin

PROPERTY TYPE DESCRIPTION
ContentEntityId int Unique Wetu ID for the property
Name string Property name
Area string Indicative area for the property
Latitude double Latitude in decimal degrees
Longitude double Longitude in decimal degrees
IBrochure int ID of associated Wetu iBrochure (if any)
Country string Country the property is in
Location string Tighter location for the property
Stars int Star rating
Category string Category classification
Subcategory string Secondary classification (more specific than Category)

Note: The ItineraryItineraryLegItineraryRouteItineraryTravelArrangementItineraryCarHire, and related sub-models contain many additional properties. For the complete property listings of these complex objects, refer to the full API reference or contact enterprise@wetu.com.

back to top


Enumerations

ItineraryTypeEnum

Personal; Sample; DayComponent; Component; DayTour; MultiDayTour

BookingStatusEnum

None; AwaitingQuotation; Quoted; Booked; DidNotBook; Invoiced; PaymentDue; Paid; Travelled; Cancelled; Provisional

SessionStatus

AuthenticationFailure; User; Admin; Disabled

ItineraryRouteHandlingModeEnum

UseRoutesOnly; UseProvidedRoutesWithTravelArrangements; AutoGenerateRoutesFromTravelArrangements; PlaceholderRoutesWithTravelArrangements

ItineraryRouteTypeEnum

None; InLeg; InterLeg; Arrival; Departure; Mobile; Overnight; DayTour

Many options above have a corresponding NoRoute variant (e.g. SelfdriveNoRoute), which displays a straight line between locations. A custom path can also be provided via the Points collection on the route.

ItineraryTravelArrangementModeEnum

ScheduledFlight; CharterFlight; Transfer; Train; Boat; Helicopter

ItineraryDrinksBasisEnum

None; DrinksLocalBrands; DrinksExclSpirits; AllDrinks

ItineraryLegDayElementTimeEnum

None; Start; Morning; Lunch; Afternoon; Dinner; Evening

ItineraryLegRoomTypeEnum

Single; Double; Twin; Triple; Family

ItineraryElementTypeEnum

Included; Recommended; Optional; Stop; Information; Destination

ItineraryTravellerTypeEnum

Adult; Child

ItineraryLegTypeEnum

Standard; Mobile; OwnArrangement; OvernightTravel; Departure

NotificationFrequencyEnum

Always; None; FirstView

back to top

Need Help?

For support reach out to the Wetu enterprise team.
enterprise@wetu.com

back to top