Developer API | Book A Limo
Developer resources

Developer API Reference

Use the ICS REST API to surface live pricing, manage reservations, and synchronize account data across your applications.

Pricing

Pricing & Reservation Details

POST https://www.bookalimo.com/web/api/booking/price/

Request

Headers:
content-type: application/json
Name Type Details
credentials Required field Click to see details.
rateType Required field int 0:
1:
3:
dateTime Required field string Required format is MM/dd/yyyy hh:mm tt
pickup Required field Pick up location. Click to see details.
dropoff Required field Drop-off location. Click to see details.
hours byte For hourly rateType only
passengers Required field byte Passengers quantity
luggage Required field byte Luggage quantity
stops Array of stops. Click to see details.
account Travel agency or corporate account info.
Attention: travel agencies must provide account info to get the commission.
Click to see details.
passenger Passenger info.
Click to see details.
rewards Array of reward accounts. Click to see details.
carClassCode string Use only if you looking for a specific car class. Example: SD.
pets byte Pets quantity
carSeats byte Car seats quantity
boosters byte Boosters quantity
infants byte Infants quantity
customerComment string Customer comment
Example request body
{
   "credentials":{
      "id":"TA10007",
      "isCustomer":false,
      "passwordHash":"e784f281dc827fab59fd806cf01e68d872ba5b8bfa55c55bfdb937b5239f4a83"
   },
   "rateType":0,
   "dateTime":"01/10/2026 10:13 AM",
   "pickup":{
      "type":1,
      "airport":{
          "iataCode": "JFK",
          "countryCode": "US",
          "stateCode": "NY",
          "airlineIataCode": "UA",
          "airlineIcaoCode": "UAL",
          "flightNumber": "UA1234",
          "terminal": "7",
          "arrivingFromCity": {
              "cityName": "Los Angeles",
              "countryCode": "US",
              "stateCode": "CA",
              "stateName": "California"
          }
      }
   },
   "dropoff":{
      "type":0,
      "address": {
          "googleGeocode": {
                "address_components" : [
                {
                    "long_name" : "53",
                    "short_name" : "53",
                    "types" : [ "street_number" ]
                },
                {
                    "long_name" : "East 34th Street",
                    "short_name" : "E 34th St",
                    "types" : [ "route" ]
                },
                {
                    "long_name" : "Manhattan",
                    "short_name" : "Manhattan",
                    "types" : [ "political", "sublocality", "sublocality_level_1" ]
                },
                {
                    "long_name" : "New York",
                    "short_name" : "New York",
                    "types" : [ "locality", "political" ]
                },
                {
                    "long_name" : "New York County",
                    "short_name" : "New York County",
                    "types" : [ "administrative_area_level_2", "political" ]
                },
                {
                    "long_name" : "New York",
                    "short_name" : "NY",
                    "types" : [ "administrative_area_level_1", "political" ]
                },
                {
                    "long_name" : "United States",
                    "short_name" : "US",
                    "types" : [ "country", "political" ]
                },
                {
                    "long_name" : "10016",
                    "short_name" : "10016",
                    "types" : [ "postal_code" ]
                },
                {
                    "long_name" : "4332",
                    "short_name" : "4332",
                    "types" : [ "postal_code_suffix" ]
                }
                ],
                "formatted_address" : "53 E 34th St, New York, NY 10016, USA",
                "geometry" : {
                "location" : {
                    "lat" : 40.7476342,
                    "lng" : -73.98192299999999
                },
                "location_type" : "ROOFTOP",
                "viewport" : {
                    "northeast" : {
                        "lat" : 40.7489831802915,
                        "lng" : -73.9805740197085
                    },
                    "southwest" : {
                        "lat" : 40.7462852197085,
                        "lng" : -73.98327198029151
                    }
                }
                },
                "place_id" : "ChIJabR2dgdZwokRkEpfPy6FtZE",
                "plus_code" : {
                "compound_code" : "P2X9+36 New York, NY, USA",
                "global_code" : "87G8P2X9+36"
                },
                "types" : [ "street_address" ]
          },
          "district": "Manhattan",
          "streetName": "East 34th Street",
          "building": "53",
          "zip": "10016"
      }      
   },
   "passengers":2,
   "luggage":3,
   "stops":[
      {
         "description":"Brooklyn Bridge",
         "isEnRoute":false
      },
      {
         "description":"Empire State Building",
         "isEnRoute":true
      }
   ],
   "account":{
      "id":"TA10007"
   },
   "pets":1,
   "carSeats":1,
   "boosters":1,
   "infants":1
}

