Saltar al contenido principal

SDK JavaScript / TypeScript

StatusInspector ofrece un SDK oficial para Node.js y TypeScript que simplifica la autenticación, el manejo de errores y el consumo de los endpoints principales de la API v1.

El SDK está actualmente en fase beta (v0.1.0). La publicación del paquete en npm está pendiente.


Instalación​

Una vez publicado el paquete en npm:

npm install @statusinspector/api-client
# o
yarn add @statusinspector/api-client

Inicialización​

import { StatusInspectorClient } from '@statusinspector/api-client';

const client = new StatusInspectorClient({
apiToken: 'tu-bearer-token',
baseUrl: 'https://back.statusinspector.com/api/v1',
});

El token se genera desde Cuenta → API → Tokens en el panel. Ver Autenticación de la API.


Recursos disponibles​

Monitores​

// Listar monitores
const { data, pagination } = await client.monitors.list({ status: 'down' });

// Obtener un monitor
const monitor = await client.monitors.get('42');

// Crear un monitor
const nuevo = await client.monitors.create({
name: 'API de producción',
monitor_type: 'http',
target: 'https://api.ejemplo.com/health',
interval_sec: 60,
timeout_ms: 5000,
});

// Actualizar (parcial)
await client.monitors.update('42', { is_paused: true });

// Eliminar
await client.monitors.delete('42');

Checks (historial)​

// Últimos checks de un monitor
const { data } = await client.checks.listByMonitor('42', {
status: 'down',
from: '2026-05-01T00:00:00Z',
per_page: 50,
});

Incidentes​

// Listar incidentes
const { data } = await client.incidents.list({
monitor_id: 42,
resolved: false,
});

// Obtener un incidente
const incident = await client.incidents.get('1234');

Páginas de estado​

// Listar páginas de estado
const { data } = await client.statusPages.list();

// Obtener una página
const page = await client.statusPages.get('5');

Manejo de errores​

El SDK lanza StatusInspectorApiError en caso de error HTTP o de red:

import { StatusInspectorApiError } from '@statusinspector/api-client';

try {
const monitor = await client.monitors.get('999');
} catch (err) {
if (err instanceof StatusInspectorApiError) {
console.error(err.code); // 'not_found'
console.error(err.message); // 'Monitor no encontrado.'
console.error(err.httpStatus); // 404
console.error(err.requestId); // 'abc123'
console.error(err.rateLimit); // { limit, remaining, reset, retry_after }
}
}

Información de rate limit​

Todas las respuestas incluyen metadatos de rate limit accesibles en el resultado:

const result = await client.monitors.list();
console.log(result.meta.rate_limit);
// { limit: 120, remaining: 117, reset: 1747180860, retry_after: null }

Ver los límites por plan en Planes y límites.


Próximos pasos​

  • Publicar el paquete en npm como versión 0.1.0 (beta) o 1.0.0 (estable)
  • Completar el tipado de atributos por recurso
  • Añadir pipeline de publicación y verificación

Para consumir la API directamente con curl u otro cliente HTTP, consulta Referencia de endpoints.