REST API

    Automatiza inspecciones termográficas desde tu propio stack

    API REST completa para crear clientes, equipos e informes de inspección de forma programática. Disponible en los planes Team y Enterprise.

    Incluido en los planes Team y Enterprise

    Qué hace la API

    Refleja los mismos recursos de la app web — clientes, sitios, sectores, equipos, inspecciones y puntos de medición — con un contrato JSON estable versionado en `/api/v1`. Ideal para sincronizar un CRM, automatizar la creación de informes periódicos o alimentar un dashboard interno con datos de termografía.

    CRUD completo

    GET/POST/PUT/DELETE para cada recurso principal del dominio.

    Respuesta JSON

    Payload predecible, con UUIDs, timestamps ISO-8601 y campos nullable explícitos.

    Paginación simple

    `?limit=` y `?offset=` en listados; hasta 200 elementos por página.

    Aislamiento por tenant

    La clave resuelve partner_id — solo ves los datos de tu organización.

    Autenticación

    Cada petición exige un encabezado `X-API-Key`. Las claves empiezan con `trml_` y solo se muestran en texto plano en el momento de crearlas — después solo queda un preview. Si la pierdes, revócala y crea otra.

    1. 1Abre Configuración → API en la app (visible para admins de organizaciones en Team o superior).
    2. 2Haz clic en "Crear clave", dale un nombre descriptivo (p. ej. "ERP producción") y copia el valor devuelto — aparece una sola vez.
    3. 3Envía en cada petición: `X-API-Key: trml_...`

    Inicio rápido

    Lista los clientes de tu organización. Reemplaza `trml_tu_clave_aqui` por la clave creada en el paso anterior.

    Ejemplo con cURL
    curl -X GET "https://termal-api.thermalreports.com/api/v1/clients" \
      -H "X-API-Key: trml_tu_clave_aqui" \
      -H "Accept: application/json"

    Endpoints principales

    Los recursos están agrupados por la jerarquía del dominio (cliente → sitio → sector → equipo → inspección). La referencia completa, con todos los campos y códigos de error, está en el Swagger.

    Clientes

    /api/v1/clients
    GET/api/v1/clientsLista clientes de tu organización.
    POST/api/v1/clientsCrea un cliente.
    PUT/api/v1/clients/{id}Actualiza cliente.
    DELETE/api/v1/clients/{id}Elimina cliente.

    Sitios y sectores

    /api/v1/units, /api/v1/sectors
    GET/api/v1/unitsLista sitios de un cliente.
    POST/api/v1/unitsCrea sitio.
    GET/api/v1/sectorsLista sectores de un sitio.
    POST/api/v1/sectorsCrea sector.

    Equipos

    /api/v1/equipments
    GET/api/v1/equipmentsLista equipos de un sector.
    POST/api/v1/equipmentsCrea equipo (TAG, descripción, criticidad).
    DELETE/api/v1/equipments/{id}Elimina equipo.

    Inspecciones

    /api/v1/inspections
    GET/api/v1/inspectionsLista inspecciones (filtra por cliente/período).
    POST/api/v1/inspectionsCrea una nueva inspección.
    PUT/api/v1/inspections/{id}Actualiza metadatos de la inspección.
    GET/api/v1/inspections/{id}/pointsLista puntos de medición.
    POST/api/v1/inspections/{id}/pointsAñade un punto (ΔT, imagen IR, recomendación).

    Organización y registros

    /api/v1/partner, /api/v1/stats
    GET/api/v1/partnerDatos de tu organización.
    GET/api/v1/profilesLista usuarios (ingenieros/inspectores).
    GET/api/v1/statsContadores del dashboard.
    GET/api/v1/access-logsHistorial de acceso a la API.

    Límites y cuotas

    La API está pensada para integraciones diarias, no para ingestión masiva.

    • •10.000 peticiones por mes, por clave, en Team.
    • •Enterprise: límite personalizado — habla con ventas.
    • •El contador mensual se reinicia el día 1 de cada mes (UTC).
    • •`429 Too Many Requests` cuando se alcanza la cuota; la cabecera `Retry-After` indica cuándo reabre.

    Códigos de error comunes

    200Éxito.
    201Creado — devuelto en POSTs exitosos.
    400Payload inválido (campo requerido ausente, tipo incorrecto).
    401Clave ausente, inválida o revocada.
    403Plan sin acceso a la API (Starter/Professional).
    404Recurso no encontrado o fuera de tu tenant.
    429Cuota mensual alcanzada o rate limit de corto plazo.
    500Error interno — contacta soporte si persiste.

    Preguntas frecuentes

    ¿Listo para integrar?

    Suscríbete a Team y genera tu primera clave en Configuración → API.