Response

Name Type Details
token string Session token, use it in subsequent requests.
prices Price[] Array of prices. See details below.
Example response body
{
   "token":"NdAbNwEeYM",
   "prices":[
      {
         "carClass":"SD",
         "carDescription":"Sedan Lincoln, Cadillac Or Similar",
         "maxPassengers":3,
         "maxLuggage":3,
         "price":312.82,
         "priceDefault":334.21,
         "defaultMeetGreet":2,
         "meetGreets":[
            {
               "id":2,
               "name":"Baggage Claim",
               "basePrice":7.0,
               "instructions":"Meet your chauffeur by Baggage Claim even if you do not have any luggage",
               "additional":[
                  {
                     "name":"Parking",
                     "price":10.0
                  }
               ],
               "totalPrice":17.0,
               "fees":4.39,
               "reservationPrice":334.21
            },
            {
               "id":3,
               "name":"Curb Side",
               "basePrice":0.0,
               "instructions":"Please contact our Dispatch Center upon arrival. Phone: 1-800-266-5254 SMS: 1-212-561-2600 Whatsapp: 1-929-422-2227. We monitor the flight",
               "additional":[
                  
               ],
               "totalPrice":0.0,
               "fees":0.0,
               "reservationPrice":312.81
            },
            {
               "id":5,
               "name":"International",
               "basePrice":12.0,
               "instructions":"Chauffeur will be waiting with the sign at the Outside Custom Area",
               "additional":[
                  {
                     "name":"Parking",
                     "price":10.0
                  }
               ],
               "totalPrice":22.0,
               "fees":6.37,
               "reservationPrice":341.19
            }
         ],
         "image128":"https://www.bookalimo.com/cdn/images/car/42/128.png",
         "image256":"https://www.bookalimo.com/cdn/images/car/42/256.png",
         "image512":"https://www.bookalimo.com/cdn/images/car/42/512.png"
      },
      {
         "carClass":"SUV",
         "carDescription":"Suv 5-6 Passengers Or Similar",
         "maxPassengers":6,
         "maxLuggage":6,
         "price":427.36,
         "priceDefault":448.76,
         "defaultMeetGreet":2,
         "meetGreets":[
            {
               "id":2,
               "name":"Baggage Claim",
               "basePrice":7.0,
               "instructions":"Meet your chauffeur by Baggage Claim even if you do not have any luggage",
               "additional":[
                  {
                     "name":"Parking",
                     "price":10.0
                  }
               ],
               "totalPrice":17.0,
               "fees":4.39,
               "reservationPrice":448.75
            },
            {
               "id":3,
               "name":"Curb Side",
               "basePrice":0.0,
               "instructions":"Please contact our Dispatch Center upon arrival. Phone: 1-800-266-5254 SMS: 1-212-561-2600 Whatsapp: 1-929-422-2227. We monitor the flight",
               "additional":[
                  
               ],
               "totalPrice":0.0,
               "fees":0.0,
               "reservationPrice":427.35
            },
            {
               "id":5,
               "name":"International",
               "basePrice":12.0,
               "instructions":"Chauffeur will be waiting with the sign at the Outside Custom Area",
               "additional":[
                  {
                     "name":"Parking",
                     "price":10.0
                  }
               ],
               "totalPrice":22.0,
               "fees":6.37,
               "reservationPrice":455.73
            }
         ],
         "image128":"https://www.bookalimo.com/cdn/images/car/47/128.png",
         "image256":"https://www.bookalimo.com/cdn/images/car/47/256.png",
         "image512":"https://www.bookalimo.com/cdn/images/car/47/512.png"
      }
   ]
}

Price object

Name Type Details
carClass string Car class code.
carDescription string Car class description.
maxPassengers byte Maximum passegners quantity.
maxLuggage byte Maximum luggage quantity.
price decimal Price WITHOUT Meet&Greet.
priceDefault decimal Price WITH default Meet&Greet option (if any).
image128 string URL of car image with 128px width.
image256 string URL of car image with 256px width.
image512 string URL of car image with 512px width.
defaultMeetGreet intNullable Default Meet&Greet option. Can be null.
meetGreets MeetGreet Array of available Meet&Greet options. Has options only if pick up location type is airport. See details below.

