API Documentation
Complete reference for the Helio REST API. All endpoints require an API key via the x-api-key header unless noted.
Base URL
https://app.tenzanlogic.com/api/v1Authentication
Include your API key in every request header:
x-api-key: hel_live_...Keys are managed via the dashboard.
Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /inspect | Analyze a single thermal image |
| POST | /jobs | Create a batch inspection job |
| GET | /jobs/{id} | Get job status and results |
| POST | /jobs/{id}/start | Start batch processing |
| GET | /jobs/{id}/report | Download inspection report |
| GET | /usage | Get current billing period usage |
| GET | /health | Service health check (no auth) |
Rate Limits
| Tier | Rate | Price |
|---|---|---|
| Helio Scan (fast) | 120 req/min | €10/MW |
| Helio Inspect (standard) | 60 req/min | €12/MW |
| Helio Deep (pro) | 30 req/min | €15/MW |
When rate-limited, the response includes X-RateLimit-Remaining, X-RateLimit-Reset, and Retry-After headers.
Defect Types
Helio classifies findings into 9 defect types aligned with IEC 62446-3.
| Type | Pattern | Description |
|---|---|---|
| single_cell_hotspot | Point | Single cell elevated temperature |
| multi_cell_hotspot | Area | Multiple cells with elevated temperature |
| substring_failure | Extended | 1/3 of module heated (bypass diode activated) |
| bypass_diode | Component | Bypass diode short-circuit or failure |
| module_offline | Full module | Module cold relative to neighbors |
| junction_box | Point | Elevated temperature at connector |
| pid | Edge pattern | Potential-induced degradation |
| soiling | Surface | Uniform temperature reduction from dirt/debris |
| string_anomaly | Multi-module | Multiple modules showing uniform deviation |
Severity Levels
Four severity levels map to IEC 62446-3 Corrective Action (CoA) recommendations.
| Level | ΔT Range | CoA | Action |
|---|---|---|---|
| ok | < 5K | — | No action |
| watch | 5–10K | CoA 1 | Monitor at next inspection |
| warn | 10–20K | CoA 2 | Schedule investigation |
| crit | ≥ 20K | CoA 3 | Immediate action |
Example Request
POST /inspect
curl -X POST https://app.tenzanlogic.com/api/v1/inspect \
-H "x-api-key: hel_live_..." \
-H "Content-Type: application/json" \
-d '{"image_url": "https://example.com/thermal.jpg"}'Example Response
{
"panels": [
{
"panel_index": 0,
"defect_type": "single_cell_hotspot",
"severity": "crit",
"confidence": 0.94,
"delta_t": 22.1,
"bbox": [120, 50, 280, 180],
"reasoning": "Single-cell hot spot detected. ΔT 22.1K above reference...",
"coa_level": 3
}
],
"summary": { "total": 6, "ok": 3, "watch": 1, "warn": 1, "crit": 1 },
"overall_health": "3 of 6 panels require attention"
}Python SDK
Python SDK for the Helio API. Available on request — contact us for early access.
from helio import HelioClient
client = HelioClient(api_key="hel_live_...")
result = client.inspect("https://example.com/thermal.jpg")
print(f"Found {result.summary['total']} panels")
print(f" OK: {result.summary['ok']}")
print(f" WATCH: {result.summary['watch']}")
print(f" WARN: {result.summary['warn']}")
print(f" CRIT: {result.summary['crit']}")Error Codes
All errors follow a standard JSON format:
{
"error": "Rate limit exceeded",
"code": "rate_limited"
}| Status | Code | Description |
|---|---|---|
| 401 | missing_key / invalid_key | Missing or invalid API key |
| 400 | validation_error | Validation error |
| 429 | rate_limited | Rate limit exceeded |
| 502 | inference_error | Inference failed |
| 500 | server_error | Server error |
Ready to get started?
Create an account and get your API key in minutes.
Get your API key