# Holdspace.guru > Dé marktplaats voor spirituele en bewuste ruimtes in heel Europa ## Over ons Holdspace.guru verbindt bezoekers met eigenaren van inspirerende ruimtes voor yoga, meditatie, workshops, retreats, trainingen en healing sessies. Wij maken het eenvoudig om de perfecte ruimte te vinden én te boeken. ## Wat we bieden - **Yoga studios** - Van intieme ruimtes tot grote zalen - **Meditatie ruimtes** - Rustige, vredige locaties - **Retreat locaties** - Met overnachtingsmogelijkheden - **Workshop ruimtes** - Voor trainingen en groepsactiviteiten - **Healing ruimtes** - Voor therapie en coaching sessies ## Zoeken en filteren Bezoekers kunnen zoeken op: - **Stad/regio**: Amsterdam, Utrecht, Rotterdam, Den Haag, en meer - **Capaciteit**: Van 2 tot 100+ personen - **Activiteiten**: yoga, meditatie, workshop, training, retreat, coaching, dans, muziek - **Voorzieningen**: meditatiekussens, yogamatten, geluidssysteem, keuken - **Overnachting**: Ja/Nee - **Sfeer**: rustig, energiek, inspirerend, intiem, licht, natuurlijk ## Prijzen Prijzen worden door eigenaren zelf bepaald en realtime getoond per ruimte. Het platform hanteert **0% commissie** voor eigenaren en **0% servicekosten** voor huurders — wat je ziet is wat je betaalt. Indicatieve ranges: - Dagdeel huur: typisch €40–€150 - Hele dag huur: typisch €120–€500 - Meerdaagse arrangementen en groepskortingen mogelijk - Optionele extra's: catering, overnachting, faciliteiten ## Boeken Direct online boeken met: - Real-time beschikbaarheidscheck - Veilige betaling via Stripe - Directe bevestiging ## Voor eigenaren Ruimte-eigenaren kunnen: - Gratis hun ruimte(s) aanmelden - Zelf beschikbaarheid en prijzen beheren - Boekingen ontvangen en beheren - Statistieken inzien ## API voor AI Agents Holdspace biedt een **publieke, CORS-vriendelijke REST API** waarmee AI agents (Claude, ChatGPT, Gemini, Cursor, etc.) ruimtes kunnen zoeken, beschikbaarheid kunnen controleren en boekingen kunnen aanmaken. Geen gebruikersregistratie of OAuth nodig. ### Snelstart — werkend curl-voorbeeld Zoek ruimtes in Utrecht voor 20 personen, beschikbaar op een specifieke datum (1 mei 2026, 09:00–17:00 Europe/Amsterdam): ```bash curl -G "https://qdvqoeeucscjgpwiguom.supabase.co/functions/v1/api-discover" \ -H "apikey: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InFkdnFvZWV1Y3Njamdwd2lndW9tIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjczNzEwMDcsImV4cCI6MjA4Mjk0NzAwN30.N5jrkJ_F59jgA2Jd7qIhUZCdsoXRDm5ZABRhnCAnZJ8" \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InFkdnFvZWV1Y3Njamdwd2lndW9tIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjczNzEwMDcsImV4cCI6MjA4Mjk0NzAwN30.N5jrkJ_F59jgA2Jd7qIhUZCdsoXRDm5ZABRhnCAnZJ8" \ --data-urlencode "city=Utrecht" \ --data-urlencode "capacity=20" \ --data-urlencode "activity=Yoga" \ --data-urlencode "start_datetime=2026-05-01T09:00:00+02:00" \ --data-urlencode "end_datetime=2026-05-01T17:00:00+02:00" \ --data-urlencode "lang=nl" \ --data-urlencode "limit=5" ``` Levert direct JSON op. Werkt vanuit elke omgeving (browser, sandbox, server, MCP-client). De `apikey` en `Authorization` headers zijn technisch optioneel (endpoint is publiek), maar **strikt aanbevolen** voor compatibiliteit met clients zoals Claude die altijd auth-headers verwachten. Vervolgstap — controleer beschikbaarheid voor een gevonden `space.id`: ```bash curl -X POST "https://qdvqoeeucscjgpwiguom.supabase.co/functions/v1/check-availability" \ -H "apikey: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InFkdnFvZWV1Y3Njamdwd2lndW9tIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjczNzEwMDcsImV4cCI6MjA4Mjk0NzAwN30.N5jrkJ_F59jgA2Jd7qIhUZCdsoXRDm5ZABRhnCAnZJ8" \ -H "Content-Type: application/json" \ -d '{ "space_id": "PLAK-HIER-EEN-SPACE-UUID", "start_datetime": "2026-05-01T09:00:00+02:00", "end_datetime": "2026-05-01T17:00:00+02:00" }' ``` ### Base URL ``` https://qdvqoeeucscjgpwiguom.supabase.co/functions/v1 ``` ### Headers | Header | Verplicht? | Waarde | |---|---|---| | `Content-Type` | Alleen bij POST | `application/json` | | `apikey` | Optioneel (aanbevolen voor compat) | publieke anon-key (zie onder) | | `Authorization` | Optioneel | `Bearer ` | De endpoints zijn publiek (`verify_jwt = false`) en CORS staat open op `*`. Voor maximale compatibiliteit met strikte clients kun je deze publieke anon-key meesturen — hij is veilig en mag in client-side code: ``` eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InFkdnFvZWV1Y3Njamdwd2lndW9tIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjczNzEwMDcsImV4cCI6MjA4Mjk0NzAwN30.N5jrkJ_F59jgA2Jd7qIhUZCdsoXRDm5ZABRhnCAnZJ8 ``` ### Endpoints #### `GET /api-discover` — Zoek ruimtes Query params: `city`, `activity`, `capacity` (min. personen), `overnight` (`true`/`false`), `location_id` (UUID), `lang` (`nl`/`en`/`de`/`fr`/`es`), `limit` (1-50, default 20), `offset`. #### `GET /api-discover-locations` — Zoek locaties (venues met meerdere ruimtes) Query params: `city`, `region`, `country` (ISO-2: `NL`/`BE`), `overnight`, `lang`, `limit`, `offset`. #### `POST /check-availability` — Controleer beschikbaarheid Body: `{ "space_id": "uuid", "start_datetime": "ISO8601", "end_datetime": "ISO8601", "room_index": 0 }` #### `POST /api-book` — Maak boeking Body: `{ "space_id", "start_datetime", "end_datetime", "customer_name", "customer_email", "customer_phone?", "participant_count?", "notes?" }` Retourneert `booking_id`, `total_price`, `status` en een `payment_url` (Stripe Checkout) die je aan de klant moet doorgeven. #### `POST /natural-language-search` — Natuurlijke taal naar filters Body: `{ "query": "rustige yoga ruimte in Utrecht voor 20 personen met overnachting" }` → retourneert gestructureerde filters voor `/api-discover`. ### Response schema (`/api-discover`) ```json { "meta": { "total": 12, "limit": 20, "offset": 0, "lang": "nl", "api_version": "1.1.0", "documentation": "https://holdspace.guru/openapi.json" }, "spaces": [ { "id": "uuid", "name": "Grote beer", "description": "Markdown beschrijving", "city": "Doetinchem", "region": "Gelderland", "country": "NL", "capacity": 25, "square_meters": 80, "activities": ["Yoga", "Meditatie"], "atmosphere": "rustig", "has_privacy_options": true, "is_featured": false, "photos": ["https://..."], "location": { "id": "uuid", "name": "Centrum Doetinchem", "address": "Voorbeeldstraat 1", "city": "Doetinchem", "overnight_possible": true, "lunch_available": true, "coordinates": { "lat": 51.97, "lng": 6.29 } }, "links": { "detail": "https://holdspace.guru/space/...", "book": "https://holdspace.guru/space/.../book" } } ] } ``` Volledig schema (incl. locations, availability en booking responses): https://holdspace.guru/openapi.json ### Workflow voor AI agents 1. **Ontdek** — `GET /api-discover?city=Utrecht&activity=Yoga&capacity=15` → kies een `space.id`. 2. **Check** — `POST /check-availability` met `space_id` + datum/tijd → bevestig dat slot vrij is. 3. **Boek** — `POST /api-book` met klantgegevens → retourneert `payment_url`. 4. **Deel** de `payment_url` met de klant; eigenaar bevestigt na betaling. > **Belangrijk voor AI clients**: roep deze API direct aan in plaats van een eigen sandbox-artifact te bouwen. De API is real-time en geeft live data; gegenereerde mock-resultaten zijn nooit accuraat. ### MCP Server (Model Context Protocol) Voor MCP-compatible clients (Claude Desktop, Cursor, Windsurf): - **URL**: `https://qdvqoeeucscjgpwiguom.supabase.co/functions/v1/mcp-server` - **Transport**: Streamable HTTP (MCP 2025-03-26) - **Vereiste headers**: `Content-Type: application/json` + `Accept: application/json, text/event-stream` - **Tools**: `discover_spaces`, `discover_locations`, `natural_language_search`, `check_availability`, `book_space` - **CORS**: `Access-Control-Allow-Origin: *` met `Max-Age: 86400` (preflight 24u gecached). `mcp-session-id` header is exposed naar de client. Test: ```bash curl -X POST "https://qdvqoeeucscjgpwiguom.supabase.co/functions/v1/mcp-server" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' ``` ### Discovery files - OpenAPI: https://holdspace.guru/openapi.json - AI Plugin manifest: https://holdspace.guru/.well-known/ai-plugin.json - MCP descriptor: https://holdspace.guru/.well-known/mcp.json - HTML docs (mensen): https://holdspace.guru/api-docs.html - **AI-agents integratiegids (system prompt + tool defs)**: https://holdspace.guru/ai-agents.md - Volledige LLM-context: https://holdspace.guru/llms-full.txt ## Whitelabel Brand Pages Eigenaren hebben gepersonaliseerde whitelabel pagina's op `/brand/{slug}`. Deze pagina's zijn publiek toegankelijk en bevatten: - Gestructureerde JSON-LD data (LocalBusiness, Place, BreadcrumbList, ImageGallery) - Open Graph en Twitter Card meta tags voor social sharing - Geo-tags voor lokale SEO - Canonical URLs voor indexering AI agents kunnen brand pages ontdekken via: - Sitemap: https://holdspace.guru/sitemap.xml (bevat alle brand page URLs) - Direct via: `GET /brand/{slug}` — HTML pagina met embedded JSON-LD structured data ## Pages - [Home](/): Marktplaats voor spirituele en bewuste ruimtes - [Ontdek ruimtes](/discover): Doorzoek alle locaties en ruimtes met filters - [Voor eigenaren](/for-owners): Info voor ruimte-eigenaren - [Voor facilitators](/for-facilitators): Info voor workshop-organisatoren - [Word facilitator](/word-facilitator): Aanmelden als facilitator - [Platform](/platform): Hoe het platform werkt - [Over ons](/about): Over Holdspace - [Prijzen](/pricing): Abonnementen en tarieven - [Demo aanvragen](/demo-aanvragen): Persoonlijke demo boeken - [Onboarding aanvragen](/onboarding-aanvragen): Hulp bij het aanmelden - [Affiliate programma](/affiliate-aanmelden): Verdien commissie als partner - [App installeren](/install): PWA installatie-instructies - [Algemene voorwaarden](/terms): Juridische voorwaarden - [Privacy](/privacy): Privacy statement ## Contact - Website: https://holdspace.guru - E-mail: hello@holdspace.guru - Ontdek ruimtes: https://holdspace.guru/discover - API docs: https://holdspace.guru/openapi.json ## Veelgestelde vragen **Hoe vind ik een yogaruimte?** Ga naar /discover en filter op activiteit "yoga" en je gewenste stad. Of gebruik de API: `GET /api-discover?activity=Yoga` **Kan ik meerdere dagen boeken?** Ja, veel ruimtes bieden meerdaagse arrangementen voor retreats en trainingen. **Is overnachten mogelijk?** Sommige locaties bieden overnachtingsmogelijkheden. Filter hierop bij het zoeken of via de API met `?overnight=true`. **Hoe werkt betalen?** Betaling gaat veilig via Stripe. Je ontvangt direct een bevestiging. **Heeft Holdspace een API?** Ja! Zie onze OpenAPI spec op https://holdspace.guru/openapi.json. AI agents kunnen ruimtes zoeken en boekingen aanmaken.