Meet & Greet option

Name Type Details
id int Option id. Use it to select needed Meet&Greet option.
name string Option name.
basePrice decimal Base price of Meet&Greet option.
instructions string Passenger instruction for selected Meet&Greet option.
additional Array of additional charges for selected Meet&Greet option. Can be empty. Click to see details.
totalPrice decimal Total price of Meet&Greet option WITHOUT fees (base price + sum of additional charges).
fees decimal Fees amount
reservationPrice decimal Full price of reservation if this Meet&Greet option will be selected.

POST https://www.bookalimo.com/web/api/booking/details/

Use this function to provide a reservation details. Can be called multiple times (for example if you have several pages with details). Only non-null values would be applied. Attention: based on a details price can be changed.

Request

Headers:
content-type: application/json
Name Type Details
token Required field string Token returned by price function.
carClassCode string Car class code which present in the list returned by price function.
pickup Use only if pick up location is different from that was used in price function. Most common scenario for this function is if pick up location type is airport and you need to change Meet&Greet option. Price can be affected. Click to see details.
dropoff Use only if drop-off location is different from that was used in price function. Price can be affected. Click to see details.
stops Use only if value is different from that was used in price function. Price can be affected. Click to see details.
account Use only if value is different from that was used in price function.
Click to see details.
passenger Use only if value is different from that was used in price function.
Click to see details.
rewards Use only if value is different from that was used in price function. Click to see details.
pets byte Pets quantity. Usage: null: don't change; number: set new quantity. Price can be affected.
carSeats byte Car seats quantity. Usage: null: don't change; number: set new quantity. Price can be affected.
boosters byte Boosters quantity. Usage: null: don't change; number: set new quantity. Price can be affected.
infants byte Infants quantity. Usage: null: don't change; number: set new quantity. Price can be affected.
customerComment string Use only if value is different from that was used in price function.
taFee decimal For Travel Agencies only. This is an additional fee in USD on top of your commission.
Example request body
{
    "token": "NdAbNwEeYM",
    "carClassCode": "SD",
    "pickup":{
      "type":1,
      "airport":{
          "iataCode": "JFK",
          "countryCode": "US",
          "stateCode": "NY",
          "airlineIataCode": "UA",
          "airlineIcaoCode": "UAL",
          "flightNumber": "UA1234",
          "terminal": "7",
          "meetGreet": 3,
          "arrivingFromCity": {
              "cityName": "Los Angeles",
              "countryCode": "US",
              "stateCode": "CA",
              "stateName": "California"
          }
      }
   },
    "passenger": {
        "firstName": "John",
        "lastName": "Smith",
        "email": "[email protected]",
        "phone": "+19173334455"
    },
    "rewards": [
        {
            "type": 0,
            "value": "123456789"
        }
    ],
    "customerComment": "Please have a rock music playlist"
}

Response

Name Type Details
price decimal Full price of reservation
breakdown Array of breakdown items. Click to see details.
Example response body
{
   "price":312.81,
   "breakdown":[
      {
         "name":"Base Fare",
         "value":74.00,
         "isGrand":false
      },
      {
         "name":"Stops",
         "value":58.50,
         "isGrand":false
      },
      {
         "name":"Sub Total",
         "value":132.50,
         "isGrand":true
      },
      {
         "name":"Pet",
         "value":25.00,
         "isGrand":false
      },
      {
         "name":"Booster",
         "value":25.00,
         "isGrand":false
      },
      {
         "name":"Car Seat",
         "value":25.00,
         "isGrand":false
      },
      {
         "name":"Infant",
         "value":25.00,
         "isGrand":false
      },
      {
         "name":"Gratuity (20%)",
         "value":26.50,
         "isGrand":false
      },
      {
         "name":"Tolls",
         "value":10.00,
         "isGrand":false
      },
      {
         "name":"Total",
         "value":269.00,
         "isGrand":true
      },
      {
         "name":"STC Fee (12.9%)",
         "value":34.70,
         "isGrand":false
      },
      {
         "name":"NYS Fund (3%)",
         "value":9.11,
         "isGrand":false
      },
      {
         "name":"Grand Total",
         "value":312.81,
         "isGrand":true
      },
      {
         "name":"Amount Due",
         "value":312.81,
         "isGrand":true
      }
   ]
}
Booking

