Telemetry Ingestion API
One endpoint. Universal schema. Push any machine data to CalibrAIte.
How Data Flows to CalibrAIte
┌─────────────────────┐ ┌──────────────────┐ ┌─────────────────────┐
│ MACHINE / VEHICLE │ │ TELEMATICS │ │ CalibrAIte API │
│ │ │ GATEWAY │ │ │
│ ┌──────────┐ │ │ ┌──────────┐ │ │ POST /api/v1/ │
│ │ ECU │─J1939─┼────▶│ │ CalAmp │─4G──┼────▶│ telemetry │
│ │ (engine) │ │ │ │ MiX │ │ │ │
│ └──────────┘ │ │ │ Samsara │ │ │ ┌───────────────┐ │
│ │ │ └──────────┘ │ │ │ Validate │ │
│ ┌──────────┐ │ └──────────────────┘ │ │ Store Raw │ │
│ │ Hexagon │ │ │ │ Classify │ │
│ │ CAS │───────┼─── Site Network ─────────────▶│ │ Notify │ │
│ └──────────┘ │ │ │ Profile │ │
│ │ ┌──────────────────┐ │ └───────────────┘ │
│ ┌──────────┐ │ │ SEEING MACHINES │ │ │
│ │ Guardian │ │ │ CLOUD │ │ ┌───────────────┐ │
│ │ Camera │───────┼────▶│ ┌──────────┐ │────▶│ │ Events DB │ │
│ └──────────┘ │ │ │ API │ │ │ │ Machine Prof │ │
│ │ │ └──────────┘ │ │ │ Site Profile │ │
│ ┌──────────┐ │ └──────────────────┘ │ │ Audit Log │ │
│ │ GPS │ │ │ └───────────────┘ │
│ │ Tracker │───────┼─── Aftermarket Telematics ──▶│ │
│ └──────────┘ │ │ ┌───────────────┐ │
└─────────────────────┘ │ │ DASHBOARDS │ │
│ │ per role │ │
CalibrAIte NEVER touches the OT network. │ └───────────────┘ │
The site pushes data. We receive and classify. └─────────────────────┘
Endpoint
X-API-Key: your-api-keyapplication/jsonSupported Source Types
j1939_ecuDirect ECU data via J1939 connector
telematics_gpsAftermarket GPS (MiX, Samsara, CalAmp)
proximity_casCollision avoidance (Hexagon MineProtect)
fatigue_ivmsDriver monitoring (Seeing Machines)
oem_apiOEM data feeds (Cat, Komatsu, etc.)
drill_mwdMeasurement While Drilling
environmentalWeather, dust, noise sensors
manual_entryManual upload (CSV, form)
customCustom source (describe in metadata)
Examples
// J1939 ECU Data — from telematics gateway
POST /api/v1/telemetry
X-API-Key: your-api-key
{
"source_type": "j1939_ecu",
"source_system": "calamp_lmu3640",
"machine_id": "SN-CAT793F-0142",
"site_id": 1,
"data": {
"engine_rpm": 1450,
"engine_torque_pct": 72,
"coolant_temperature": 87,
"oil_pressure": 420,
"oil_temperature": 95,
"fuel_rate": 185.2,
"vehicle_speed": 32,
"engine_hours": 14523.5,
"battery_voltage": 27.8,
"boost_pressure": 210,
"active_dtcs": 0
}
}Response Format
Success (201)
{
"accepted": 1,
"events": [
{ "id": 42, "status": "accepted" }
]
}Partial Success (201 with errors)
{
"accepted": 1,
"rejected": 1,
"events": [
{ "id": 42, "status": "accepted" }
],
"errors": [
{ "index": 1, "error": "Invalid source_type" }
]
}Key Rules
Proximity events (proximity_cas) are ALWAYS flagged as proximity_relevant — non-negotiable.
Critical and high severity events automatically notify site admins and managers.
Machine IDs can be numeric (database ID) or string (serial number) — we resolve both.
If severity is not provided, CalibrAIte auto-classifies based on the data (e.g., red zone = critical).
All raw data is stored exactly as received. Classification is applied on top, never destructive.
CalibrAIte is push-based. We NEVER pull from your OT network. You push data to us.
