API de Webhook Interceptor
Captura de webhooks, Pipe Studio (pipelines, 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 eventpipe
Un pipeline 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 pipelines por endpoint; cada pipeline 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 pipeline habilitado.
- Execute simula la versión publicada con un cuerpo JSON—útil antes y después del deploy.
Aplican límites por plan: pipelines 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. Si «Exigir clave de webhook» está activo, envía x-webhook-key (o ?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 cuando el inspector está bloqueado (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}Eliminar endpoint
Elimina un endpoint propio y los datos asociados.
Auth: Sesión o clave API. Solo el propietario.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true }/api/account/endpoints/{id}/privacyActualizar privacidad del endpoint
Configura bloqueo del inspector y/o «Exigir clave de webhook». Envía inspectorPrivate y/o requireCaptureKey; devuelve accessKey si la clave de captura está activa.
Auth: Sesión o clave API. Starter+ para estas funciones.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true, "inspectorPrivate": true, "requireCaptureKey": true, "accessKey": "hex" }/api/account/endpoints/{id}/studio/shareInvitar colaborador al studio
Genera un enlace de invitación con rol (viewer o editor). No requiere inspector_private. Aplica el límite collaboratorsPerEndpoint del plan.
Auth: Sesión o clave API. Solo propietario. Starter+.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true, "inviteUrl": "https://.../share/token", "expiresAt": "..." }/api/account/endpoints/{id}/my-accessVer mi rol de acceso
Devuelve el rol del usuario autenticado en un endpoint (viewer, editor, o null si no tiene acceso).
Auth: Sesión o clave API.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "role": "viewer" | "editor" | null }/api/account/endpoints/{id}/accessListar / revocar colaboradores
GET devuelve colaboradores con rol, granted_via y granted_at. DELETE elimina un colaborador 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/pipelinesListar pipelines
Devuelve los pipelines del usuario autenticado (GET /api/account/pipelines), opcionalmente filtrados por endpointId.
Auth: Sesión o clave API.
Petición
Generando un ID de ejemplo único…
Respuesta
{ "pipelines": [ { "id", "endpoint_id", "name", "status", "current_version_id" } ] }/api/account/pipelinesCrear pipeline
Crea un pipeline en un endpoint tuyo; genera versión inicial si tiene éxito.
Auth: Sesión o clave API. El plan debe permitir automatización de pipelines (ver límites).
Petición
Generando un ID de ejemplo único…
Respuesta
{ "success": true, "pipelineId": "uuid", "version": 1 }/api/account/pipelines/{pipelineId}Obtener pipeline y versiones
Devuelve la fila del pipeline 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
{ "pipeline": {...}, "versions": [ { "version", "settings", "build_status" } ] }/api/account/pipelines/{pipelineId}/versionsPublicar versión del pipeline
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/pipelines/{pipelineId}/executeEjecutar pipeline (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…