Aller au contenu principal

    Boek een bedrijfslocatie via API

    Een API gemaakt voor agents: drie aanroepen volstaan om van een zin in natuurlijke taal naar aanvragen bij locaties te gaan. Inclusief MCP-server, ondertekende webhooks en OpenAPI 3.1-specificatie.

    Uw API-sleutel

    Kun je een locatie voor een bedrijfsevent boeken via een API?

    Ja. De BookAfterwork-API biedt het volledige traject: briefinganalyse, locatieaanbevelingen met deterministische score, aanvragen versturen, offertes ontvangen en vergelijken, bevestiging. Bearer-sleutel, idempotentie, ondertekende webhooks en MCP-server voor AI-agents. Gratis voor bedrijven, zonder abonnement.

    • 3 aanroepen voor een volledige briefing
    • MCP-server in 2 klikken
    • HMAC-ondertekende webhooks
    • OpenAPI 3.1

    Snel aan de slag

    Stuur de header Authorization: Bearer (of x-api-key) mee met een sleutel bak_test_ of bak_live_.

    # 1. Briefing analyseren
    curl -X POST https://bookafterwork.com/api/v1/ai/parse-request \
      -H "Authorization: Bearer $BAK_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"text":"Afterwork 35 personnes à Lyon le 12 mars, 40€ par personne"}'
    
    # 2. Locaties aanbevelen
    curl -X POST https://bookafterwork.com/api/v1/ai/recommend \
      -H "Authorization: Bearer $BAK_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"requestId":"<id>","limit":6}'
    
    # 3. Aanvragen versturen
    curl -X POST https://bookafterwork.com/api/v1/requests/<id>/dispatch \
      -H "Authorization: Bearer $BAK_API_KEY" \
      -H "Idempotency-Key: dispatch-<id>-1" \
      -H "Content-Type: application/json" \
      -d '{"venueIds":["<venue-1>","<venue-2>"]}'

    Belangrijkste endpoints

    POST
    /api/v1/ai/parse-requestZet een zin om in een gestructureerde briefing (stad, datum, deelnemers, budget).
    GET
    /api/v1/venues/searchGefilterd zoeken naar locaties: stad, capaciteit, voorzieningen, sfeer.
    POST
    /api/v1/ai/recommendRangschikking van locaties met toegelichte score (plaats, capaciteit, budget, beschikbaarheid, reactiesnelheid).
    POST
    /api/v1/requestsMaakt een eventaanvraag aan.
    POST
    /api/v1/requests/{id}/dispatchStuurt de aanvraag naar de gekozen locaties.
    GET
    /api/v1/requests/{id}/quotesHaalt de ontvangen offertes op.
    POST
    /api/v1/ai/compare-quotesVergelijkt offertes (totaal, prijs p.p., beste prijs-kwaliteit).
    POST
    /api/v1/bookingsBevestigt de boeking.

    MCP-server in twee klikken

    Voeg de onderstaande URL toe aan uw MCP-compatibele client, geef toegang via OAuth 2.1 en uw agent krijgt vier tools: locaties zoeken, stedenlijst, eventaanvraag aanmaken en aanvragen volgen.

    https://bookafterwork.com/.well-known/mcp.json

    Details over tools, schema's en configuratie: gids voor de event-MCP-server.

    Voorbeeld: Slack-commando in 20 regels

    Uw teams typen een zin in Slack, de API geeft drie beschikbare locaties met prijs per persoon terug.

    // Slack-commando: /afterwork 35 pers. Lyon 12 maart €40
    export default async function handler(req, res) {
      const brief = await fetch("https://bookafterwork.com/api/v1/ai/parse-request", {
        method: "POST",
        headers: {
          Authorization: `Bearer ${process.env.BAK_API_KEY}`,
          "Content-Type": "application/json",
        },
        body: JSON.stringify({ text: req.body.text }),
      }).then((r) => r.json());
    
      const reco = await fetch("https://bookafterwork.com/api/v1/ai/recommend", {
        method: "POST",
        headers: {
          Authorization: `Bearer ${process.env.BAK_API_KEY}`,
          "Content-Type": "application/json",
        },
        body: JSON.stringify({ requestId: brief.requestId, limit: 3 }),
      }).then((r) => r.json());
    
      res.json({
        response_type: "in_channel",
        text: reco.recommendations
          .map((v) => `${v.name} — ${v.capacity} pers. — ${v.price_per_person}€/pers`)
          .join("\n"),
      });
    }

    Volledige stap-voor-stap: Slack-integratie voor events.

    Quota & beveiliging

    SHA-256-gehashte sleutels, scopes per sleutel, vervaldatum en intrekking, quota per sleutel en per IP, volledig gebruikslog, anti-botbescherming op publieke routes.

    Idempotentie

    Header Idempotency-Key op alle schrijfacties: een herhaling geeft het oorspronkelijke antwoord terug, zonder dubbele aanvraag of boeking.

    Webhooks

    HMAC SHA-256-handtekening, nieuwe pogingen na 1, 5, 30, 120 en 720 minuten, raadpleegbare leveringsgeschiedenis.

    Veelgestelde vragen

    Hoe krijg ik een BookAfterwork-API-sleutel?

    Maak een gratis account aan en genereer met één klik op deze pagina uw testsleutel (bak_test_) — die is meteen actief. De productiesleutel (bak_live_) wordt uitgegeven na validatie van uw use case via de contactpagina. Sleutels worden SHA-256-gehasht opgeslagen en kunnen altijd worden ingetrokken of geroteerd.

    Kan een AI-agent van begin tot eind boeken?

    Ja. Het volledige traject is beschikbaar: analyse van de briefing in natuurlijke taal, locatieaanbevelingen met deterministische score, aanvragen versturen, offertes ontvangen, vergelijken en de boeking bevestigen. AI dient alleen om de aanvraag te begrijpen: prijzen, capaciteiten en beschikbaarheid komen altijd uit de database en van de locaties zelf.

    Is de API MCP-compatibel?

    Ja. De MCP-server is gedeclareerd op /.well-known/mcp.json met OAuth 2.1 en biedt vier tools: locaties zoeken, stedenlijst, eventaanvraag aanmaken en uw aanvragen volgen. Hij is in twee klikken te koppelen aan een compatibele client (Claude, ChatGPT, interne agents).

    Hoe worden idempotentie en webhooks afgehandeld?

    Elke schrijfactie accepteert een Idempotency-Key-header: een herhaling geeft het eerste antwoord terug. Webhooks zijn ondertekend (HMAC SHA-256) en worden opnieuw verstuurd na 1, 5, 30, 120 en daarna 720 minuten.