Automate thermographic inspections from your own stack
A full REST API to create clients, equipment, and inspection reports programmatically. Available on Team and Enterprise plans.
What the API does
Mirrors the same resources as the web app — clients, sites, sectors, equipment, inspections, and measurement points — with a stable JSON contract versioned at `/api/v1`. Ideal for syncing a CRM, automating periodic report creation, or feeding an internal dashboard with thermography data.
Full CRUD
GET/POST/PUT/DELETE on every core domain resource.
JSON responses
Predictable payloads with UUIDs, ISO-8601 timestamps, and explicit nullable fields.
Simple pagination
`?limit=` and `?offset=` on list endpoints; up to 200 items per page.
Tenant isolation
The key resolves partner_id for you — you only see your organization's data.
Authentication
Every request requires an `X-API-Key` header. Keys start with `trml_` and are shown in plaintext only at creation — after that only a preview remains. Lost the key? Revoke and create a new one.
- 1Open Settings → API in the app (visible to admins of Team+ organizations).
- 2Click "Create key", give it a descriptive name (e.g., "Production ERP"), and copy the returned value — it appears only once.
- 3Send on every request: `X-API-Key: trml_...`
Quickstart
List clients in your organization. Replace `trml_your_key_here` with the key created in the previous step.
curl -X GET "https://termal-api.thermalreports.com/api/v1/clients" \
-H "X-API-Key: trml_your_key_here" \
-H "Accept: application/json"Core endpoints
Resources are grouped by domain hierarchy (client → site → sector → equipment → inspection). The full reference, with every field and error code, lives in the Swagger UI.
Clients
/api/v1/clients/api/v1/clientsList clients in your org./api/v1/clientsCreate a client./api/v1/clients/{id}Update client./api/v1/clients/{id}Delete client.Sites & sectors
/api/v1/units, /api/v1/sectors/api/v1/unitsList sites for a client./api/v1/unitsCreate a site./api/v1/sectorsList sectors for a site./api/v1/sectorsCreate a sector.Equipment
/api/v1/equipments/api/v1/equipmentsList equipment in a sector./api/v1/equipmentsCreate equipment (TAG, description, criticality)./api/v1/equipments/{id}Delete equipment.Inspections
/api/v1/inspections/api/v1/inspectionsList inspections (filter by client/date range)./api/v1/inspectionsCreate a new inspection./api/v1/inspections/{id}Update inspection metadata./api/v1/inspections/{id}/pointsList measurement points./api/v1/inspections/{id}/pointsAdd a point (ΔT, IR image, recommendation).Organization & logs
/api/v1/partner, /api/v1/stats/api/v1/partnerYour organization details./api/v1/profilesList users (engineers/inspectors)./api/v1/statsDashboard counters./api/v1/access-logsAPI access history.Limits & quotas
The API is designed for daily integrations, not bulk ingestion.
- •10,000 requests per month, per key, on Team.
- •Enterprise: custom limit — talk to sales.
- •Monthly counter resets on day 1 of each month (UTC).
- •`429 Too Many Requests` when the quota is hit; `Retry-After` header tells you when it reopens.
Common error codes
200Success.201Created — returned on successful POSTs.400Invalid payload (missing required field, wrong type).401Key missing, invalid, or revoked.403Plan has no API access (Starter/Professional).404Resource not found or outside your tenant.429Monthly quota hit or short-term rate limit.500Internal error — please reach support if it persists.FAQ
Ready to integrate?
Subscribe to Team and generate your first key under Settings → API.