Discover and book wellness, yoga, and retreat spaces — no authentication required
https://qdvqoeeucscjgpwiguom.supabase.co/functions/v1
No authentication required. All endpoints are publicly accessible.
/api-discover
Search for wellness, yoga, retreat, and workshop spaces with optional filters.
| Name | Type | Required | Description |
|---|---|---|---|
city | string | No | Filter by city (case-insensitive, e.g. "Amsterdam") |
activity | string | No | Filter by activity: Yoga, Pilates, Meditatie, Breathwork, Workshops, Coaching, Retreats, Dans |
capacity | integer | No | Minimum required capacity |
overnight | string | No | "true" to show only overnight-capable locations |
lang | string | No | Language: nl (default), en, de, fr, es |
limit | integer | No | Max results 1-50 (default: 20) |
offset | integer | No | Pagination offset (default: 0) |
curl "https://qdvqoeeucscjgpwiguom.supabase.co/functions/v1/api-discover?city=Amsterdam&activity=Yoga&capacity=10&lang=en"
{
"meta": { "total": 3, "limit": 20, "offset": 0, "lang": "en", "api_version": "1.0.0" },
"spaces": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Zen Yoga Loft",
"description": "A spacious yoga studio with bamboo floors and natural light.",
"city": "Amsterdam",
"region": "Noord-Holland",
"country": "NL",
"capacity": 25,
"square_meters": 80,
"activities": ["Yoga", "Meditatie", "Breathwork"],
"location": {
"name": "Yoga House Amsterdam",
"address": "Herengracht 100, 1015 BS Amsterdam",
"overnight_possible": false,
"lunch_available": true,
"coordinates": { "lat": 52.3676, "lng": 4.9041 }
},
"links": {
"detail": "https://holdspace.guru/space/a1b2c3d4-...",
"book": "https://holdspace.guru/book/a1b2c3d4-..."
}
}
]
}
/api-book
Submit a booking request for a specific space and time slot. Created with "pending" status.
| Field | Type | Required | Description |
|---|---|---|---|
space_id | uuid | Yes | Space ID from discover endpoint |
start_datetime | ISO 8601 | Yes | e.g. 2025-06-15T09:00:00+02:00 |
end_datetime | ISO 8601 | Yes | Booking end time |
customer_name | string | Yes | Full name of booker |
customer_email | Yes | Email for confirmation | |
customer_phone | string | No | Phone number |
notes | string | No | Additional requirements |
participant_count | integer | No | Expected participants |
room_index | integer | No | Room index for multi-room (default: 0) |
curl -X POST "https://qdvqoeeucscjgpwiguom.supabase.co/functions/v1/api-book" \
-H "Content-Type: application/json" \
-d '{
"space_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"start_datetime": "2025-06-15T09:00:00+02:00",
"end_datetime": "2025-06-15T17:00:00+02:00",
"customer_name": "Jan de Vries",
"customer_email": "jan@voorbeeld.nl",
"participant_count": 15
}'
{
"success": true,
"booking": {
"id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"status": "pending",
"space_name": "Zen Yoga Loft",
"location_name": "Yoga House Amsterdam",
"start_datetime": "2025-06-15T09:00:00+02:00",
"end_datetime": "2025-06-15T17:00:00+02:00",
"price": {
"total_cents": 35000,
"currency": "EUR",
"formatted": "€350,00",
"includes_vat": true
}
},
"next_steps": {
"message": "Booking created with 'pending' status. The owner will review it.",
"detail_url": "https://holdspace.guru/pay/b2c3d4e5-..."
}
}
| Status | Description |
|---|---|
400 | Invalid or missing parameters |
404 | Space not found |
409 | Time slot not available |
AI agents supporting Model Context Protocol (Claude, Cursor, Windsurf) can connect directly:
{
"mcpServers": {
"holdspace": {
"url": "https://qdvqoeeucscjgpwiguom.supabase.co/functions/v1/mcp-server",
"transport": "streamable-http"
}
}
}
| Tool | Description |
|---|---|
discover_spaces | Search spaces with filters (city, activity, capacity, overnight) |
check_availability | Check availability for a specific date/time |
book_space | Create a booking request |
| Endpoint | Limit |
|---|---|
| GET /api-discover | 30 requests/minute per IP |
| POST /api-book | 5 requests/minute per IP |