APS Booking API

The APS Booking API enables you to integrate the booking ride functionality from AirportShuttles.com fully into your own Website/App. This will give you the ability to resell our inventory of airport transportation at over 3,000 airports worldwide. You can create a new account or log into your account to access your API Key and profile.

How to use APS Booking API

Before your application can make calls to the APS Booking API, it must be authenticated. You can use Basic Auth to make calls to the APS Booking API.
You will need the API Credentials ‘API Email’, ‘API Password’ and ‘Your Unique API Key’.

To get the required information to login into your APS Booking API account (API Admin), go to ‘API Admin -> Settings’.

How to Connect with the API

Request Type Request URI
GET https://api.airportshuttles.com/test?api_key=Your Unique API Key

Required Data

Variable Details Required
Authentication
(Basic Auth)
Use Basic Auth to authenticate your request. Yes
api_key
(GET value)
A GUID value that identifies your account. This value is automatically generated by AirportShuttles.com for any account you create. Copy the value from the Settings menu of your API account. Yes

Note: For every API call you have to send your “Your Unique API Key” as a GET variable and Use Authentication (Basic Auth).

Response Body if Authentication Success


            {
              "status": true
            }
          

Response Body if Authentication Failed


              Authentication Failed! / Invalid API Key!
          

Get Rides (Recommended)

The Get Rides requires a JSON body to send along with the request:

Request Type Request URI
GET https://api.airportshuttles.com/getRides?api_key=Your Unique API Key

Required Body JSON Data

Variable Details Required
trip The trip type, Value one_way OR round_tripYes
pick_from The pickup location. Ex: airport OR location Yes
passengersNumber of passengersYes
pick_datePickup DateYes
pick_timePickup TimeYes
return_dateReturn Date (If round trip)Optional
return_timeReturn Time (If round trip)Optional
location A JSON value of location informationYes
location -> address Human readable full location addressYes
location -> country_codeISO 3166-1 alpha-2 Two-letter country codeYes
location -> cityThe city name of the addressYes
location -> postal_codeThe postal code/zip code of the addressYes
airportA JSON value of airport informationYes
airport -> addressHuman readable full airport addressYes
airport -> airport_codeAn IATA airport code. Ex: JFKYes
pageAPI return 30 rides per request, Send page number for get more resultOptional

Example Body JSON


            {
              "trip": "one_way",
              "pick_from": "airport",
              "passengers": 1,
              "pick_date": "2021-11-30",
              "pick_time": "23:57",
              "return_date": "2021-12-30",
              "return_time": "23:57",
              "location": {
                "address": "7815 Clover Creek, Raleigh, NC, USA",
                "country_code": "US",
                "city": "Raleigh",
                "postal_code": "27613"
              },
              "airport": {
                "address": "Greensboro Airport (GSO) Main Terminal",
                "airport_code": "GSO"
              }
            }
          

Response Body JSON Data

Variable Details
statusThe Response, if true then request success and pass data into body. If false then request failed.
showing_pageThe current page of the search result.
total_pagesThe total pages of the search result.
messageOptional information of the request response
ridesA JSON data list of rides
rides -> ride_idThe ID of the Ride, which will use for book the ride
rides -> vehicle_type The name of the Vehicle Type
rides -> vehicle_modelThe name of the Vehicle Model
rides -> bags_allowedTotal Bags allowed
rides -> airport_waitWait time (minutes) for airport pickup
rides -> location_waitWait time (minutes) for location/hotel pickup
rides -> providerName of the Provider of the vehicle(s)
rides -> provider_descriptionDescription of the Provider
rides -> cancel_timeThe time that the user can Cancel the ride before pickup (Hours)
rides -> tollToll included or not
rides -> air_conditionThe vehicle has air conditioner or not
rides -> pet_friendlyThe vehicle is pet friendly or not
rides -> meet_greetMeet & Greet available or not
rides -> child_seatChild Seats available or not
rides -> wheelchairWheelchair available or not
rides -> vehicle_imagesThe image(s) of the vehicle
rides -> ride_priceTotal price of the ride
rides -> currencyCurrency
rides -> ratingRating of the provider

