API de Webhook Interceptor
Captura de webhooks, Pipe Studio (flows, versiones, ejecutar), gestión de endpoints, privacidad, enlaces compartidos y límites por plan.
Las rutas protegidas aceptan tu sesión en el navegador o una clave API desde Cuenta: Authorization: Bearer <evp_…> o X-Api-Key.
Producto
Pipe Studio y Event Pipe
Un flow es un handler versionado asociado a tu endpoint de webhook. Defines disparadores, publicas TypeScript (y opcionalmente un pipe declarativo en JSON), versiones inmutables y ejecuciones de prueba sobre el grafo publicado—lo mismo que el panel, vía API.
- Lista y crea flows por endpoint; cada flow tiene historial de versiones lineal.
- Publica bundles con `settings.pipe` validado (v3) y artefactos de código; los webhooks de producción invocan la versión activa del flow habilitado.
- Execute simula la versión publicada con un cuerpo JSON—útil antes y después del deploy.
Aplican límites por plan: flows por endpoint, timeout de ejecución, cajas code y pasos HTTP—ver Precios. El acceso programático usa la misma auth que el dashboard (cookie o clave API).
Empieza aquí
Inicio rápido en 60 segundos
Tres pasos para ver tu primer evento en el inspector. Los enlaces usan tu origen actual: http://localhost:3000.
Todas las URLs de captura y fragmentos de esta página usan el ID de ejemplo … (único en cada visita) para no chocar con tus endpoints reales.
Envía un webhook de prueba
Haz POST con JSON a la URL de captura usando el ID de ejemplo …. Solo sirve para esta documentación; en producción usa tu propio ID.
Abre el inspector
Revisa cabeceras, cuerpo y línea de tiempo en vivo. El enlace de demo usa el mismo ID de ejemplo ….
Generando un ID de ejemplo único…
/api/webhook/{id}Capturar webhook
Captura cualquier petición entrante para inspeccionar el payload.
Auth: No requerida. Endpoints privados exigen x-webhook-key.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true, "webhookId": "uuid" }/api/webhook/{id}?_dashboard=1Lectura dashboard
Devuelve el historial del endpoint para UI/dashboard.
Auth: Sesión o clave API en endpoints privados (propietario o colaborador aprobado).
Petición
Generando un ID de ejemplo único…
Respuesta
{ "endpoint": {...}, "events": [...] }/api/webhook/registerRegistrar endpoint (auth)
Registra un ID de webhook para un usuario autenticado.
Auth: Cookie de sesión o clave API (Bearer / X-Api-Key). Respeta límites del plan y ownership.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true }/api/webhook/register-guestRegistrar endpoint (invitado)
Registra un endpoint en modo invitado y emite guest_id firmado.
Auth: No requerida. Límites free vía cookie firmada.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true }/api/accountResumen de cuenta
Resumen de plan, política y uso (endpoints + solicitudes mensuales).
Auth: Opcional. Sesión, clave API o sin auth (contexto invitado/free).
Petición
Generando un ID de ejemplo único…
Respuesta
{ "tier": "FREE", "policy": {...} }/api/account/endpointsListar endpoints propios
Lista endpoints del propietario con privacidad y metadatos.
Auth: Sesión o clave API.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "endpoints": [...] }/api/account/endpoints/{id}docsApi.endpoints.delete-endpoint.title
docsApi.endpoints.delete-endpoint.description
Auth: docsApi.endpoints.delete-endpoint.auth
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true }/api/account/endpoints/{id}/privacyAlternar privacidad
Activa o desactiva endpoint privado y devuelve accessKey cuando aplica.
Auth: Sesión o clave API. Endpoints privados desde plan STARTER.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true, "isPrivate": true, "accessKey": "hex" }/api/account/endpoints/{id}/accessListar/revocar acceso
Lista colaboradores con acceso y revoca por userId.
Auth: Sesión o clave API. Solo propietario.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true }/api/account/access-requestsBandeja de solicitudes
Solicitudes de acceso pendientes a tus endpoints.
Auth: Sesión o clave API.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "requests": [...] }/api/account/access-requests/{requestId}Aprobar/rechazar solicitud
Aprueba o rechaza una solicitud de acceso (approve | reject).
Auth: Sesión o clave API. Solo propietario del endpoint.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true }/api/account/flowsListar flows
Devuelve los flows del usuario autenticado, opcionalmente filtrados por endpointId.
Auth: Sesión o clave API.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "flows": [ { "id", "endpoint_id", "name", "status", "current_version_id" } ] }/api/account/flowsCrear flow
Crea un flow en un endpoint tuyo; genera versión inicial si tiene éxito.
Auth: Sesión o clave API. El plan debe permitir automatización (ver límites).
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true, "flowId": "uuid", "version": 1 }/api/account/flows/{flowId}Obtener flow y versiones
Devuelve la fila del flow y todas las versiones (incluye settings.pipe si existe).
Auth: Sesión o clave API. Solo propietario.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "flow": {...}, "versions": [ { "version", "settings", "build_status" } ] }/api/account/flows/{flowId}/versionsPublicar versión del flow
Crea una nueva versión con bundleCode y settings (pipe validado en servidor).
Auth: Sesión o clave API. Solo propietario.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true, "version": { "version": 2 } }/api/account/flows/{flowId}/executeEjecutar flow (prueba)
Ejecuta la versión publicada con un cuerpo sintético—mismo runtime que producción, acotado a tu cuenta.
Auth: Sesión o clave API. Solo propietario.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true, "result": { "status", "output", "logs", "durationMs" } }Errores estándar
| Código | Cuándo ocurre | Ejemplo |
|---|---|---|
| 400 | Cuerpo inválido o falta un campo obligatorio | { "error": "webhookId is required" } |
| 401 | Usuario no autenticado en rutas protegidas | { "error": "Unauthorized" } |
| 402 | Límite del plan o función no disponible | { "error": "Private endpoints are available from STARTER tier" } |
| 403 | Sin permiso sobre el recurso del propietario | { "error": "Forbidden" } |
| 404 | Recurso no encontrado | { "error": "Endpoint not found" } |
| 409 | Conflicto de ownership o ID de webhook en uso | { "error": "This webhook ID is already owned by another user" } |
| 410 | Enlace compartido caducado | { "error": "Share link expired" } |
Fragmentos de integración
Usa el mismo ID de ejemplo que el inicio rápido: ….
Generando un ID de ejemplo único…