The Booking API allows members to offer a preset number of resources for booking through an online form. This feature can be used to sell a limited quantity of tickets for an event on a registration form or put up a fixed inventory of goods on sale, like t-shirts of different sizes.

The booking form is automatically disabled once the event is fully booked (or items for sale are sold out), or the booking/selling period has ended. As explained in this document, the Booking API allows the form owner to access information about bookings and events online. Feel free to try this booking form demo, quickly make a simple booking form, learn how bookings work, and contact us if you have any questions.

Events & Other Bookable Resources

A bookable resource is called an event. An event can be anything with a name, date and a limited number of bookable slots. A bookable resource is typically an event associated with a number of tickets that can be booked via an online form, but it could also be a product with the corresponding inventory.

How to Create an Event/Bookable Resource

To create an event, log in to the API Console and submit a POST request to https://formsmarts.com/api/v1/events, providing a value for each of the required parameters listed below.

API Endpoint
https://formsmarts.com/api/v1/events
HTTP Method
POST
Parameter (in request body)DescriptionNotes
label Name or label of the event or bookable resource Required
slots Total number of slots available for booking, e.g. tickets, seats Required
date Date and time of the event in ISO 8601 format, e.g. 2014-12-30T15:00:00 Required
timezone Timezone of the event as listed here, e.g. America/Los_Angeles Required
booking_starts Date and time on which bookings start, in the timezone specified under timezone. Optional
booking_ends Date and time on which bookings end, in the timezone specified under timezone. Optional
is_event Is this bookable resource is an event ('true' by default). Optional

Listing Events/Bookable Resources

To retrieve the details of events or bookable resources, submit a GET request. All parameters are optional.

API Endpoint
https://formsmarts.com/api/v1/events
HTTP Method
GET
Parameter (in query string)DescriptionNotes
fields A comma-separated list of attributes to return in the API response. Event attributes are: event_id, slots, usedslots, label, status, date, timezone, booking_starts, booking_ends, is_event Optional
limit Maximum number of results to return in the API response. Optional
offset If provided, results are returned in the API response starting at the element specified in offset. Optional

To get the details of a particular event, append the event's ID to the API endpoint URL and submit a GET request:

API Endpoint
https://formsmarts.com/api/v1/events/Event_ID
HTTP Method
GET

Fetching Events/Bookable Resources Data on a Booking Form

Basic information about active events is publicly available so it may be integrated to a booking form.

API Endpoint
https://formsmarts.com/api/v1/events/public
HTTP Method
GET
Parameter (in query string)DescriptionNotes
session_id The session ID of the form the booking is associated with. Required

Canceling an Event/Bookable Resource

To cancel an event (a.k.a. bookable resource), append the event's ID to the API endpoint and submit a DELETE request:

API Endpoint
https://formsmarts.com/api/v1/events/Event_ID
HTTP Method
DELETE

An event may only be deleted if it doesn't have bookings. Cancel the associated bookings first if needed.

How to Make a Booking Form

You can easily make a simple booking form via the form builder, but if you would like to adjust booking options, you'll need to use the Booking API instead.

To create an online booking form via the Booking API:
  1. Create a form, adding at least one booking field like on this demo. A booking field is a simple text box that should allow Letters + Numbers.
  2. Create an event as outlined in the previous section
  3. Integrate the form with the Booking API as explained next.

Associate Events/Booking Resources with a Form

To associate an event (or any bookable resource) with a form, sign in to the API Console and submit a PUT request to the API endpoint below, replacing Form_ID with the ID of the form. All parameters but booking_fields are optional.

API Endpoint
https://formsmarts.com/api/v1/forms/Form_ID/booking
HTTP Method
PUT
Parameter (in request body)DescriptionNotes
booking_fields A comma-separated list of the IDs of the booking fields you've added to the form. You can find out the ID of an input field with the API. Required
event_label_fields A comma-separated list of the IDs of the event label fields, if any. Optional
event_ids A comma-separated list of Event IDs. If not specified, a list of all active events is retrieved when the form is loaded. Optional
max_slots The maximum number of slots (i.e. tickets or seats) that can be booked in a booking field. Between 1 and 5, defaults to 1. Optional
interactive Force form users to interact with the booking user-interface, even when booking one slot for a single event. Defaults to no. Optional

Review a Form's Booking Integration

To list the current integration parameters of a form, submit a GET request.

API Endpoint
https://formsmarts.com/api/v1/forms/Form_ID/booking
HTTP Method
GET

Remove a Form's Booking Integration

To cancel a form's booking integration, submit a DELETE request.

API Endpoint
https://formsmarts.com/api/v1/forms/Form_ID/booking
HTTP Method
DELETE

Managing Bookings

Booking an Event

To book a slot for event, send a POST request. A slot will be pre-booked. A booking form must be submitted within 30 minutes to confirm the booking.

API Endpoint
https://formsmarts.com/api/v1/bookings
HTTP Method
POST
Parameter (in request body)DescriptionNotes
event_id The ID of the event. Required
session_id The session ID of the form the booking is associated with. Required unless the request is authenticated.
allow_multiple Allow multiple bookings to be associated with a form entry. 'yes' or 'no' ('no' by default). Optional
auto_confirm Confirm the booking immediately. Requires an authenticated requests. 'yes' or 'no' ('no' by default). Optional
fs_ref_num The FormSmarts Reference Number of the form submission to associate with the booking. Required if auto_confirm is 'yes'.

Note: List events as described above to find out the ID of an event.

Canceling a Booking

To cancel a booking, append the booking's ID to the URL and send a DELETE request:

API Endpoint
https://formsmarts.com/api/v1/bookings/Booking_ID
HTTP Method
DELETE
Parameter (in query string)DescriptionNotes
session_id A booking can be canceled by the FormSmarts account admin or the form user that made the booking. To cancel a booking as a form user, pass the session ID of the form associated with the booking in the session_id parameter. Required unless the request is authenticated

Listing the Details of a Booking

To retrieve the details of a booking, append the booking's ID to the URL and submit a GET request:

API Endpoint
https://formsmarts.com/api/v1/bookings/Booking_ID
HTTP Method
GET
Parameter (in query string)DescriptionNotes
fields A comma-separated list of attributes to return in the API response. Options are: fs_ref_num, event_id, slot, status, booking_id, booking_date Optional

Listing All Bookings for an Event

To list all bookings for an event, insert the event's ID in the URL and submit a GET request:

API Endpoint
https://formsmarts.com/api/v1/events/Event_ID/bookings
HTTP Method
GET
Parameter (in query string)DescriptionNotes
fields A comma-separated list of attributes to return in the API response. Options are: fs_ref_num, event_id, slot, status, booking_id, booking_date, event_date Optional
limit Maximum number of results to return in the API response. Optional
offset If provided, results are returned in the API response starting at the element specified in offset. Optional