Getting Started

The Intrepid Travel API gives you access to book more than 2,000 different trips across more than 120 different countries. With our tour operated brand featured you can now book Intrepid Travel.

Our API is built using a RESTful design, enabling simple integration to quickly get our systems talking.

It is essential that you read this section before attempting to use the Intrepid Travel API so that you are up to date on our approach and ready to get started.

Obtaining an API Key

Click here to request an API key.

HTTP headers

Include the following HTTP headers in all requests:

  • X-Api-Key – key provided to you by Intrepid
  • Host – api.intrepidgroup.travel
  • Accept – application/json
  • Content-Type – application/json

Relative URIs

All URIs in the examples below are relative, and the request should have the following base URL:

https://api.intrepidgroup.travel

Example relative URI:

/bookings/5057123

Example absolute URI:

https://api.intrepidgroup.travel/bookings/5057123

Resources and collections

Most resources provide both single and collection based URIs for retrieving information.

When retrieving a collection, JSON array in the response shares the name of the resource collection being retrieved (see example below).

/bookings/1234/trips – Retrieve all trips on booking 1234

{
    “trips” : [
        { Trip 1 details },
        { Trip 2 details },
    ]
}

/bookings/1234/trips/5678 – Retrieve individual trip 5678 on booking 1234

{
    Trip 5678 details
}

Error structure

When an API request returns an error, the body of the HTTP response will contain an error in the following structure.

Name
Type
Requirement
Description
errorType
String
Mandatory
Spefic error type, list of error types as below
errors
Array of String
Mandatory
List of error messages
correlationId
String
Mandatory
Unique error ID

Error response will contain error type, this is to identify the cause of the error.

List of error types

Error Type
Description
DataNotAvailable
When request cannot complete due to data unavaliability. (E.g., departure code/id is incorrect or departure no longer for sale.)
NoAccess
Client dont have access to requested data or endpoint.
InvalidEndPoint
Requested endpoint name is incorrect.
InvalidRequest
Request is incorrect, cannot process.
FieldValidationError
Request field validation failed. Fix the errors before request again.
ServiceNotAvailable
An unknown error has occurred and service is not available.
InternalDataError
Issue with internal data. Contact API admin.
QueryStringParameterError
Invalid query string parameter, empty or unexpected value provided in query string parameter.
UnexpectedServerError
Unexpected server error occured while processing the request.
ResourceNotModifiedError
The requested resource hasn't been modified.

When reporting an issue to Intrepid, please send the full error response including the correlation ID. This will allow Intrepid to correlate the error with their logs.

Common Types

This section outlines common types and enumerations which are used across multiple API requests and responses. They will be referenced where appropriate.

Href

This type defines a URI to an API resource.

Name
Type
Requirement
Description
href
String
Mandatory
URI to API resource

Currency

This enumeration defines a subset of ISO-4217 currency codes.

Value
Description
AUD
Australian Dollar
CAD
Canadian Dollar
CHF
Swiss Franc
EUR
Euro
GBP
British Pound
NZD
New Zealand Dollar
USD
US Dollar
ZAR
South African Rand

Title

This enumeration defines the accepted list of customer titles.

Value
Mr
Mrs
Ms
Miss

Passport

This type defines a customer passport.

Name
Type
Requirement
Description
number
String
Mandatory
Passport number
Any value (must have at least 1 non-whitespace character)
nationality
String
Mandatory
Passport nationality
ISO 3166-1 Alpha-2 code (e.g. US)
placeOfIssue
String
Mandatory
Passport place of issue
Any value (must have at least 1 non-whitespace character)
dateOfIssue
String
Mandatory
Passport date of issue
Date
dateOfExpiry
String
Mandatory
Passport date of expiry
Date

Related Products

This type defines a product relationship.

Name
Type
Requirement
Description
href
String
Mandatory
URI of related product
relationship
String
Mandatory
Relationship to trip:
•   preTrip
        Product has been booked for before the trip
•   postTrip
        Product been booked for after the trip

Date

ISO-8601 date of format YYYY-MM-DD

Time

ISO-8601 time of format HH:MM

Room Type

This enumeration defines the list of room types when retrieving prices.

value
Description
twinShare
This is the default price that the specified number of customers will pay when booking this departure on the same booking. Each customer will share a room with another person
single
This is the price that the specified number of customers will pay when booking this departure on the same booking with a single supplement. Each customer will have their own room

Authentication and security

There are two types of tokens/keys provided for authentication, one for the XML feed and the other for the Bookable API. 
The XML feed token can only be used to access XML feeds and the bookable API key is used to access both the 
XML feeds and Bookable API with a few extra requirements for the API.
  •	XML feeds can be requested over both http and https
  •	Bookable API can only be used over https

XML Feed Authentication

Requests are authenticated by the API Key component of the URL. A token will be provided to you by your technical or relationship manager at Intrepid; otherwise please contact api@intrepidtravel.com. The same API Key can be used to access XML feed content for each of the Intrepid brands.

Bookable API Authentication

Requests are authenticated by including the X-Api-Key HTTP header in all requests.  The key is linked to your agent record in our transactional system.  
Only API Partners with a linked agent record can use the Bookable API.  As the API is in soft-launch phase a limited number of beta partners are engaged.  
Soft-launch partners will be provided with an authorised API Key. If you are already using the Intrepid XML Feeds you will have to obtain a different API Key, 
with the added authentication in order to use the Bookable API.

For additional security our API also has IP filtering enabled.  We will require that you provide us with the relevant IP addresses that will be accessing the API.

In contrast to the feed token the X-Api-Key needs to be obtained for each Intrepid brands separately and the brand is decided from the X-Api-Key used in the request.

Api Test Environment

When getting started with this API, we offer a test environment so that you can make test bookings without the risk of disrupting business as usual. The API key we have set up for you should initially just be for the test environment and may change when you are ready to switch to production. Contact api@intrepidtravel.com if you do not already have an API Key to access the test environment.

All URIs in the examples below are relative, and the request should have the following base URL:

Test Environment:

https://api-test.intrepidgroup.travel

Production:

https://api.intrepidgroup.travel

Example relative URI:

/bookings/5057123

Example absolute URI:

https://api.intrepidgroup.travel/bookings/5057123