Hack with TourCMS
While the TourCMS Marketplace API is always open for developers to freely register and build upon, we are providing special API credentials just for hack events which are already connected with some great Tour Operators to allow you to get up and running quickly.
TourCMS often takes part in THack development challenges. THack is a development forum created and presented by Tnooz to encourage collaboration in the travel tech development community.
TourCMS is a reservation system used by over 400 small Tour and Activity Operators around the world to sell products and services ranging from activities such as rafting, cycling to multi day tours such as historic cruises or walks.
The TourCMS Marketplace API provides a REST based XML interface to search and display these products. Products can be filtered by type, keyword, geographic location (every item has a lat/long) and more.
Results from THack London 2011
Voice activated Android App by Sita Lab (THack London 2011 winner)
What's possible with the API?
We think a lot, in addition to the hacks from a previous event mentioned above take a look at the TourSift website which is built entirely using the TourCMS Marketplace API.
New Deals API. The Search Tours API method has been extended to show the most recently created deal and the soonest deal for each Tour returned. You can also filter to show just products with special offers loaded, find deals near a specific geographic point / keyword etc.
If you just want to get up and running using the API to search and display products (Tours/Activites/Ski Chalets etc) then you may want to take a look at our JSON Repeater, for the purposes of hack events we are hosting a version of this allowing you to query the API using JSON/JSONP without deploying any code - works great for cross domain XHR using JSONP.
Learn more about the JSONP interface or read on for details on full API access which enables much more of the API.
API authentication details
You can use the following details in your code to connect to the test account we have set up for hack events. While this is a test account all of the data returned is live (so don't make any test bookings!)
- Marketplace ID: 126
- API Private Key: 5aed2d3d69ea
Alternatively (or additionally) please do feel free to sign up for your own account, there's no charge and you'll get access to an API test harness and some other handy tools. If you are using your own account you will need to ask TourCMS suppliers to connect to you otherwise you won't have any products to play with - so maybe best to use our sample credentials to get you up and running.
Test Channel (Tour Operator)
All of the channels accessible via the above API credentials are real live businesses - except for TourCMS Example Tour Operator (channel ID 3930). So, if your hack involves making bookings or enquiries then please do send them to channel ID 3930.
Sample code & documentation
The TourCMS Marketplace API is REST based and returns XML so should be accessible in any programming language, we do have one or two resources to help you on the way:
- PHP developers - we have a PHP client library which handles authentication, provides wrapper functions for all of the available API methods and can return a simpleXML object. Most of the API method pages feature PHP code snippets and our API examples are written in PHP.
- .Net developers - we have a .Net client library which handles authentication and provides documented wrapper functions for all API methods. Most of the API method pages feature VB and C# code snippets.
- Python developers - Python wrapper class for the TourCMS Marketplace API.
- Ruby developers - the team from flextrip have integrated with the TourCMS API using Ruby and have kindly open sourced their wrapper source code and written some code examples - get the code on github.
- Java developers - previous THack winners (the team from Sita Lab) have kindly provided us with their Java code for generating the required signature header and a running a simple tour search - Download Java code.
- Other languages - the API documentation includes all the information you need to connect and you are welcome to use the code from any of the other language implementations as a reference.