hold_hash which must be passed to POST /bookings to complete the booking.409 Conflict is returned with the existing hold's details.GET /timeslots response (i.e. a trainer must be available).DELETE /timeslots/hold/{holdHash}.curl --location '/timeslots/hold' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"course_id": 1,
"date": "2026-06-10",
"time": "09:00"
}'{
"hold_hash": "Xy7kRtQmNpLsWvBzJcFdEaHgUiOeYtAn",
"expires_at": "2026-06-03T18:30:00+00:00",
"expires_in_seconds": 1800,
"slot": {
"date": "2026-06-10",
"time": "09:00",
"course": {
"id": 1,
"name": "BLS — Annual Renewal"
}
}
}