fbpx

Create a Simple Booking Site or App with our API

This is one in a series of API quickstart articles designed to help familiarize users with some of the more commonly used API functions.

Many of our users like to use our dashboard to configure their Providers, Bookables, and Resources, but then use our API to create a unique booking experience for their customers. We’ll assume you’ve already creates some Providers, Bookables, and (optionally) Resources through the dashboard.

There are, of course, many different workflows you could create, but a simple, complete booking experience can be achieved with three API calls. Before making any call, you’ll need to create an authentication header. You’ll need to pass this header along with each of the calls in this example.

Create a Header Now

Once you’ve created your authentication header, you can build a simple booking app with these three calls.

  1. Get Provider Information

This call will return all of the information you need to create a landing page with a menu of items available to be booked (Bookables).

curl -X GET https://YOUR_MARKETPLACE_DOMAIN/api/provider/id/{provider_id}

{
“id”: “”,
“active”: true,
“address”: “”,
“agreementterms”: “”,
“blackouts”: […list_of_blackout_objects…],
“bookablerequestenabled”: false,
“bookingsitepassword”: “”,
“bookingcss”: “”,
“bookinglogo”: “”,
“displaymarketplacelogo”: true,
“drivetime”: 0,
“bookingflow”: “”,
“newbusinesshours”: […availability_frames…],
“capacityrestrictions”: “”,
“city”: “”,
“coordinates”: [],
“coverphoto”: “”,
“custommessage”: “Welcome to our booking site.”,
“datemessage”: “select a date”,
“description”: “”,
“dictionary”: {},
“display_extension_tos”: false,
“displaytext”: {},
“email”: “user@mail.com”,
“name”: “Provider Name”,
“firstname”: “First”,
“gtagmanagercodeprovider”: “”,
“lastname”: “Last”,
“latlong”: [],
“loginenabled”: false,
“nobookablesmessage”: “”,
“notifications”: […default_notification_objects…],
“questions”: […library_of_questions_for_bookables…],
“resourceinvitemessage”: “”,
“missedappointmentmessage”: “”,
“invitemessage”: “”,
“phone”: “”,
“website”: “”,
“facebook”: “”,
“twitter”: “”,
“instagram”: “”,
“pinterest”: “”,
“regions”: [],
“reservationtypes”: […bookable_objects…],
“requirementgroups”: “”,
“reservationsperbooking”: 1,
“resources”: […resource_objects…],
“resourceholds”: […resource_hold_objects…],
“state”: “”,
“subdomain”: “mysubdomain”,
“submitbutton”: “”,
“thankyoumessage”: “”,
“timemessage”: “”,
“timezone”: “”,
“userinstructions”: “”,
“url”: “”,
“zip”: “”,
“users”: “”,
“type”: “provider”,
“whitelabel”: “marketplace_name”,
}

View the full specification for the Provider entity.

2. Get Availability

This call allows you to retrieve all of the available time slots for a specified Bookable, within a specified date range.

curl -X GET https://YOUR_PROVIDER_SUBDOMAIN.YOUR_MARKETPLACE_DOMAIN/availability/start /2017-09-01%2013:00:00/end/2017-09-02%2015:00:00/bookable/1/resources/1,2,3
[{
“start”: “2017-09-01 13:00:00”
“end”: “2017-09-01 14:00:00”
“bookable”: “1”
“resources”: [“1”, “2”],
“seats_available”: 1
},
{
“start”: “2017-09-01 14:00:00”
“end”: “2017-09-01 15:00:00”
“bookable”: “1”
“resources”: [“3”],
“seats_available”: 1
}]

View the full specification for Availability.

3. Make Reservation

This call allows you to create a reservation for a specified date and time, on a specified Bookable. You can also specify particular resources to be reserved. In addition to creating the reservation, a customer user will automatically be created.

curl

{

“bookable”: “bookable_id”,
“comments”: “”,
“customquestions”: […list_of_response_objects…],
“email”: “user@mail.com”,
“end”: “2017-08-04 14:00:00”,
“expires”: “2017-08-04 14:00:00”,
“first_name”: “First”,
“hold”: 0,
“last_name”: “Last”,
“location”: “”,
“mobile_phone_number”: “”,
“networkuser”: “”,
“packaged_bookables”: “”,
“package_id”: “”,
“package_type”: “”,
“phone”: “”,
“provider”: “providersubdomain”,
“paymentinformation”: “”,
“resources”: […list_of_resource_ids…],
“seats”: 1,
“start”: “2017-08-04 13:00:00”,
“status”: “booked”,
“user”: “user_id”,
“type”: “reservation”,
“whitelabel”: “marketplace_name”
}

View the full specification for the Reservation entity.

That’s it! You can easily add more functionality once your booking app is up and running.