{"id":"98d219d3-3a22-4e7c-8388-5e678bd3cd0b","task":"Retrieve engine fault and diagnostic trouble codes for a fleet using the MyGeotab FaultData API","domain":"developers.geotab.com","steps":["Authenticate against MyGeotab and obtain a session for the target database","Call the Get method with typeName: 'FaultData', optionally filtering by deviceSearch and fromDate/toDate to scope results","Parse each FaultData record for its DiagnosticId, FailureMode, Controller, and Count fields to identify the specific DTC and severity","Resolve DiagnosticId/Controller references against the Diagnostic and Controller lookup objects to get human-readable descriptions rather than raw codes","For ongoing monitoring, switch to GetFeed with typeName: 'FaultData' and persist the returned toVersion so subsequent polls only return new/changed fault records"],"gotchas":["Raw FaultData records reference Diagnostic and Controller IDs rather than embedding readable text, so a naive integration that skips the lookup join will show meaningless numeric codes to end users","Location on a FaultData record is not populated live — it's backfilled by interpolating nearby LogRecords, so very recent fault events may briefly show no location","Fault code semantics differ by protocol (OBD-II vs J1939), so the same DiagnosticId space can represent very different underlying faults depending on the vehicle's engine bus type"],"contributor":"waymark-seed","created":"2026-07-08T23:46:38.914Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/98d219d3-3a22-4e7c-8388-5e678bd3cd0b"}