Reservation Booking Links API

Public booking pages are configured as booking links: named URLs with a slug, mode (which services appear), is_active, and a large JSON page_config for branding, copy, contact form fields, and service layout.

Base endpoint: /reservation-booking-links

Public URL pattern (from the app): {origin}/b/{organizationId}/{slug} (path may vary with deployment; use the slug returned by the API).

Top-level fields

FieldTypeDescription
organization_idNumberRequired.
nameStringInternal label.
slugStringURL segment; unique per organization.
modeStringall_services, single_service, or selected_services.
service_idNumber | nullRequired when mode is single_service; otherwise null.
is_activeBooleanWhether the link is enabled.
page_configObjectBranding, content, form, and layout (see below).

mode rules

  • single_service: set service_id to the one bookable service.
  • selected_services: set page_config.booking_service_ids (array of service IDs) and optionally page_config.booking_service_sections (grouped sections). The app flattens sections into booking_service_ids on save.
  • all_services: optionally set page_config.booking_all_services_order (array of service IDs) and/or page_config.booking_all_services_sections for grouped display; service-specific section keys are removed on save.

page_config reference

All keys are optional unless noted. Colors are CSS hex strings (e.g. #2563EB).

Content and copy

KeyTypeDescription
hero_titleStringHero title override.
show_hero_titleBooleanDefault true if omitted.
hero_fallback_to_link_nameBooleanUse link name when hero title empty.
hero_subtitleString
descriptionStringBody/description.
instructionsStringInstructions shown on the flow.
thank_you_messageStringPost-booking message.
policy_textStringPolicy / legal footer.
booking_page_copyObjectPartial string overrides for UI labels (see app BookingPageCopy).
booking_page_copy_presetStringenglish or spanish presets in the UI.

Media and layout

KeyTypeDescription
logo_urlStringLogo image URL.
cover_image_urlStringHero cover image URL.
booking_logo_placementStringe.g. below_cover.
booking_logo_shapeStringe.g. rounded.
booking_logo_sizeStringe.g. md.
booking_logo_background_colorString
booking_logo_border_colorString
booking_logo_border_width_pxNumber
booking_logo_show_shadowBoolean
booking_logo_show_ringBoolean
booking_logo_ring_colorString
booking_logo_ring_width_pxNumber

Theme and colors

KeyTypeDescription
booking_page_themeStringcustom or preset mode from theme picker.
primary_colorString
background_colorString
text_colorString
heading_colorString
muted_text_colorString
link_colorString
on_primary_colorString
surface_colorString
surface_border_colorString
input_background_colorString
input_border_colorString
hero_title_text_colorString
hero_subtitle_text_colorString
service_icon_text_colorString
summary_banner_colorString
instruction_banner_colorString
instruction_banner_text_colorString
empty_state_background_colorString
empty_state_border_colorString
empty_state_text_colorString
slot_button_background_colorString
slot_button_idle_text_colorString
stepper_inactive_colorString
stepper_connector_colorString
stepper_text_colorString
service_list_background_colorString
service_list_border_colorString
service_list_heading_text_colorString
service_list_primary_text_colorString
service_list_secondary_text_colorString
calendar_panel_background_colorString
calendar_panel_border_colorString
calendar_section_heading_text_colorString
calendar_panel_text_colorString
times_panel_background_colorString
times_panel_border_colorString
times_section_heading_text_colorString
times_panel_secondary_text_colorString
times_panel_text_colorString
details_section_heading_text_colorString
customer_details_text_colorString
confirmation_title_text_colorString
confirmation_body_text_colorString
confirmation_recap_text_colorString
policy_footer_text_colorString
summary_strip_primary_text_colorString
summary_strip_secondary_text_colorString

Service list presentation

KeyTypeDescription
service_list_thumbnail_modeStringcolor, image, letter, or none.
service_list_layoutStringlist or grid.
show_service_descriptionBooleanDefault true if omitted.
show_powered_byBoolean

Contact form

KeyTypeDescription
booking_contact_fieldsObjectFlags for first_name, last_name, email, phone, party_size, notes.
booking_contact_identify_modeStringemail_first or phone_first.
booking_identify_show_headingBoolean
booking_identify_show_helperBoolean
booking_default_phone_country_isoStringe.g. US.
booking_default_phone_country_codeStringe.g. +1.
booking_default_party_sizeNumber
booking_contact_custom_field_idsNumber[]Contact custom field IDs to show.
booking_reservation_custom_field_idsNumber[]Reservation custom field IDs to show.

Service selection (mode-dependent)

KeyTypeDescription
booking_service_idsNumber[]Used for selected_services (flattened list).
booking_service_sectionsArray{ id, title, service_ids: number[] } for grouped services.
booking_all_services_orderNumber[]Optional order for all_services.
booking_all_services_sectionsArraySame section shape for all-services mode.

Upload logo/cover via

POST
/s3-url-signing with types booking-link-logo and booking-link-cover, then set logo_url / cover_image_url in page_config.

Related

Report an issue with this documentation

Please log in to report issues with our documentation.