home > support > API > getting started
Broadly speaking there are two types of organisation accessing TourCMS API:
The main products & services exposed via TourCMS are referred to as Tours. This is regardless of whether they are actually tours, activities, transfers etc.
Individual instances of a Tour - for example the 8am departure on the 3rd September - are referred to as Departures*. Tour Departures are priced using Rates, e.g. an "Adult" rate, a "Child" rate etc.
When you reserve/book a Tour for a Customer you will create a Booking.
Tours and Bookings are accessed via Channels. Channels allow operators to expose their core Tour data while applying a specific branding, descriptions, markups, exchange rates etc. As an Operator you will have one or more Channels, as a Marketplace Agent you will be connecting to Channels created by the Operators you resell.
* Other pricing structures are supported by TourCMS, including "Freesale seasons" and limited "Hotel" type pricing, however these are not in wide use and largely not supported by Marketplace Agents.
TourCMS API is accessed via HTTP and authentication is via a signed hash created using a shared secret API key.
Operators will have an API key for each Channel they create, Travel Agents have a single API key for use across all Channels they connect to.
Full detail on creating the Authorization header is available, however there are client libraries and sample code for many popular programming languages that will make things easier.
All requests to TourCMS API should include a HTTP User-Agent header. This should be something that can identify your account and the specific application that is connecting to the TourCMS API, e.g. User-Agent: Example Tours Website or User-Agent: Example Tours Accounting.
Please also include your Marketplace ID (0 in supplier accounts) and Channel ID in brackets following your user agent string. If you are using a TourCMS-provided client library there is no need to take this step as by default the library will add these details for you when you provide a User-Agent string. E.g.: User-Agent: Example Tours Website (0_3930)
To aid in tracking/troubleshooting specific requests we would suggest sending an X-Request-Id request header when calling TourCMS API. This value of this header should be at least somewhat unique over a period of time, and should change with each request request. A randomly generated UUID4 is often used and is a good option. E.g.: X-Request-Id: 2357bed7-a764-48b5-9719-d2f54d5401b3.
Additionally TourCMS will return you an X-Correlation-Id header as part of the response. This is TourCMS internal reference for the request and you may wish to log this too.
API use is restricted to 3000 GET and 3000 POST calls per hour (consider caching of some GET requests).
If you are a Marketplace agent this is 3000 calls per channel per hour (i.e. lots!) We reserve the right to alter this limit based on usage patterns. Current usage status is returned in the header:
X-RateLimit-Limit: The current limit in effect
X-RateLimit-Remaining: The number of hits remaining before you are rate limited
You can also call the Rate Limit Status method to find your current remaining number of hits, calls to this method do not count towards your limit.
Here the getting started guide differs depending on whether you are accessing TourCMS as an Operator (loading your own tours & activities to sell) or a Marketplace Agent (selling tours & activities loaded by others).