Booking & Updates

POST https://www.bookalimo.com/web/api/booking/book/

Final step of reservation booking. Requires payment info to be entered. Attention: credit card will be automatically authorized if you run this function on production server.

Request

Headers:
content-type: application/json
Name Type Details
token Required field string Token returned by price function.
promo string Promo code
method string If your account is a charge account, put charge in this field and ignore creditCard property. Otherwise ignore this property and use creditCard instead.
creditCard Credit card info. Click to see details.

* Either CreditCard OR method must be provided.

Example request body
{
    "token": "NdAbNwEeYM",
    "promo": null,
    "creditCard": {
        "number": "4184 7284 3916 0355",
        "cardHolder": "John Smith",
        "expiration": "01/29",
        "cvv": "123",
        "zip": "10000",
        "holderType": "3"
    }
}

Response

Name Type Details
reservationId string Confirmation number.
Example response body
{
   "reservationId":"5452773"
}

POST https://www.bookalimo.com/web/api/booking/edit/

Use this function to create an edit request. Will work only if isEditable is true (see Get reservation section). Reservation will be updated after revision, before that you can see them in pendingChanges property.
Warning: if you will submit multiple edit requests, only last one will be processed.

Request

Headers:
content-type: application/json

Include in post body.

Example request body
{
   "credentials":{
      "id":"TA10007",
      "isCustomer":false,
      "passwordHash":"e784f281dc827fab59fd806cf01e68d872ba5b8bfa55c55bfdb937b5239f4a83"
   },
   "confirmation":"5452773",
   "isCancelRequest": false,
   "rateType":0,
   "pickupDate":"06/19/2024",
   "pickupTime":"08:50 PM",
   "stops":[
      {
         "description":"Brooklyn Bridge",
         "isEnRoute":false
      },
      {
         "description":"Empire State Building",
         "isEnRoute":true
      }
   ],
   "carClassCode":"SD",
   "passengers":2,
   "luggage":3,
   "pets":1,
   "boosters":1,
   "carSeats":1,
   "infants":1
}

Cancellation

Cancellation is a part of Edit. See example:

Example request body
{
   "credentials":{
      "id":"TA10007",
      "isCustomer":false,
      "passwordHash":"e784f281dc827fab59fd806cf01e68d872ba5b8bfa55c55bfdb937b5239f4a83"
   },
   "confirmation":"5452773",
   "isCancelRequest": true
}

Response

Example response body
{
    "success": true
}
Example response body
{
    "success": true
}
Reservations

Reservation Retrieval

POST https://www.bookalimo.com/web/api/booking/reservation/list/

Use this function to get a list of previously booked reservations or to validate credentials.

Request

Headers:
content-type: application/json
Name Type Details
credentials Required field Click to see details.
isArchive bool Default value is false. Set true to load archive reservations instead of upcoming.
Example request body
{
   "credentials":{
      "id":"TA10007",
      "isCustomer":false,
      "passwordHash":"e784f281dc827fab59fd806cf01e68d872ba5b8bfa55c55bfdb937b5239f4a83"
   },
   "isArchive": false
}

Response

Name Type Details
success bool If true - credentials are valid.
reservations Array of reservations. Can be empty, so use success property to detect if credentials are valid. Click to see details.
error stringNullable Error message if any.
Example response body
{
    "success": true,
    "reservations": [
        {
            "confirmationNumber": "5452655",
            "isArchive": false,
            "localDateTime": "06/20/2021 07:25 PM",
            "easternDateTime": "06/20/2021 07:25 PM",
            "rateType": 0,
            "passengerName": "John Smith",
            "pickupType": 1,
            "pickup": "JFK:DL New York, NY, US",
            "dropoffType": 0,
            "dropoff": "ICS Book A Limo office, 53 East 34th Street, Manhattan, New York, NY, US",
            "carClass": "SD"
        }
    ]
}

POST https://www.bookalimo.com/web/api/booking/reservation/get/

