En esta página
Elegir la interfaz según la tarea
| Necesidad | Interfaz | Dirección |
|---|---|---|
| Avisar a un equipo o destino de paging | Conectores de alertas | de salida |
| Verificar un evento de incidente en tu endpoint | Webhook firmado | de salida |
| Leer datos de monitores e incidentes | API REST y OpenAPI | REST de solo lectura |
| Dejar leer y actuar a un agente autorizado | MCP | lecturas y escrituras con scope |
| Mantener el estado visible para operadores | Wallboard web y apps de Apple | superficies del producto |
Todas las interfaces de esta página existen hoy.
Enviar incidentes a los canales que ya usas
| Canal | Detalle | Plan |
|---|---|---|
| Push | app nativa de iOS y Apple Watch | todos los planes |
| paso de escalado en una política de guardia | desde Sentinel | |
| Aviso SMS personal | incidente crítico, opt-in por persona, cuota mensual | desde Pulse |
| SMS de guardia | paso de escalado, a números verificados | desde Sentinel |
| Llamada telefónica | último paso de escalado, máximo 2 por incidente | desde Sentinel |
| Webhooks firmados | HMAC en x-perstat-signature, rotación de secreto, envío de prueba | todos los planes |
| Slack, Teams, Discord, Google Chat | apertura y recuperación del incidente, vía incoming webhook | todos los planes |
| PagerDuty, Opsgenie | incidente reenviado a su API de eventos | todos los planes |
| Suscriptores de la página de estado | correo con doble opt-in a tus clientes, apertura y recuperación | desde Sentinel |
Los conectores funcionan solo de salida: Perstat envía los eventos de apertura y recuperación del incidente. Confirma y resuelve en Perstat o mediante una acción MCP autorizada.
El escalado continúa hasta que alguien confirma: push, luego SMS y luego una llamada, con los tiempos configurados en cada cuadrante. Confirmar es hacerse cargo, y el resto de dispositivos se silencia. Un número de teléfono solo recibe avisos después de verificarse con un código de un solo uso.
Verificar un webhook firmado en tu endpoint
Los destinos webhook se disparan cuando se abre un incidente y cuando se resuelve. Cada entrega
lleva el user agent perstat-webhook/1.0 y una firma HMAC en x-perstat-signature, así que tu
receptor puede verificar su origen.
La firma es sha256= seguido de 64 caracteres hexadecimales en minúscula, calculada como
HMAC-SHA256 sobre el cuerpo en bruto. El secreto se muestra una sola vez al crearlo y se rota
desde el producto. El envío de prueba viene integrado.
Los destinos de webhook se validan contra la misma lista de bloqueo SSRF que usan las sondas. Se bloquean los destinos privados, link-local, ULA y de metadatos, y las redirecciones se vuelven a comprobar. Es contención, no una garantía de ser “SSRF-safe”.
Leer mediante REST y el contrato OpenAPI público
Las claves de API de organización con scope leen hoy 7 endpoints REST:
- Lista de monitores
- Detalle de un monitor
- Checks
- Series temporales
- Incidentes de un monitor
- Incidentes de la organización
- Detalle de un incidente
Las claves se pueden restringir además a proyectos o a monitores concretos. El contrato OpenAPI
público en
api.perstat.io/openapi.json documenta el
contrato público, no todas las operaciones internas.
La automatización de escritura corresponde a MCP, que usa otro modelo de autorización.
Dejar actuar a un agente autorizado mediante MCP
Perstat habla el Model Context Protocol en https://api.perstat.io/mcp. El endpoint usa
Streamable HTTP sin estado. Dentro de los scopes que ofrece su clave, un agente lee el estado de
tu organización, confirma o resuelve incidentes y gestiona el ciclo de vida de los monitores.
Un agente se autentica con una clave de API de organización con scope o, en clientes compatibles, mediante el flujo OAuth Authorization Code con PKCE. Cada escritura se atribuye a la identidad humana de la credencial: quien creó la clave de API o el sujeto OAuth. Perstat comprueba en cada escritura la pertenencia y el rol actuales de esa identidad.
El catálogo de herramientas cambia con el tiempo, así que el número exacto figura en la documentación MCP fechada.
Conecta Claude Code con una clave bearer:
claude mcp add --transport http perstat https://api.perstat.io/mcp \
--header "Authorization: Bearer pst_…"
Cualquier cliente MCP que hable Streamable HTTP se conecta igual, con la cabecera bearer o con el flujo OAuth publicado. Eso incluye Codex, los conectores de ChatGPT y tu propio agente. Si usas Claude Code, también puedes instalar el plugin de Perstat, que inicia sesión por el navegador y añade skills para incidentes y monitores.
Una pipeline no necesita agente. Un solo tools/call desde el job de despliegue registra el
monitor, y el paso falla ante cualquier error, salvo si el monitor ya existe:
curl -sS --fail-with-body https://api.perstat.io/mcp \
-H "Authorization: Bearer $PERSTAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
"name":"create_monitor","arguments":{"project_id":"prj_…",
"name":"Order API","type":"http",
"config":{"url":"https://orders.example.com/health"}}}}'
Una segunda ejecución se rechaza como repetición exacta, y el paso sigue en verde. Cuando cambia
la ruta de health, update_monitor modifica el monitor existente.
La herramienta create_monitor necesita una clave válida para toda la organización. Una clave
restringida a proyectos o monitores solo lee y actúa sobre sus propios recursos.
Mantener visible el estado en directo
La app web incluye un wallboard en directo a pantalla completa. Las apps nativas cubren iPhone, iPad y Apple Watch.
Los incidentes abiertos pueden aparecer como Live Activity en la pantalla de bloqueo y en la Dynamic Island. La app de Apple Watch puede confirmar un incidente, asumir la guardia y activar o pausar un monitor.


Los SMS desde Pulse y las llamadas de guardia desde Sentinel funcionan sin un dispositivo Apple. Hoy no hay app nativa para Android.
Publicar interfaces de estado
- Página de estado. Los modos borrador y público existen en todos los planes. Desde Sentinel, la página funciona en tu propio dominio (verificado por CNAME, con TLS gestionado) y admite acceso con contraseña y cuentas viewer.
- Badge SLA. Tu página de estado sirve un badge SVG, con fragmentos de Markdown y HTML listos para copiar.
- RSS. Cada página de estado tiene su propio feed.
Límites
- Chat. Slack, Microsoft Teams, Discord y Google Chat reciben los incidentes a través de un incoming webhook. No hay app nativa de Perstat ni acciones interactivas en estas herramientas, así que no puedes confirmar ni resolver desde ellas.
- Herramientas de paging. PagerDuty y Opsgenie son un destino para incidentes reenviados, no una vía alternativa. Perstat está hecho para ser la propia capa de avisos, no para alimentar otra. La comparativa con Opsgenie describe lo que implica ese cambio.
- Escrituras MCP. Un agente puede archivar un monitor y restaurarlo después, pero no puede borrarlo. Las páginas de estado, los conectores y las claves de API quedan fuera del límite de escritura de MCP, igual que los miembros y los cambios de plan.
- Zapier. No hay integración con Zapier.
- Terraform. No hay provider de Terraform ni flujo declarativo de monitores como código. Las claves REST leen 7 endpoints ( referencia), y hoy no se evalúan scopes REST de escritura. MCP es una interfaz para agentes, no una pipeline declarativa.
Lee la referencia REST, consulta MCP para agentes o empieza gratis y configura tu primer conector. Si uno de los límites declarados es decisivo, escribe a hello@perstat.io y recibirás una respuesta concreta.