Alps2Alps as an Amitours group company since 2010 has developed into one of the biggest transportation service providers in Alpine region and has become known within the industry for quality and proffesional service for a surprisingly affordable price.
Become a partner and work with us - the industry leader providing excursions and airport transfer services for groups and individuals. Find out about the many services you can offer to your customers and benefit from the sales. Sign up using the form below and we will contact you within 2 working days.
We will set you up with an account, so you can make transfer bookings for your customers with us easily. You can benefit from reduced rates on our transfer services and earn a commission on your transfer bookings. Sign up to become a partner now!
Don't have an account?
We can offer various integration options of booking to suit your needs.
One of these options fits you, if you run a website that has visitors who are interested in alpine sports or just travel to Alpine region, but who would like a transfer options to ski resort or airport. Then you can well place our link, banner or form Widget into your page to offer your visitors the chance to book transfers. For each booking you earn a commission on every sale made through your page.
You can choose API integration, if you have your own booking platform for your business. Use our API to integrate our booking engine into your own system and save time in the management and arrangement of your transfer bookings.
We offer a range of linking options for you to be able to sell transfers, as well as you can track every sale and earned commisions in your partner panel. After becoming a partner you will receive your own promo code and API key and access to your partner panel. Just choose from several integration options to use our booking engine.
If you would like more detailed information about benefits or integration, please, email us to info@alps2alps.com.
Your personal link contains you promo code, for example, https://www.alps2alps.com/?promo_code=your_promo_code
.
You can share this link or post it in your own page. You will receive commission for every booking made through your link.
You can use your personal link with one of our banners or request a personal banner. Personal banner is made just for you and will fit perfectly with your webpage or social media page.
Below you can see examples of our banners:
You can use our form widget to insert Alps2Alps booking form straight into your website.
Insert the following code where you want the form to appear (exact location inside the <body>
tag) and replace "your_promo_code" with your personal promo code.
<script src="https://www.alps2alps.com/js/widget.min.js" data-promo-code="your_promo_code"></script>
You can use our API to seamlessly integrate our booking engine into your own system.
Please find the API documentation below.
Method creates and returns an access token that needs to be used to make authorized API calls.
To make an authorized API call add Authorization: Bearer <token>
header to your request.
ⓘ Access token is valid for one day (24 hours) after creation.
INPUT
{ "api_key": "your_api_key", "api_secret": "your_api_secret" }
OUTPUT
{ "token": "your_access_token", "created_at": "2023-09-24 12:37:48", "current_server_time": "2023-09-24 12:37:48" }
Method returns array of all transfer destinations and corresponding route codes. Route codes should be used when creating a transfer and requesting offer selection.
ⓘ This method requires authorization. Add Authorization: Bearer <token>
header to your request.
OUTPUT
{ "0": "--Airport or Resort--", "1": "--From-Airport--", "airport-15": "Annecy Meythet Airport", "airport-22": "Basel Airport", "airport-3": "Chambery Airport", "airport-18": "Freidrichshafen Airport", "airport-1": "Geneva Airport", "airport-2": "Grenoble Airport", "airport-25-w": "Turin Airport", "2": "", "3": "--From-City--", "city-36": "Chambery City" }
Method returns either array or list containing HTML <option>
tags for transfer destinations that are available based on provided route code.
By default this methods returns an array of transfer destinations. To return HTML code you should add the optional parameter html with value 1.
Returned HTML code is ready to be inserted inside <select>
tag and is useful if you are updating your form using AJAX.
ⓘ This method requires authorization. Add Authorization: Bearer <token>
header to your request.
OUTPUT
Array
{ "5": "--To-Resort--", "resort-184": "Brand bei Bludenz", "resort-185": "Dalaas \/ Wald ", "resort-182": "Gargellen", "resort-168": "Ischgl", "resort-187": "Kl\u00f6sterle am Arlberg", "resort-166": "Lech am Arlberg", "resort-179": "Serfaus - Fiss - Ladis", "resort-167": "St Anton am Arlberg", "resort-188": "St Gallenkirch ", "resort-194": "Z\u00fcrs am Arlberg", "8": "", "9": "--Other--", "other": "Other Address" }
HTML
"--To-Resort--<\/option>Brand bei Bludenz<\/option>Dalaas \/ Wald <\/option>Gargellen<\/option>Ischgl<\/option>Kl\u00f6sterle am Arlberg\/ Kloesterle am Arlberg<\/option>Lech am Arlberg<\/option>Serfaus - Fiss - Ladis<\/option>St Anton am Arlberg<\/option>St Gallenkirch <\/option>Z\u00fcrs am Arlberg\/ Zuers am Arlberg<\/option><\/option>--Other--<\/option>Other Address<\/option>"
Method returns an array of base prices based on passenger count for all routes or routes containing a specific destination based on provided destination code.
To return only latest base prices you should add the optional parameter since containing the Unix timestamp of the earliest time to check.
ⓘ This method requires authorization. Add Authorization: Bearer <token>
header to your request.
OUTPUT
{ "airport-1": { "resort-1": [ { "vehicle": "2", "pax_min": "1", "pax_max": "2", "price": "231" }, { "vehicle": "3", "pax_min": "3", "pax_max": "3", "price": "248" } ], "resort-2": [ { "vehicle": "2", "pax_min": "1", "pax_max": "2", "price": "277" }, { "vehicle": "2", "pax_min": "3", "pax_max": "3", "price": "336" } ] }, "airport-2": { "resort-2": [ { "vehicle": "3", "pax_min": "1", "pax_max": "2", "price": "330" }, { "vehicle": "10", "pax_min": "3", "pax_max": "3", "price": "385" } ] } }
Method returns an array of all active and upcoming markup rules list for all routes or routes containing a specific destination based on provided destination code.
Returned data is separated into pages and you should query each page by adding the optional parameter page. You can also change the page size by setting the optional parameter page_size, which has a default value of 1000.
To return only latest markup rules you should add the optional parameter since containing the Unix timestamp of the earliest time to check.
Please note that the returned values are subject to change and should only be used as a baseline when setting up webhook for pricing changes. To use price markup change webhook, please contact us.
Usage rules:
ⓘ This method requires authorization. Add Authorization: Bearer <token>
header to your request.
OUTPUT
{ "pages": 67, "page": 1, "data": [ { "weekday_from": "6", "weekday_to": "6", "vehicle": "2", "date_from": "2021-12-01", "date_to": "2021-12-13", "time_from": "00:00:00", "time_to": "05:00:00", "percentage": "70", "level": "1", "routes": { "airport-1": [ "resort-1", "resort-2", "resort-3", "resort-4" ], "airport-2": [ "resort-1", "resort-2", "resort-3" ] } }, { "weekday_from": "6", "weekday_to": "6", "vehicle": "2", "date_from": "2021-12-01", "date_to": "2021-12-13", "time_from": "09:00:00", "time_to": "14:00:00", "percentage": "80", "level": "1", "routes": { "resort-1": [ "airport-1", "train_station-11" ], "resort-2": [ "airport-1", "airport-2", "airport-3" ] } } ] }
Method returns maximal passenger count. If both route codes are provided, maximal passenger count for that specific route will be returned. If no parameters are present, default maximal passenger count will be returned.
ⓘ This method requires authorization. Add Authorization: Bearer <token>
header to your request.
OUTPUT
49
Note that outbound and return datetime refers to date and time of arrival to and departure from airport, city or train station.
All prices are returned as EUR gross value.
ⓘ This method requires authorization. Add Authorization: Bearer <token>
header to your request.
INPUT
{ "Transfer": { "is_return": "1", "route_from_code": "airport-38", "route_to_code": "resort-332", "return_route_to_code": "airport-41", "outbound_date": "2017-12-15", "outbound_time_hours": "3", "outbound_time_minutes": "0", "return_date": "2017-12-18", "return_time_hours": "21", "return_time_minutes": "15", "adult_count": "2", "children_count": "0", "return_adult_count": "2", "return_children_count": "0" }, "AdditionalInformation": { "booster_seat_count": "0", "child_seat_count": "0", "ski_count": "0", "snowboard_count": "0", "return_booster_seat_count": "0", "return_child_seat_count": "0", "return_ski_count": "0", "return_snowboard_count": "0", "accommodation_name": "Hotel Name", "accommodation_address": "Hotel Address", "flight_number": "FL123", "return_flight_number": "FL321", "additional_information": "" } }
OUTPUT
{ "Transfer": { "id": 43, "TransferSelection": { "outbound": { "identifier": "A1", "from": "Bergamo airport (Milan Orio)", "to": "Alpe di Pampeago", "is_to_resort": 1, "flight_date_time": "2017-12-15 13:00:00", "requested": { "pick_up_date_time": "2017-12-15 13:00:00", "price": 186.2, "travel_time": "00:20:00", "arrival_date_time": "2017-12-15 13:20:00", "waiting_time": "", "vehicle_type_id": 2 }, "off_peak-0": { "pick_up_date_time": "2017-12-15 15:00:00", "price": 133, "travel_time": "00:20:00", "arrival_date_time": "2017-12-15 15:20:00", "waiting_time": "02:00:00", "vehicle_type_id": 2 }, "off_peak-1": { "pick_up_date_time": "2017-12-15 21:00:00", "price": 133, "travel_time": "00:20:00", "arrival_date_time": "2017-12-15 21:20:00", "waiting_time": "08:00:00", "vehicle_type_id": 2 } }, "return": { "from": "Alpe di Pampeago", "to": "Milano Linate airport", "is_to_resort": 0, "flight_date_time": "2017-12-17 21:20:00", "check_in_date_time": "2017-12-17 19:20:00", "requested": { "pick_up_date_time": "2017-12-17 19:00:00", "price": 133, "travel_time": "00:20:00", "arrival_date_time": "2017-12-17 19:20:00", "waiting_time": "", "vehicle_type_id": 2 }, "off_peak-0": { "pick_up_date_time": "2017-12-17 13:00:00", "price": 106.4, "travel_time": "00:20:00", "arrival_date_time": "2017-12-17 13:20:00", "waiting_time": "06:00:00", "vehicle_type_id": 2 }, "off_peak-1": { "pick_up_date_time": "2017-12-17 11:00:00", "price": 99.75, "travel_time": "00:20:00", "arrival_date_time": "2017-12-17 11:20:00", "waiting_time": "08:00:00", "vehicle_type_id": 2 } } } } }
ⓘ This method requires authorization. Add Authorization: Bearer <token>
header to your request.
OUTPUT
{ "Transfer": { "id": 43, "TransferSelection": { "outbound": { "identifier": "A1", "from": "Bergamo airport (Milan Orio)", "to": "Alpe di Pampeago", "is_to_resort": 1, "flight_date_time": "2017-12-15 13:00:00", "requested": { "pick_up_date_time": "2017-12-15 13:00:00", "price": 186.2, "travel_time": "00:20:00", "arrival_date_time": "2017-12-15 13:20:00", "waiting_time": "", "vehicle_type_id": 2 }, "off_peak-0": { "pick_up_date_time": "2017-12-15 15:00:00", "price": 133, "travel_time": "00:20:00", "arrival_date_time": "2017-12-15 15:20:00", "waiting_time": "02:00:00", "vehicle_type_id": 2 }, "off_peak-1": { "pick_up_date_time": "2017-12-15 21:00:00", "price": 133, "travel_time": "00:20:00", "arrival_date_time": "2017-12-15 21:20:00", "waiting_time": "08:00:00", "vehicle_type_id": 2 } }, "return": { "from": "Alpe di Pampeago", "to": "Milano Linate airport", "is_to_resort": 0, "flight_date_time": "2017-12-17 21:20:00", "check_in_date_time": "2017-12-17 19:20:00", "requested": { "pick_up_date_time": "2017-12-17 19:00:00", "price": 133, "travel_time": "00:20:00", "arrival_date_time": "2017-12-17 19:20:00", "waiting_time": "", "vehicle_type_id": 2 }, "off_peak-0": { "pick_up_date_time": "2017-12-17 13:00:00", "price": 106.4, "travel_time": "00:20:00", "arrival_date_time": "2017-12-17 13:20:00", "waiting_time": "06:00:00", "vehicle_type_id": 2 }, "off_peak-1": { "pick_up_date_time": "2017-12-17 11:00:00", "price": 99.75, "travel_time": "00:20:00", "arrival_date_time": "2017-12-17 11:20:00", "waiting_time": "08:00:00", "vehicle_type_id": 2 } } }, "is_return": "1", "route_from_code": "airport-38", "route_to_code": "resort-332", "return_route_to_code": "airport-41", "outbound_date": "2017-12-15", "outbound_time_hours": "3", "outbound_time_minutes": "0", "return_date": "2017-12-18", "return_time_hours": "21", "return_time_minutes": "15", "adult_count": "2", "children_count": "0", "return_adult_count": "2", "return_children_count": "0" }, "AdditionalInformation": { "booster_seat_count": "0", "child_seat_count": "0", "ski_count": "0", "snowboard_count": "0", "return_booster_seat_count": "0", "return_child_seat_count": "0", "return_ski_count": "0", "return_snowboard_count": "0", "accommodation_name": "Hotel Name", "accommodation_address": "Hotel Address", "flight_number": "FL123", "return_flight_number": "FL321", "additional_information": "" } }
Successful booking response data will contain booking reference and Base64 encoded PDF vouchers for each product, indexed by product references. You can set optional property return_vouchers
to 0, if you do not wish to receive the vouchers in response data.
ⓘ This method requires authorization. Add Authorization: Bearer <token>
header to your request.
INPUT
{ "Booking": { "transfer_id": 43, "return_vouchers": 1, "TransferSelection": { "outbound": "requested", "return": "off_peak-1", "is_manual_pick_up_time": 0, "manual_pick_up_time_hours": "", "manual_pick_up_time_minutes": "" }, "Customer": { "name": "John", "last_name": "Smith", "email": "john.smith@domain.com", "country_code": "+371", "mobile_number": "324124698", "reference": "" } } }
OUTPUT
{ "Booking": { "reference": "AMI3453", "AMI3453-P1": "...", "AMI3453-P2": "..." } }