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

  1. Un administrador de la empresa, con segundo factor activo, entra a la pestaña API y crea un token.
  2. Elige los permisos: Solo lectura o Lectura y escritura (o permisos sueltos) y la vigencia.
  3. 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 cabecera X-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 en errors.
  • 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: solo http; Básico y Profesional: también tcp, ping y certificate).
  • already_paused, not_paused, paused_by_plan (409): estado de pausa.
  • rate_limited (429): espera lo que indica Retry-After.
  • service_unavailable (503): reintenta en un minuto.

Ingresar · Crear cuenta