Skip to main content

Create Waitlist Entry

Add a customer to the waitlist for a sold-out experience or unavailable rental product. A confirmation email is automatically sent to the customer.

POST /v1/waitlist

Authenticationโ€‹

Requires a valid API key with waitlist:write scope.

Request Bodyโ€‹

FieldTypeRequiredDescription
typestringYesEntry type: experience or rental
namestringYesCustomer name
emailstringYesCustomer email address
phonestringNoCustomer phone number
experience_idintegerRequired if type=experienceThe experience ID
schedule_idintegerRequired if type=experienceThe specific schedule/session ID
product_idintegerRequired if type=rentalThe product ID
variation_idintegerNoProduct variation ID (rental only)
desired_start_atstringNoDesired rental start datetime (ISO 8601 with time, e.g. 2026-03-01T09:00:00Z, rental only)
desired_end_atstringNoDesired rental end datetime (ISO 8601 with time, e.g. 2026-03-05T17:00:00Z, rental only)
quantityintegerNoNumber of spots/items (default: 1)
notesstringNoAdditional notes (max 1000 characters)

Request Example (Experience)โ€‹

curl -X POST "https://app.equipdash.com/api/v1/waitlist" \
-H "Authorization: Bearer eqd_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"type": "experience",
"name": "Jane Smith",
"email": "jane@example.com",
"phone": "+1234567890",
"experience_id": 42,
"schedule_id": 156,
"quantity": 2,
"notes": "Prefer morning session"
}'

Request Example (Rental)โ€‹

curl -X POST "https://app.equipdash.com/api/v1/waitlist" \
-H "Authorization: Bearer eqd_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"type": "rental",
"name": "John Doe",
"email": "john@example.com",
"product_id": 15,
"variation_id": 3,
"desired_start_at": "2026-03-01T09:00:00Z",
"desired_end_at": "2026-03-05T17:00:00Z",
"quantity": 1
}'

Responseโ€‹

Returns the created waitlist entry with a 201 Created status.

{
"data": {
"id": 789,
"type": "experience",
"status": "waiting",
"customer": {
"id": 456,
"name": "Jane Smith",
"email": "jane@example.com",
"phone": "+1234567890"
},
"experience_id": 42,
"schedule_id": 156,
"quantity": 2,
"notes": "Prefer morning session",
"source": "api",
"notified_at": null,
"created_at": "2026-02-11T14:30:00+00:00",
"updated_at": "2026-02-11T14:30:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-11T14:30:00+00:00"
}
}

Rate Limitingโ€‹

Waitlist creation is rate-limited to 5 entries per email address per supplier per hour. Exceeding this limit returns a 422 error.

Validation Notesโ€‹

  • experience_id must reference an experience that belongs to your supplier account
  • schedule_id must reference a schedule that belongs to the specified experience_id
  • product_id must reference a product that belongs to your supplier account
  • variation_id must reference a variation that belongs to the specified product_id

Error Responsesโ€‹

StatusCodeDescription
403plan_feature_requiredSupplier does not have the Waitlist feature (requires Pro plan)
422validation_errorInvalid request data (missing fields, invalid IDs, etc.)
422waitlist_errorRate limit exceeded or other business rule violation