Use this function to get full information about reservation. Use reservation property to make an edit request.

Request

Headers:
content-type: application/json
Name Type Details
credentials Required field Click to see details.
confirmation Required field string Confirmation number of the reservation
Example request body
{
   "credentials":{
      "id":"TA10007",
      "isCustomer":false,
      "passwordHash":"e784f281dc827fab59fd806cf01e68d872ba5b8bfa55c55bfdb937b5239f4a83"
   },
   "confirmation": "5452773"
}

Response

Name Type Details
reservation Reservation information that can be edited using edit request (if isEditable is true). Click to see details.
isEditable bool Indicates if reservation can be edited.
status intNullable Any value except null means that reservation is cancelled. Possible values:
null: active
0: No Show
1: Canceled
2: Late Cancelled
isCancellationPending bool Indicates if reservation cancellation is pending.
carDescription stringNullable Description of selected car class.
cancellationPolicy stringNullable Cancellation policy for reservation.
pickupType int 0: Address
1: Airport
2: Train Station
3: Cruise
pickupDescription string Pick up location description
dropoffType int 0: Address
1: Airport
2: Train Station
3: Cruise
dropoffDescription string Drop-off location description
additionalServices stringNullable Description of the additional services if any.
paymentMethod stringNullable Description of the payment method(s).
breakdown Array of breakdown items. Click to see details.
passengerName stringNullable Full name of the passenger.
evoucherUrl stringNullable Url of the evoucher (if filled up).
receiptUrl stringNullable Url of the receipt (for archive reservations).
pendingChanges string[][] Array of pending changes if any.
Example response body
{
    "reservation": {
        "confirmation": "5452773",
        "isCancelRequest": false,
        "rateType": 0,
        "pickupDate": "06/19/2024",
        "pickupTime": "07:50 PM",
        "stops": [
            {
                "description": "Brooklyn Bridge",
                "isEnRoute": false
            },
            {
                "description": "Empire State Building",
                "isEnRoute": true
            }
        ],
        "carClassCode": "SD",
        "passengers": 2,
        "luggage": 3,
        "pets": 1,
        "boosters": 1,
        "carSeats": 1,
        "infants": 1
    },
    "isEditable": true,
    "isCancellationPending": false,
    "carDescription": "Sedan Lincoln, Cadillac Or Similar",
    "cancellationPolicy": "3 Hours Before Dispatch Time (Jobs Between 1Am And 7Am Are Dispatched Before 8 Pm)",
    "pickupType": 1,
    "pickupDescription": "JFK:UA New York, NY, US",
    "dropoffType": 0,
    "dropoffDescription": "53 East 34th Street, Manhattan, New York, NY, US",
    "additionalServices": "Pet; Car Seat; Booster; Infant",
    "paymentMethod": "4184********0355",
    "breakdown": [
        {
            "name": "Base Fare",
            "value": 74.00,
            "isGrand": false
        },
        {
            "name": "Stops",
            "value": 58.50,
            "isGrand": false
        },
        {
            "name": "Sub Total",
            "value": 132.50,
            "isGrand": true
        },
        {
            "name": "Pet",
            "value": 25.00,
            "isGrand": false
        },
        {
            "name": "Car Seat",
            "value": 25.00,
            "isGrand": false
        },
        {
            "name": "Booster",
            "value": 25.00,
            "isGrand": false
        },
        {
            "name": "Infant",
            "value": 25.00,
            "isGrand": false
        },
        {
            "name": "Gratuity (20%)",
            "value": 26.50,
            "isGrand": false
        },
        {
            "name": "Tolls",
            "value": 10.00,
            "isGrand": false
        },
        {
            "name": "Total",
            "value": 269.00,
            "isGrand": true
        },
        {
            "name": "STC Fee (12.9%)",
            "value": 34.70,
            "isGrand": false
        },
        {
            "name": "NYS Fund (3%)",
            "value": 9.11,
            "isGrand": false
        },
        {
            "name": "Grand Total",
            "value": 312.81,
            "isGrand": true
        },
        {
            "name": "Amount Due",
            "value": 312.81,
            "isGrand": true
        }
    ],
    "passengerName": "John Smith",
    "pendingChanges": [
        [
            "Pick up time",
            "06/19/2024 08:50 PM"
        ]
    ]
}