How it works
Two pages on your site:- Catalog page - built by you. Calls the listings API to render listing cards, with whatever filtering and layout you want.
- Experience page - a single page hosting the Way script. Every listing links here with a URL fragment identifying the experience; the script renders the details, availability calendar, and checkout for that experience.
1
Build your catalog page with the listings API
Fetch the brand’s published listings and render them your way:Each item carries what a card needs -
title, coverMedia, startingPrice, category, firstAvailableDate - plus the slug you’ll use for the handoff link in step 3. For filter controls, pull the brand’s categories and vibes and pass the selected IDs back as categoryIds[] / vibeIds[] query parameters.See Search and Display Listings for the full filtering, sorting, and pagination options.2
Create the experience page with the Way script
Create one page on your site (for example Place it inside the
/experiences/book/) and paste in the two-line embed snippet from the Way dashboard under Settings → Developers → Script embed:<body>, below your site’s header and navigation. On the same dashboard page, add your site’s URL to the allowed domains list - the script only runs on domains you’ve registered there.The script picks up your fonts and styling automatically; colors, logos, and further styling are configured under Settings → Branding in the dashboard.3
Link each listing card to the experience page
How you build the link depends on the listing’s Link the card to your experience page with the slug in the Resource collections (Optionally preselect a slot with The script reads the fragment and opens that listing’s details page directly. One page serves your whole catalog - no per-listing pages to create in your CMS, and new listings work as soon as they’re published in Way.
kind.Experiences (kind: experience) include a slug:#!/e/ URL fragment:kind: resource - cabanas, day beds, and other reservable resources) have no slug; use the listing’s resourceGroupCollectionId in the #!/collection/ fragment instead:date, time, and duration (ISO 8601) query parameters inside the fragment:What the script handles for you
Everything after the click: the experience details and media gallery, live availability and session selection, price tiers, custom questions, promo and access codes, the cart and payment step, and the confirmation the guest sees afterwards. Bookings made through the script appear in your dashboard and in the bookings API like any other booking, with the page URL stored as the booking’s source for attribution.Going further
- Notify your systems of new bookings with webhooks - no polling needed.
- Operate on bookings (find, cancel, refund, reschedule) via the API: see Manage Bookings.
- If you later outgrow the script and want to own checkout end to end, the catalog work carries over - continue with Build a Booking Integration.