Example Response Body


            {
              "status": true,
              "showing_page": 1,
              "total_pages": 1,
              "rides": [
                {
                  "ride_id": "21ecf57952135f180fd9e427a7403e40",
                  "vehicle_type": "Electric Vehicles",
                  "vehicle_model": "Toyota Camry",
                  "bags_allowed": "5",
                  "airport_wait": "45",
                  "location_wait": "15",
                  "provider": "xyz (Test Provider 1) ",
                  "provider_description": "Provider Description ...",
                  "cancel_time": "18",
                  "toll": "Yes",
                  "air_condition": "Yes",
                  "pet_friendly": "Yes",
                  "meet_greet": "No",
                  "child_seat": "Yes",
                  "wheelchair": "Yes",
                  "vehicle_images": "[\"Veh_8660ede3b536039.jpg\",\"Veh_8660ede3b536bcb.jpg\"]",
                  "ride_price": "7.00",
                  "currency": "USD",
                  "rating": "3.7500"
                },
                {
                  "ride_id": "21ecf57952135f180fd9e427a7403e40",
                  "vehicle_type": "Electric Vehicles",
                  "vehicle_model": "Toyota Camry",
                  "bags_allowed": "5",
                  "airport_wait": "45",
                  "location_wait": "15",
                  "provider": "xyz (Test Provider 2) ",
                  "provider_description": "Provider Description ...",
                  "cancel_time": "18",
                  "toll": "Yes",
                  "air_condition": "Yes",
                  "pet_friendly": "Yes",
                  "meet_greet": "No",
                  "child_seat": "Yes",
                  "wheelchair": "Yes",
                  "vehicle_images": "[\"Veh_8660ede3b536039.jpg\"]",
                  "ride_price": "7.00",
                  "currency": "USD",
                  "rating": "3.7500"
                }
              ]
            }
          

Get Rides (Alternative)

The Get Rides requires a JSON body to send along with the request:

Request Type Request URI
GET https://api.airportshuttles.com/getRides2?api_key=Your Unique API Key

Required Body JSON Data

Variable Details Required
place_idA Google Place IDYes
tripThe trip type, Value one_way OR round_tripYes
pick_fromThe pickup location, Value airport OR location Yes
passengersNumber of PassengersYes
pick_date Pickup DateYes
pick_timePickup TimeYes
return_dateReturn Date (If round trip)Optional
return_time Return Time (If round trip)Optional
airport_codeAn IATA airport code. Ex: JFKYes
page API return 30 rides per request, Send page number for get more resultOptional

Example Body JSON


            {
              "place_id": "ChIJhUqOYEb3rIkRn1MlG3FCcLw",
              "trip": "one_way",
              "pick_from": "airport",
              "passenger": 1,
              "pick_date": "2021-11-20",
              "pick_time": "23:57",
              "return_date": "2021-12-30",
              "return_time": "23:57",
              "airport_code": "GSO",
              "page": 1
            }
          
The response will be same as Get Rides (Recommended)

Get a Ride

Get a Rides requires a JSON body to send along with the request:

Request Type Request URI
POST https://api.airportshuttles.com/getRide?api_key=Your Unique API Key

Required Body JSON Data

Variable Details Required
ride_idThe ride ID, which you received from the Get Ride requestYes
place_idA Google Place IDYes
tripThe trip type, Value one_way OR round_tripYes
pick_from The pickup location, Value airport OR location Yes
passengerNumber of PassengersYes
pick_datePickup DateYes
pick_timePickup TimeYes
airport_codeAn IATA airport code. Ex: JFKYes

Example Body JSON


            {
              "ride_id": "21ecf57952135f180fd9e427a7403e40",
              "place_id": "ChIJhUqOYEb3rIkRn1MlG3FCcLw",
              "trip": "one_way",
              "pick_from": "airport",
              "passenger": 1,
              "pick_date": "2021-10-20",
              "pick_time": "23:57",
              "airport_code": "GSO"
            }
          

Response Body Data

Variable Details
statusThe Response, if true then request success and pass data into body. If false then request failed.
rideA JSON data list of ride information
ride -> ride_idThe ID of the Ride, which will use for book the ride
ride -> vehicle_type The name of the Vehicle Type
ride -> vehicle_modelThe name of the Vehicle Model
ride -> bags_allowedTotal Bags allowed
ride -> airport_waitWait time (minutes) for airport pickup
ride -> location_waitWait time (minutes) for location/hotel pickup
ride -> providerName of the Provider of the vehicle(s)
ride -> provider_descriptionDescription of the Provider
ride -> cancel_timeThe time that the user can Cancel the ride before pickup (Hours)
ride -> tollToll included or not
ride -> air_conditionThe vehicle has air conditioner or not
ride -> pet_friendlyThe vehicle is pet friendly or not
ride -> meet_greetMeet & Greet available or not
ride -> child_seatChild Seats available or not
ride -> wheelchairWheelchair available or not
ride -> vehicle_imagesThe image(s) of the vehicle
ride -> ride_priceTotal price of the ride
ride -> currencyCurrency
ride -> ratingRating of the provider

