What API technology we support in integrations
We support :
- RESTful (REpresentational State Transfer) web APIs
- SOAP-based (Simple Object Access Protocol) service APIs
- graphQL via HTTP POST method
This section provides background information about Skyscanner’s Car Hire RESTful API:
|
REST + JSON
is a simple HTTP request just like a regular browser would send to a web server.
URI Structure:
Round Trip/Return Trip API Request Example:
http://example.com/api/quotes/GBP/EDI/EDI/2017-08-08T10:00/2024-09-12T10:00/30
Single Trip/One Way API RequestExample:
http://example.com/api/quotes/GBP/EDI/27540851/2017-08-08T10:00/2024-09-12T10:00/30
API Request Parameter Data Model:
http://<hostname>/<resource-name>/<api-name>/<currency>/<pickup-point>/<drop-off- point>/<pickup-datetime>/<drop-off-datetime>/<driver-age>
API Request Parameter Data Model:
Parameter |
Description |
Formats |
pickup-point |
Pick-up point (location the journey will start) |
IATA: BHX Lat/Lon: 34.0522342, -118.2436849 Office ID: OFF12345 |
drop-off-point |
Drop-off point (location the journey will end) |
IATA: BHX Lat/Lon: 34.0522342, -118.2436849 Office ID: OFF12345 |
pickup-datetime |
Arrival date (pick up date) Format – |
YYYY-MM-DDTHH:mm : 2024-08-08T10:00 |
dropoff-datetime |
Departure date (date of return transfer) |
YYYY-MM-DDTHH:mm : 2024-09-08T10:00 |
driver-age |
Driver’s Age |
Numeric: 30 |
currency |
Currency Code |
String: GBP |
country |
Country Code (Two letter IATA Code) |
String: UK |
API Response:
{ "result": [ { "rental": { "insurances": { "theft_protection": { "price": 0 }, "collision_damage_waiver": { "price": 0 }, "third_party_cover": { "price": 0 } }, "additional_drivers": { "paid": { "currency_id": "GBP", "price": 60.0 } }, "price": { "currency_id": "GBP", "total": { "taxpx": 285.66 } }, "deeplink_data": {}, "locations_data": { "drop_off": { "office_id": "185", "country_code": "GB", "office_name": "Edinburgh - Airport", "latitude": 55.95, "city_bool": false, "address": "Car Rental Centre, Edinburgh, EH12 9FS", "airport_bool": true, "airport_at": "desk in terminal", "longitude": -3.362 }, "pick_up": { "office_id": "185", "country_code": "GB", "office_name": "Edinburgh - Airport", "latitude": 55.95, "city_bool": false, "address": "Car Rental Centre, Edinburgh, EH12 9FS", "airport_bool": true, "airport_at": "desk in terminal", "longitude": -3.362 } }, "free_cancellation": true, "fuel_policy": "full_to_full", "included_mileage": { "distance": "unlimited" }, "carhire": [ { "passengers": { "adults": 5, "children": null }, "ac": true, "vendor": "Sixt", "pick_up_datetime": "2024-02-13T10:00:00", "fuel_type": "petrol", "drop_off_place": "EDI", "pick_up_place": "EDI", "Transmission": "Manual", "drop_off_datetime": "2024-02-16T17:00:00", "optional_equipments": { "child_seat": { "currency_id": "GBP", "price": 57.76 }, "booster_seat": { "currency_id": "GBP", "price": 57.76 }, "baby_seat": { "currency_id": "GBP", "price": 57.76 }, "gps": { "currency_id": "GBP", "price": 55.54 } }, "sipp": "CWMR", "doors": { "exact": 5 }, "vehicle": { "name": "Volkswagen Golf Estate" }, "baggages": { "large": 5, "small": null }, "sample_image_url": "https://car_images.com/volkswagen/golf_sw_nologo.jpg" } ] } }, ] } |
REST + XML
is essentially the same as REST + JSON, except that data is transferred in XML instead of JSON (JavaScript Object Notation).
URI Structure:
http://<hostname>/<resource-name>/<api-name>/<currency>/<pickup-point>/<drop-off-point>/<pickup-datetime>/<drop-off-datetime>/<driver-age> |
Round Trip/Return Trip API Request Example:
http://example.com/api/quotes/GBP/EDI/EDI/2024-08-08T10:00/2024-09-12T10:00/30
Single Trip/One Way API RequestExample:
http://example.com/api/quotes/GBP/EDI/27540851/2024-08-08T10:00/2024-09-12T10:00/30
API Request Parameter Data Model:
Parameter |
Description |
Formats |
pickup-point |
Pick-up point (location the journey will start) |
IATA: BHX Lat/Lon: 34.0522342, -118.2436849 Office ID: OFF12345 |
drop-off-point |
Drop-off point (location the journey will end) |
IATA: BHX Lat/Lon: 34.0522342, -118.2436849 Office ID: OFF12345 |
pickup-datetime |
Arrival date (pick up date) Format – |
YYYY-MM-DDTHH:mm : 2024-08-08T10:00 |
dropoff-datetime |
Departure date (date of return transfer) |
YYYY-MM-DDTHH:mm : 2024-09-08T10:00 |
driver-age |
Driver’s Age |
Numeric: 30 |
currency |
Currency Code |
String: GBP |
<?xml version="1.0" encoding="UTF-8" ?> <result> <rental> <insurances> <theft_protection> <price>0</price> </theft_protection> <collision_damage_waiver> <price>0</price> </collision_damage_waiver> <third_party_cover> <price>0</price> </third_party_cover> </insurances> <additional_drivers> <paid> <currency_id>GBP</currency_id> <price>60</price> </paid> </additional_drivers> <price> <currency_id>GBP</currency_id> <total> <taxpx>285.66</taxpx> </total> </price> <deeplink_data /> <locations_data> <drop_off> <office_id>185</office_id> <country_code>GB</country_code> <office_name>Edinburgh - Airport</office_name> <latitude>55.95</latitude> <city_bool>false</city_bool> <address>Car Rental Centre, Edinburgh, EH12 9FS</address> <airport_bool>true</airport_bool> <airport_at>desk in terminal</airport_at> <longitude>-3.362</longitude> </drop_off> <pick_up> <office_id>185</office_id> <country_code>GB</country_code> <office_name>Edinburgh - Airport</office_name> <latitude>55.95</latitude> <city_bool>false</city_bool> <address>Car Rental Centre, Edinburgh, EH12 9FS</address> <airport_bool>true</airport_bool> <airport_at>desk in terminal</airport_at> <longitude>-3.362</longitude> </pick_up> </locations_data> <free_cancellation>true</free_cancellation> <fuel_policy>full_to_full</fuel_policy> <included_mileage> <distance>unlimited</distance> </included_mileage> <carhire> <passengers> <adults>5</adults> <children /> </passengers> <ac>true</ac> <vendor>Sixt</vendor> <pick_up_datetime>2024-02-13T10:00:00</pick_up_datetime> <fuel_type>petrol</fuel_type> <drop_off_place>EDI</drop_off_place> <pick_up_place>EDI</pick_up_place> <transmission>Manual</transmission> <drop_off_datetime>2024-02-16T17:00:00</drop_off_datetime> <optional_equipments> <child_seat> <currency_id>GBP</currency_id> <price>57.76</price> </child_seat> <booster_seat> <currency_id>GBP</currency_id> <price>57.76</price> </booster_seat> <baby_seat> <currency_id>GBP</currency_id> <price>57.76</price> </baby_seat> <gps> <currency_id>GBP</currency_id> <price>55.54</price> </gps> </optional_equipments> <sipp>CWMR</sipp> <doors> <exact>5</exact> </doors> <vehicle> <name>Volkswagen Golf Estate</name> </vehicle> <baggages> <large>5</large> <small /> </baggages> <sample_image_url>https://car_images.com/volkswagen/golf_sw_nologo.jpg</sample_image_url> </carhire> </rental> </result> |
SOAP (Simple Object Access Protocol)
is messaging protocol and uses XML based message format.
URI Structure:
POST http://<hostname>/<resource-name>/<api-endpoint> Content-Type: text/xml; charset=UTF-8 |
Round Trip/Return Trip API Request Example:
POST http://example.com/api/quotes.asmx
Content-Type: text/xml; charset=UTF-8
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soapYenvelope"> <soap:Header/> <soap:Body> <getQuotes> <pickup-point>EDI</pickup-point> <drop-off-point>EDI</drop-off-point> <pickup-datetime>2017-08-08T10:00</pickup-datetime> <dropoff-datetime>2017-09-12T10:00</dropoff-datetime> <driver-age>30</driver-age> <currency>GBP</currency> </getQuotes> </soap:Body> </soap:Envelope> |
|
Single Trip/One Way API RequestExample:
POST http://example.com/api/quotes.asmx
Content-Type: text/xml; charset=UTF-8
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soapYenvelope"> <soap:Header/> <soap:Body> <getQuotes> <pickup-point>EDI</pickup-point> <drop-off-point>27540851</drop-off-point> <pickup-datetime>2017-08-08T10:00</pickup-datetime> <dropoff-datetime>2017-09-12T10:00</dropoff-datetime> <driver-age>30</driver-age> <currency>GBP</currency> </getQuotes> </soap:Body> </soap:Envelope> |
|
API Request Parameter Data Model:
Parameter |
Description |
Formats |
pickup-point |
Pick-up point (location the journey will start) |
IATA: BHX Lat/Lon: 34.0522342, -118.2436849 Office ID: OFF12345 |
drop-off-point |
Drop-off point (location the journey will end) |
IATA: BHX Lat/Lon: 34.0522342, -118.2436849 Office ID: OFF12345 |
pickup-datetime |
Arrival date (pick up date) Format – |
YYYY-MM-DDTHH:mm : 2024-08-08T10:00 |
dropoff-datetime |
Departure date (date of return transfer) |
YYYY-MM-DDTHH:mm : 2024-09-08T10:00 |
driver-age |
Driver’s Age |
Numeric: 30 |
currency |
Currency Code |
String: GBP |
API Response:
<?xml version="1.0" encoding="UTF-8" ?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/" soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<soap:Body> <getQuotesResponse> <result> <rental> <insurances> <theft_protection> <price>0</price> </theft_protection> <collision_damage_waiver> <price>0</price> </collision_damage_waiver> <third_party_cover> <price>0</price> </third_party_cover> </insurances> <additional_drivers> <paid> <currency_id>GBP</currency_id> <price>60</price> </paid> </additional_drivers> <price> <currency_id>GBP</currency_id> <total> <taxpx>285.66</taxpx> </total> </price> <deeplink_data /> <locations_data> <drop_off> <office_id>185</office_id> <country_code>GB</country_code> <office_name>Edinburgh - Airport</office_name> <latitude>55.95</latitude> <city_bool>false</city_bool> <address>Car Rental Centre, Edinburgh, EH12 9FS</address> <airport_bool>true</airport_bool> <airport_at>desk in terminal</airport_at> <longitude>-3.362</longitude> </drop_off> <pick_up> <office_id>185</office_id> <country_code>GB</country_code> <office_name>Edinburgh - Airport</office_name> <latitude>55.95</latitude> <city_bool>false</city_bool> <address>Car Rental Centre, Edinburgh, EH12 9FS</address> <airport_bool>true</airport_bool> <airport_at>desk in terminal</airport_at> <longitude>-3.362</longitude> </pick_up> </locations_data> <free_cancellation>true</free_cancellation> <fuel_policy>full_to_full</fuel_policy> <included_mileage> <distance>unlimited</distance> </included_mileage> <carhire> <passengers> <adults>5</adults> <children /> </passengers> <ac>true</ac> <vendor>Sixt</vendor> <pick_up_datetime>2017-02-13T10:00:00</pick_up_datetime> <fuel_type>petrol</fuel_type> <drop_off_place>EDI</drop_off_place> <pick_up_place>EDI</pick_up_place> <transmission>Manual</transmission> <drop_off_datetime>2017-02-16T17:00:00</drop_off_datetime> <optional_equipments> <child_seat> <currency_id>GBP</currency_id> <price>57.76</price> </child_seat> <booster_seat> <currency_id>GBP</currency_id> <price>57.76</price> </booster_seat> <baby_seat> <currency_id>GBP</currency_id> <price>57.76</price> </baby_seat> <gps> <currency_id>GBP</currency_id> <price>55.54</price> </gps> </optional_equipments> <sipp>CWMR</sipp> <doors> <exact>5</exact> </doors> <vehicle> <name>Volkswagen Golf Estate</name> </vehicle> <baggages> <large>5</large> <small /> </baggages> <sample_image_url>https://car_images.com/volkswagen/golf_sw_nologo.jpg</sample_image_url> </carhire> </rental> </result> </getQuotesResponse> </soap:Body> </soap:Envelope> |
GraphQL (via Post Method)
Single Trip/One Way API Request Example:
{"input": { "pickUpBranchId": "BHX" "dropOffBranchId": "BHX" "pickUpBranchDateTime": 2024-08-2510:00:00" "dropoffBranchDateTime": "2024-08-28T15:00:00" "residenceCountryCode": "GE" "currency" : "GBP" "driverAge": 30 } } |
Parameter |
Description |
Formats |
pickup-point |
Pick-up point (location the journey will start) |
IATA: BHX Lat/Lon: 34.0522342, -118.2436849 Office ID: OFF12345 |
drop-off-point |
Drop-off point (location the journey will end) |
IATA: BHX Lat/Lon: 34.0522342, -118.2436849 Office ID: OFF12345 |
pickup-datetime |
Arrival date (pick up date) Format – |
YYYY-MM-DDHH:mm : 2024-08-0810:00 |
dropoff-datetime |
Departure date (date of return transfer) |
YYYY-MM-DDHH:mm : 2024-09-0810:00 |
driver-age |
Driver’s Age |
Numeric: 30 |
Currency |
Currency Code |
String: GBP |
Country |
2 Letter IATA country code |
String: UK |
API Response
{ |
What We Expect
You will be expected to provide appropriate endpoints, IP addresses, and credentials to allow Skyscanner access to the API. Please supply sufficient documentation so we can access and integrate with your API and logos for your brand. This should be sent to the partner services team. We also need you to fill in our pre-integration survey with as many details as possible so that we can check API compatibility before any development work starts. This will be sent to you by our commercial account manager.
In addition, we'd like to ask you to allow/safelist a range of our internal IP Addresses to avoid issues accessing API. Skyscanner may let you know of other IP addresses we need to be safe-listed in the future, so please make sure you can accommodate this. You'll be able to get an up-to-date list of our IP addresses by contacting us.
We also stipulate that you will respond to as many API Requests as possible in under 30 seconds; under 10 seconds is ideal. Skyscanner may ignore any API response that exceeds this time, which may impact visibility, traffic, and revenue for you.
Comments
0 comments
Article is closed for comments.