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.