Example Response Body


            {
              "status": true,
              "ride": [
                {
                  "ride_id": "21ecf57952135f180fd9e427a7403e40",
                  "vehicle_type": "Electric Vehicles",
                  "vehicle_model": "Toyota Camry",
                  "bags_allowed": "5",
                  "airport_wait": "45",
                  "location_wait": "15",
                  "provider": "xyz (Test Provider & Plz Don't book) ",
                  "provider_description": "Provider Description ...",
                  "cancel_time": "18",
                  "troll": "Yes",
                  "air_condition": "Yes",
                  "pet_friendly": "Yes",
                  "meet_greet": "No",
                  "child_seat": "Yes",
                  "wheelchair": "Yes",
                  "vehicle_images": "[\"Veh_8660ede3b536039.jpg\"]",
                  "ride_price": "6.00",
                  "currency": "USD",
                  "rating": "3.7500"
                }
              ]
            }
          

Book Ride

The Book Rides requires a JSON body to send along with the request:

Request Type Request URI
POST https://api.airportshuttles.com/bookRide?api_key=Your Unique API Key

Required Body JSON Data

Variable Details Required
ride_id The ride ID, which you received from the Get Ride requestYes
place_idA Google Place IDYes
tripThe trip type, Value one_way OR round_tripYes
pick_from The pickup location, Value airport OR location Yes
passengerNumber of PassengersYes
airport_codeAn IATA airport code. Ex: JFKYes
airport_terminal Human readable full airport addressYes
one_wayA JSON value of trip informationYes
one_way -> pick_datePickup DateYes
one_way -> pick_timePickup TimeYes
one_way -> airlineThe Airline nameYes
one_way -> flight_numberThe Flight NumberYes
one_way -> requested_pickupThe requested pickup time of tripYes
return_tripA JSON value of trip informationIf round_trip
return_trip -> pick_dateReturn Pickup DateIf round_trip
return_trip -> pick_timeReturn Pickup TimeIf round_trip
return_trip -> airlineThe Return Airline name If round_trip
return_trip -> flight_numberThe Return Flight NumberIf round_trip
return_trip -> requested_pickuphe requested pickup time of tripIf round_trip
riderA JSON value of trip informationYes
rider -> first_nameThe First Name of riderYes
rider -> last_nameThe Last Name of riderYes
rider -> emailThe Email of riderYes
rider -> phone_code The international Phone CodeYes
rider -> phonePhone Number of the riderYes
rider -> instruction The pickup instructions for riderYes

Example Body JSON


            {
              "ride_id": "21ecf57952135f180fd9e427a7403e40",
              "place_id": "ChIJhUqOYEb3rIkRn1MlG3FCcLw",
              "trip": "round_trip",
              "pick_from": "airport",
              "passenger": 1,
              "airport_code": "GSO",
              "airport_terminal": "Greensboro Airport (GSO) Main Terminal",
              "one_way":{
                "pick_date": "2021-10-20",
                "pick_time": "23:57",
                "airline": "Air Caraibs",
                "flight_number": "A667",
                "requested_pickup": "22:20"
              },
              "return_trip":{
                "pick_date": "2021-11-11",
                "pick_time": "10:57",
                "airline": "Caraibs Caraibs",
                "flight_number": "Caraibs",
                "requested_pickup": "22:20"
              },
              "rider":{
                "first_name": "max",
                "last_name": "hount",
                "email": "maxtest@testsss.com",
                "phone_code": "+1",
                "phone": "84204510",
                "instruction": "Special Instructions for pick up from user"
              }
            }
          

Response Body Data

Variable Details
status The Response, if true then request success and pass data into body. If false then request failed.
quote_idA unique ID of the full booking
booking_idA unique ID of the booking trip
return_booking_idA unique ID of the booking trip

Example Response Body


            {
              "status": true,
              "quote_id": "8c20bbac10eb84a3d1732ef600c656cb",
              "booking_id": "APS2110181634559244241",
              "return_booking_id": "APS2110181634559244242"
            }
          

Get a Booking

The Book rides required a JSON body to send along with the request:

Request Type Request URI
GET https://api.airportshuttles.com/getBooking?api_key=Your Unique API Key

Required Body JSON Data

Variable Details Required
quote_idThe unique ID of the bookingYes

Example Body JSON


            {
              "quote_id": "f1b22a26d0a0eca5e5aa159592b03373"
            }
          

Response Body Data

