Skip to main content

Experiences API

Module-gated

All endpoints in this section require the supplier to have the Experiences module enabled. Calls return 403 module_disabled when it is off. Check GET /supplier/modules before relying on these endpoints.

The Experiences API allows you to manage tours, activities, and classes - scheduled events that customers can book.

Resourcesโ€‹

ResourceDescription
ExperiencesCreate and manage tours, activities, and classes
AvailabilityCheck schedule availability and capacity
CategoriesOrganize experiences into categories

Common Workflowsโ€‹

Display Experiences on Your Websiteโ€‹

  1. List experiences - GET /v1/experiences to fetch your offerings
  2. Get schedules - GET /v1/experiences/{id}/schedules to show available times
  3. Check availability - POST /v1/availability/experiences before booking

Manage Your Tours & Activitiesโ€‹

  1. Create experience - POST /v1/experiences to add a new tour or activity
  2. Set up schedules - POST /v1/experiences/{id}/schedules to define when it runs
  3. Configure pricing - POST /v1/experiences/{id}/pricing with rate categories

Handle Different Ticket Typesโ€‹

  1. Create rate categories - Adults, Children, Seniors, etc.
  2. Set category pricing - Different prices per category
  3. Track capacity - Per-schedule participant limits

Sell One Experience More Than One Wayโ€‹

  1. Read the options - GET /v1/experiences/{id}/booking-options for the ways it is sold
  2. Add another way - POST /v1/experiences/{id}/booking-options, for example a private session beside the group one
  3. Name it on the booking - send booking_option_id on the experience line so the right prices apply

See Booking options.

Key Conceptsโ€‹

Experiences vs Productsโ€‹

ExperiencesProducts
Scheduled at specific timesRented for date ranges
Fixed capacity per slotInventory-based availability
Participants book slotsCustomers rent quantities
Tours, classes, activitiesEquipment, gear, vehicles

Schedulesโ€‹

Schedules define when an experience runs:

  • Date and time - When the experience starts
  • Duration - How long it lasts
  • Capacity - Maximum participants
  • Staff assignment - Who runs it (optional)

Rate Categoriesโ€‹

Rate categories allow different pricing for different participant types:

{
"rate_categories": [
{ "name": "Adult", "price": 75.00 },
{ "name": "Child (5-12)", "price": 45.00 },
{ "name": "Senior (65+)", "price": 60.00 }
]
}

Quick Examplesโ€‹

List Active Experiencesโ€‹

curl "https://app.equipdash.com/api/v1/experiences?status=active" \
-H "Authorization: Bearer YOUR_API_KEY"

Get Experience Schedulesโ€‹

curl "https://app.equipdash.com/api/v1/experiences/3/schedules?start_date=2026-02-01&end_date=2026-02-28" \
-H "Authorization: Bearer YOUR_API_KEY"

Check Experience Availabilityโ€‹

curl -X POST "https://app.equipdash.com/api/v1/availability/experiences" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"experience_id": 3,
"schedule_id": 78,
"quantity": 4
}'

Required Scopesโ€‹

ScopeOperations
experiences:readList, get experiences, read the ways they are sold, check availability
experiences:writeCreate, update, delete experiences and schedules, and manage the ways they are sold