TAICOS IoT
Diagnostic Console · for TAICOS accounts
SIGNED IN AS
🔑 sign in with your TAICOS account
➕ Create Partner
POST /api/admin/iot/partners
Creates a login account (role iot_partner) and issues its API key. The key is shown once — copy it and give it to the partner along with their username & password.
🧩 Partner Keys
Sign in as admin to load partners.
🧾 Generate Invoice
Rate is editable — it is not fixed in code
📄 Invoices
Sign in as admin, then Refresh.
📊 Usage · All Partners
Sign in as admin to load usage.
🔑 API Key
Sign in to load your key.
⚡ Live Diagnose Console
POST /api/iot/diagnose
~17s — full pipeline (RAG + AI + supplier/parts enrichment)
📊 Usage & Cost
Sign in to load your usage.
🎫 Fault Tickets & Repair History
Enter your API key and load your tickets.
👥 Team & Staff Directory
➕ Add a team member
Enter your API key and load your team.
📘 Integration Guide

Send sensor readings, get back a structured diagnosis — root cause, the part to replace, a local Philippine supplier who stocks it, and a repair procedure. Server-to-server; authenticate with the X-API-Key header.

Endpoint

POST https://repairbot.technobuilders.tech/api/iot/diagnose Header: X-API-Key: iot_live_... Header: Content-Type: application/json

Request

{ "device_type": "aircon", "sensors": { "compressor_current_a": 14.2, "suction_pressure_psi": 58, "discharge_pressure_psi": 410, "discharge_temp_c": 102 }, "notes": "short-cycling, weak cooling", "request_id": "your-own-id-for-safe-retries" }

curl

curl -X POST https://repairbot.technobuilders.tech/api/iot/diagnose \ -H "X-API-Key: iot_live_..." \ -H "Content-Type: application/json" \ -d '{"device_type":"aircon","sensors":{"compressor_current_a":14.2}}'

curl — with history (enables predictive trend alerts)

curl -X POST https://repairbot.technobuilders.tech/api/iot/diagnose \ -H "X-API-Key: iot_live_..." \ -H "Content-Type: application/json" \ -d '{"device_type":"aircon", "sensors":{"discharge_temp_c":102}, "sensor_history":[{"ts":"t-2","sensors":{"discharge_temp_c":94}}, {"ts":"t-1","sensors":{"discharge_temp_c":98}}]}'

Response fields

diagnosisRoot-cause analysis + the part to replace + repair SOP.
suppliers[]Local PH suppliers stocking the part — business, city, contact, items with price + stock.
parts_links[]Distributor links (Lazada / Shopee / Mouser / DigiKey).
predictive_alerts[]Trend warnings when a sensor is moving toward a documented limit (e.g. discharge temp climbing toward the HVAC reference ceiling). Present only when you send sensor_history. Each item: {sensor, alert}.
confidencehigh / medium / low — how well your device is covered by the knowledge base.
kb_groundedtrue when the diagnosis is backed by enough KB content for this device.
kb_chunk_countHow many KB documents matched this device type.
cautionPresent when coverage is thin — see "Handle uncovered devices" below.
request_idEchoed back; use it to make retries idempotent.

Handle uncovered devices

The API always returns a diagnosis, but it tells you when it's on thin ice. Check kb_grounded: when it's false (or confidence is low), route that device to a human technician instead of acting on the result automatically. That's how you keep automated decisions safe.

Continuous monitoring (predictive)

For predictive maintenance, have your monitoring platform POST readings on a schedule (e.g. every few minutes) and include sensor_history — the recent readings for each sensor, oldest first. The API then returns predictive_alerts flagging a sensor that is trending toward a known limit before it trips, so you can schedule service proactively rather than reacting to a failure. These alerts reference general published limits (e.g. HVAC discharge-temperature and ANSI voltage bands) — always verify against the specific unit's nameplate/spec. A statistical remaining-useful-life forecast tier is on the roadmap; today's alerts are rule-based and grounded in cited limits.

Rate limits & quota

Your per-minute rate limit and monthly call quota are shown on the My Key tab. Exceeding the rate limit returns 429; passing your monthly quota returns 403.

Expected latency — set your timeout to 120s

Diagnosis is AI-generated and takes 20–40 seconds typically (log forensics: 40–70s). The first request after a server deploy can add ~10s. Set your HTTP client timeout to 120 seconds — a 30s default timeout will abort calls that are working normally.

Field names must match exactly

Unknown JSON fields are accepted and silently ignored (so extra fields never break your integration). The flip side: a misspelled field is dropped without error — send sensors (not readings) and notes (not symptoms). If a valid-looking call returns a diagnosis asking you for data you already sent, check your field names first.

Close the loop: confirm outcomes (recommended)

Every diagnosis returns an outcome_token. After the repair, tell us whether the diagnosis was right:

POST /api/iot/feedback
{"outcome_token":"oc_...", "was_correct":true, "actual_fix":"replaced run capacitor 45uF"}

Write-once: a second submission for the same token returns 409. Confirmed outcomes improve diagnosis quality for your device types over time.

Log forensics

POST /api/iot/forensics with {"log_text":"...", "device_type":"...", "context":"..."} (up to 20KB) returns a structured root-cause report from a raw device log. API keys, emails, IPs and other secrets are redacted before analysis. Slower than diagnose — allow up to 70s.