API para desarrolladores
Con la API, tus sistemas (o tu panel de hosting) crean y consultan monitores, incidentes e informes de disponibilidad sin entrar al portal. Está en la misma dirección del portal, bajo /api/v1. La especificación completa (OpenAPI 3.1) está en /api/v1/openapi.json.
Token
- Un administrador de la empresa, con segundo factor activo, entra a la pestaña API y crea un token.
- Elige los permisos: Solo lectura o Lectura y escritura (o permisos sueltos) y la vigencia.
- Copia el token: se muestra una sola vez. Guárdalo como un secreto (gestor de claves, variable de entorno), nunca en el código.
Envía el token en cada petición:
Authorization: Bearer tdx_...
El token pertenece a la empresa, no a una persona. Si se filtra o ya no se usa, revócalo en la misma pestaña.
Permisos
monitors:read: listar y ver monitores y su estado.monitors:write: crear, editar, pausar y reanudar monitores.incidents:read: incidentes de los últimos 1 a 90 días.reports:read: informe mensual de disponibilidad.providers:read/providers:write(planes Profesional y Agencia): SLA de proveedores, su reporte mensual de incumplimiento con el crédito que corresponde y la evidencia en PDF o CSV (GET /api/v1/providers/{id}/reports/{AAAA-MM}y/evidence.pdf; la huella SHA-256 va en la cabeceraX-Content-SHA256).
Ejemplos
Listar los monitores:
curl -H "Authorization: Bearer $TOKEN" https://<portal>/api/v1/monitors
Crear un monitor de sitio web (con Idempotency-Key, un reintento no crea otro):
curl -X POST https://<portal>/api/v1/monitors \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-H "Idempotency-Key: pedido-1234" \
-d '{"name": "Tienda", "type": "http", "url": "https://www.tuempresa.com/", "expected_text": "Bienvenido", "interval": "5m"}'
Tipos: http (url, expected_text), tcp (host, port), ping (host) y certificate (host, port, warn_days). Los intervalos y la cantidad de monitores dependen de tu plan. Solo se aceptan destinos públicos.
Pausar y reanudar: POST /api/v1/monitors/{id}/pause y /resume. Nada se borra: un monitor pausado deja de medirse y de avisar, y se puede reanudar.
Informe del mes: GET /api/v1/reports/2026-09 (mismas cifras que el informe del portal; hora de Chile).
Estados de un monitor
up funciona · down en falla · degraded falló el último chequeo · starting esperando la primera medición · unmeasurable no se puede medir desde internet · no_checks sin verificaciones · paused pausado (paused_reason: user o plan).
Límites de uso
Por token y por minuto: Gratis 60, Básico 120, Profesional 300 peticiones; las escrituras, 10 por minuto. Cada respuesta trae RateLimit-Limit, RateLimit-Remaining y RateLimit-Reset; al pasarte recibes 429 con Retry-After.
Errores
Los errores vienen en JSON (RFC 9457) con un code estable y un detail en tu idioma (Accept-Language: es, en o pt). Códigos principales:
invalid_token(401): falta el token, no existe, venció o fue revocado.insufficient_scope(403): el token no tiene el permiso.managed_account(403): en una cuenta gestionada por TECDEX los monitores solo se leen.not_found(404): no existe o no es de tu empresa.validation_failed(422): datos inválidos; el detalle va enerrors.invalid_month(422): el mes debe ser AAAA-MM y no futuro.plan_limit(409): llegaste al máximo de monitores de tu plan.plan_type_not_included(403): tu plan no incluye ese tipo de monitor (Gratis: solohttp; Básico y Profesional: tambiéntcp,pingycertificate).already_paused,not_paused,paused_by_plan(409): estado de pausa.rate_limited(429): espera lo que indicaRetry-After.service_unavailable(503): reintenta en un minuto.