Aller au contenu principal

    Reserve un espacio de empresa por API

    Una API pensada para agentes: tres llamadas bastan para pasar de una frase en lenguaje natural a solicitudes enviadas a los espacios. Servidor MCP incluido, webhooks firmados, especificación OpenAPI 3.1.

    Su clave API

    ¿Se puede reservar un espacio para un evento de empresa mediante una API?

    Sí. La API de BookAfterwork expone todo el recorrido: análisis del brief, recomendación de espacios con puntuación determinista, envío de solicitudes, recepción y comparación de presupuestos, confirmación. Autenticación por clave Bearer, idempotencia, webhooks firmados y servidor MCP para agentes de IA. Gratis para la empresa, sin suscripción.

    • 3 llamadas para un brief completo
    • Servidor MCP en 2 clics
    • Webhooks firmados HMAC
    • OpenAPI 3.1

    Inicio rápido

    Envíe la cabecera Authorization: Bearer (o x-api-key) con una clave bak_test_ o bak_live_.

    # 1. Analizar el brief
    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. Recomendar espacios
    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. Enviar las solicitudes
    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>"]}'

    Principales endpoints

    POST
    /api/v1/ai/parse-requestConvierte una frase en un brief estructurado (ciudad, fecha, participantes, presupuesto).
    GET
    /api/v1/venues/searchBúsqueda filtrada de espacios: ciudad, capacidad, equipamiento, ambiente.
    POST
    /api/v1/ai/recommendClasificación de espacios con puntuación explicada (ubicación, capacidad, presupuesto, disponibilidad, reactividad).
    POST
    /api/v1/requestsCrea una solicitud de evento.
    POST
    /api/v1/requests/{id}/dispatchEnvía la solicitud a los espacios elegidos.
    GET
    /api/v1/requests/{id}/quotesRecupera los presupuestos recibidos.
    POST
    /api/v1/ai/compare-quotesCompara los presupuestos (total, precio/pers., mejor relación calidad-precio).
    POST
    /api/v1/bookingsConfirma la reserva.

    Servidor MCP en dos clics

    Añada la URL siguiente en su cliente compatible con MCP, autorice el acceso mediante OAuth 2.1 y su agente dispondrá de cuatro herramientas: búsqueda de espacios, lista de ciudades, creación de una solicitud de evento y seguimiento de solicitudes.

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

    Detalle de herramientas, esquemas y configuración: guía del servidor MCP de eventos.

    Ejemplo: comando Slack en 20 líneas

    Sus equipos escriben una frase en Slack y la API devuelve tres espacios disponibles con precio por persona.

    // Comando Slack: /afterwork 35 pers. Lyon 12 de marzo 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"),
      });
    }

    Paso a paso completo: integración Slack para eventos.

    Cuotas y seguridad

    Claves con hash SHA-256, scopes por clave, caducidad y revocación, cuotas por clave y por IP, registro de uso completo, protección antibots en las rutas públicas.

    Idempotencia

    Cabecera Idempotency-Key en todas las escrituras: una repetición devuelve la respuesta original, sin solicitudes ni reservas duplicadas.

    Webhooks

    Firma HMAC SHA-256, reintentos a los 1, 5, 30, 120 y 720 minutos, historial de entregas consultable.

    Preguntas frecuentes

    ¿Cómo obtener una clave API de BookAfterwork?

    Cree una cuenta gratuita y genere su clave de prueba (bak_test_) con un clic desde esta página: se activa al instante. La clave de producción (bak_live_) se entrega tras validar su caso de uso a través de la página de contacto. Las claves se almacenan con hash SHA-256 y pueden revocarse o rotarse en cualquier momento.

    ¿Puede un agente de IA reservar de principio a fin?

    Sí. Todo el recorrido está expuesto: análisis del brief en lenguaje natural, recomendación de espacios con puntuación determinista, envío de solicitudes, recepción de presupuestos, comparación y confirmación de la reserva. La IA solo sirve para entender la solicitud: precios, capacidades y disponibilidad provienen siempre de la base de datos y de los propios espacios.

    ¿La API es compatible con MCP?

    Sí. El servidor MCP está declarado en /.well-known/mcp.json con OAuth 2.1 y expone cuatro herramientas: búsqueda de espacios, lista de ciudades, creación de una solicitud de evento y seguimiento de sus solicitudes. Se conecta en dos clics a un cliente compatible (Claude, ChatGPT, agentes internos).

    ¿Cómo se gestionan la idempotencia y los webhooks?

    Cada escritura acepta una cabecera Idempotency-Key: una repetición devuelve la primera respuesta. Los webhooks están firmados (HMAC SHA-256) y se reintentan a los 1, 5, 30, 120 y luego 720 minutos.