Variable Details
status The Response, if true then request success and pass data into body. If false then request failed.
bookingsList of bookings
bookings -> quote_idThe unique ID of the bookings
bookings -> pick_from The pickup location, Value airport OR location
bookings -> vehicle_type The name of the Vehicle Type
bookings -> vehicle_model The name of the Vehicle Model
bookings -> bags_allowed Total Bags allowed
bookings -> wait_time Wait time (minutes)
bookings -> provider Name of the Provider of the vehicle(s)
bookings -> provider_description Description of the Provider
bookings -> pick_fromThe Pickup address
bookings -> drop_atDrop off address
bookings -> tripThe trip type, Value one_way OR round_trip
bookings -> is_return_trip If it is a Return Trip
bookings -> user_instraction The Pickup Instructions for rider
bookings -> vehicle_image The image of the vehicle
bookings -> airlineThe Airline name
bookings -> flight_numberThe Flight Number
bookings -> timezoneTimezone of the Airport
bookings -> pick_date Pickup Date
bookings -> pick_timePickup Time
bookings -> requested_pickup The requested Pickup Time for rider
bookings -> passenger Number of Passengers
bookings -> ride_price Price of the ride
bookings -> currency Currency
bookings -> booking_idA unique ID of this booking
bookings -> created_at The time this ride was booked
bookings -> provider_actionProvider Action of this booking
bookings -> booking_statusStatus of this booking

Example Response Body


            {
              "status": true,
              "bookings": [
                {
                  "quote_id": "bc1bf87358a0e60e9cd7e1d31de27788",
                  "pick_from": "airport",
                  "vehicle_type": "Private Van",
                  "vehicle_model": "Toyota Sienna",
                  "bags_allowed": "5",
                  "wait_time": "10",
                  "provider": "Test Provider 2",
                  "provider_description": "Lorem Ipsum is simply dummy text",
                  "pick_from": "New York JFK Intl Airport (JFK) Terminal 2",
                  "drop_at": "249-5 Jericho Turnpike, Queens, NY 11426, USA",
                  "trip": "round_trip",
                  "is_return_trip": "0",
                  "user_instraction": "Special Instructions for pick up from user",
                  "vehicle_image": "https://airportshuttles.com/Veh_3966159f2ed236a2.jpg",
                  "airline": "Air Caraibs",
                  "flight_number": "A667",
                  "timezone": "America/New_York",
                  "pick_date": "2021-10-20",
                  "pick_time": "23:57:00",
                  "requested_pickup": "22:20:00",
                  "passenger": "1",
                  "ride_price": "34",
                  "currency": "USD",
                  "booking_id": "APS2110081633693809291",
                  "created_at": "2021-10-08 04:50:09",
                  "provider_action": "Pending",
                  "booking_status": "pending"
                },
                {
                  "quote_id": "bc1bf87358a0e60e9cd7e1d31de27788",
                  "pick_from": "airport",
                  "vehicle_type": "Private Van",
                  "vehicle_model": "Toyota Sienna",
                  "bags_allowed": "5",
                  "wait_time": "10",
                  "provider": "Test Provider 2",
                  "provider_description": "Lorem Ipsum is simply dummy text",
                  "pick_from": "249-5 Jericho Turnpike, Queens, NY 11426, USA",
                  "drop_at": "New York JFK Intl Airport (JFK) Terminal 2",
                  "trip": "round_trip",
                  "is_return_trip": "1",
                  "user_instraction": "Special Instructions for pick up from user",
                  "vehicle_image": "https://airportshuttles.com/Veh_3966159f2ed236a2.jpg",
                  "airline": "Air Caraibs",
                  "flight_number": "A667",
                  "timezone": "America/New_York",
                  "pick_date": "2021-10-20",
                  "pick_time": "23:57:00",
                  "requested_pickup": "22:20:00",
                  "passenger": "1",
                  "ride_price": "34",
                  "currency": "USD",
                  "booking_id": "APS2110081633693809292",
                  "created_at": "2021-10-08 04:50:09",
                  "provider_action": "Pending",
                  "booking_status": "pending"
                }
              ]
            }
          

Cancel Booking

Cancel Booking rides requires a JSON body to be sent along with the request:

Request Type Request URI
POST https://api.airportshuttles.com/cancelBooking?api_key=Your Unique API Key

Required Body JSON Data

Variable Details Required
quote_idThe unique ID of the booking.Optional
booking_idThe unique ID of the booking. If you want to Cancel part of booking (one_way/return_trip) send booking_idOptional
cancel_reasonThe reason of the cancellationYes

Example Body JSON


            {
              "quote_id": "f1b22a26d0a0eca5e5aa159592b03373",
              "booking_id": "APS2110191634666876262",
              "cancel_reason" : "The reason of the cancellation"
            }
          

Response Body Data

Variable Details
statusThe Response, if true then request success and pass data into body. If false then request failed.
messageOptional information of the request response.

Example Response Body


            {
              "status": true,
              "message": "Booking canceled"
            }
          

Make API Live

After the API is implemented to your Website/App please contact the Admin to request for your account to be approved. After your account is approved you can make the API live by going to ‘API Admin -> Settings’.

Test Data Lifetime

All test bookings you make from the API will be erased after 72 hours.

Burst Limit

To protect against possible attacks on the platform, a short 30-second burst limit is implemented to prevent applications from making large numbers of calls in very short periods of time.