Engine codes (V2)
Vehicles
Engine codes
Enriched engine/diagnostic codes for a vehicle with full AI analysis, severity, and detection location.
GET
Engine codes (V2)
Overview
Returns engine code (OBD-II / Diagnostic Trouble Code) records from the most recent engine fault event for a vehicle. Each code is enriched with AI-generated analysis including a plain-English explanation of why it matters, a list of possible root causes, and step-by-step recommended actions — written as full descriptive sentences, not short labels.The V1 version of this endpoint is DTC codes. V2 is paginated, significantly enriched with AI analysis, and the path has changed from
/dtc to /engine-codes.Rate limit: 30 requests per 60 seconds per token.
Endpoint
GET /api/v2/vehicles/{id}/engine-codes
Path parameters
Legacy vehicle ID.
Query parameters
Page number (1-based).
Records per page.
Response
200 OK —PagedListResult<EngineCodeDto>
| Field | Type | Description |
|---|---|---|
| code | string | Raw OBD-II code (e.g. P0420) |
| description | string | Standard code description (e.g. "Catalyst System Efficiency Below Threshold (Bank 1)") |
| whyThisMatters | string[] | AI-generated full sentences explaining the impact on vehicle operation and safety |
| possibleCauses | string[] | AI-generated full sentences describing the most likely root causes |
| recommendedActions | string[] | AI-generated full sentences with step-by-step recommended actions |
| severity | string | null | Urgency level: "High", "Medium", or "Low". May be null for older cached records |
| detectedAt | datetime | null | When the fault was detected (user’s local timezone) |
| detectedAtFormatted | string | Human-readable formatted timestamp |
| location.address | string | null | Street address where the fault was detected; null if geocoding failed |
| location.latitude | number | null | Latitude of detection location |
| location.longitude | number | null | Longitude of detection location |
Example response
Error responses
| Status | Meaning |
|---|---|
| 401 | Token does not have access to this vehicle |
| 404 | Vehicle not found |
Authorizations
JWT Bearer token obtained from POST /api/v2/authentication/token/api-key.
Lifetime: ~24 hours (86,399 seconds). Cache the token and reuse it. Re-authenticate 5 minutes before expiry.
Scoping: API key tokens are scoped to the company the key belongs to and may restrict access to a vehicle allowlist and/or action set (see token claims).
No refresh endpoint — re-authenticate with your API key when the token expires.
Path Parameters
Response
Successful response