Skip to content

Manual Diagnosis API Developer Guide

Service Overview

Manual Diagnosis Service is a telematics service where customers or mechanics directly request diagnosis to check vehicle abnormal conditions.

Service Features

  • User direct diagnosis request function
  • Real-time diagnosis progress monitoring
  • Detailed vehicle diagnosis result verification
  • Remote diagnosis support before visiting repair center
  • Support for various user groups
  • Compliance with personal information protection laws
  • Mandatory vehicle diagnosis data collection consent
  • Compliance with diagnosis authority management policies
  • Compliance with vehicle control-related regulations

Key Scenarios

API Flow by Entity:

🏢 Call Center:

  1. Session Request: Request vehicle diagnosis session creation
  2. Diagnosis Command: Transmit diagnosis command (LIVE_STREAM, READ_DTC)
  3. Session Termination: Request diagnosis session termination

📱 User App:

  1. Diagnosis Consent: Provide consent for remote diagnosis execution
  2. Monitoring: Real-time check of diagnosis progress

🚗 Vehicle (TCU):

  1. Diagnosis Session Reception: Receive diagnosis session request from ECARUS
  2. Real-time Data Transmission: Live data streaming (RPM, COOLANT_TEMP, etc.)
  3. ECU Diagnosis Execution: Read DTC codes and collect diagnosis data
  4. Diagnosis Session Termination: Process session termination command

Scenario 2: Real-time Diagnosis Data Streaming

API Flow by Entity:

🏢 Call Center:

  1. Stream Control: Transmit CMD_LIVE_STREAM or CMD_READ_DTC command
  2. Data Reception: Real-time reception of live data via SSE
  3. Analysis: Real-time analysis of received diagnosis data

📱 User App:

  1. Diagnosis Progress Check: Check currently diagnosing items and status
  2. Real-time Alerts: Receive diagnosis progress push notifications

🚗 Vehicle (TCU):

  1. Data Streaming Start: Transmit live data at 1-second intervals
  2. ECU Communication: Request ECU data using UDS protocol
  3. Diagnosis Data Transmission: Transmit real-time data such as RPM, temperature
  4. DTC Code Transmission: Transmit diagnostic error codes

Scenario 3: Diagnosis Management and Report Generation

API Flow by Entity:

🏢 Call Center:

  1. Session Query: Query active diagnosis session list
  2. History Query: Query past diagnosis history
  3. DTC Query: Query DTC code list
  4. Report Query: Check final diagnosis results

📱 User App:

  1. Diagnosis Result Check: Check final diagnosis results and reports
  2. History Management: Query past diagnosis history and results

🚗 Vehicle (TCU):

  1. Diagnosis Session Management: Maintain and manage session status
  2. Data Storage: Temporary storage of diagnosis data

Key Features

📱 Features to Implement in App

2. Diagnosis Status Monitoring

3. Diagnosis Result Verification


🏢 Features to Implement in Call Center

1. Diagnosis Session Management

2. Diagnosis Command Control

3. Diagnosis Management and Analysis

4. Administrator Functions

  • Session Management: Overall diagnosis session management and monitoring
  • Technician Management: Diagnosis technician permissions and management
  • Quality Management: Diagnosis quality verification and improvement
  • Statistical Analysis: Diagnosis statistics and performance analysis

Sequence Diagram

Manual Diagnosis System Flow

Manual Diagnosis

API Endpoints

Refer to the Common API Specifications for headers, response codes, and error formats.

Manual Diagnosis Session Start

Manual Diagnosis Session Request

bash
curl -X POST "https://api.ecarus.run/api/v1/diagnosis/vehicles/KMHSH81C7LU123456/manual/session-request" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
     -H "Content-Type: application/json" \
     -d '{"reason": "Engine Noise Check", "technicianId": "TECH_001"}'
bash
curl -X POST "https://api.ecarus.run/api/v1/diagnosis/vehicles/KMHSH81C7LU123456/manual/consent" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
     -H "Content-Type: application/json" \
     -d '{"allow": true, "requestId": "req_001"}'

Manual Diagnosis Session Stop

bash
curl -X POST "https://api.ecarus.run/api/v1/diagnosis/vehicles/KMHSH81C7LU123456/manual/session-stop" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
     -H "Content-Type: application/json" \
     -d '{"sessionId": "sess_001", "reason": "DIAGNOSIS_COMPLETED"}'

Diagnosis Command Transmission

Diagnosis Command Transmission

bash
curl -X POST "https://api.ecarus.run/api/v1/diagnosis/vehicles/KMHSH81C7LU123456/manual/command" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
     -H "Content-Type: application/json" \
     -d '{"cmd": "CMD_LIVE_STREAM", "pids": ["RPM", "COOLANT_TEMP"]}'

Manual Diagnosis Session Report Query

bash
curl -X GET "https://api.ecarus.run/api/v1/diagnosis/vehicles/KMHSH81C7LU123456/manual/session/sess_001/report" \
     -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"

Manual Diagnosis Real-time Event Reception (SSE)

Note: Recommend accessing via browser or using dedicated SSE client

bash
curl -N -H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
     "https://api.ecarus.run/api/v1/diagnosis/vehicles/KMHSH81C7LU123456/manual/live-data"

Data Models

Diagnosis Session Request

json
{
  "vin": "KMHSH81C7LU123456",
  "reason": "Engine Noise Check",
  "technicianId": "TECH_001"
}

Diagnosis Command

json
{
  "cmd": "CMD_LIVE_STREAM",
  "pids": ["RPM", "COOLANT_TEMP", "SPEED"],
  "sessionId": "sess_001"
}
json
{
  "allow": true,
  "requestId": "req_001",
  "timestamp": "2026-01-13T14:30:00Z"
}

Diagnosis Session Status

json
{
  "sessionId": "sess_001",
  "vin": "KMHSH81C7LU123456",
  "status": "ACTIVE",
  "startTime": "2026-01-13T14:30:00Z",
  "technicianId": "TECH_001",
  "reason": "Engine Noise Check",
  "consent": {
    "status": "GRANTED",
    "timestamp": "2026-01-13T14:31:00Z"
  },
  "currentCommand": {
    "cmd": "CMD_LIVE_STREAM",
    "status": "EXECUTING",
    "startTime": "2026-01-13T14:32:00Z"
  }
}

Live Data Stream Event

json
{
  "eventType": "LIVE_DATA",
  "sessionId": "sess_001",
  "vin": "KMHSH81C7LU123456",
  "timestamp": "2026-01-13T14:32:00Z",
  "data": {
    "rpm": 2500,
    "coolantTemp": 85.5,
    "speed": 65.2,
    "fuelPressure": 45.8,
    "throttlePosition": 12.5
  }
}

Diagnosis Report

json
{
  "reportId": "report-12345",
  "sessionId": "sess_001",
  "vin": "KMHSH81C7LU123456",
  "timestamp": "2026-01-13T14:45:00Z",
  "summary": {
    "overallStatus": "WARNING",
    "dtcCount": 1,
    "criticalIssues": 0,
    "recommendations": ["Service center visit recommended"]
  },
  "dtc": [
    {
      "code": "P0520",
      "description": "Engine Oil Pressure Sensor/Switch Circuit",
      "severity": "MEDIUM",
      "occurrenceCount": 1
    }
  ],
  "liveData": {
    "averageRpm": 2200,
    "maxCoolantTemp": 92.5,
    "dataPoints": 150
  },
  "recommendations": [
    {
      "priority": "MEDIUM",
      "action": "INSPECT_OIL_PRESSURE_SENSOR",
      "description": "Check oil pressure sensor and wiring"
    }
  ]
}

Security and Privacy

Authentication and Authorization

  • User authentication token required (JWT/OAuth2)
  • Vehicle access permission verification
  • Diagnosis consent verification required
  • Technician authority verification required

Data Security

  • All API communication encrypted with HTTPS/TLS
  • Live data streaming security measures
  • Sensitive vehicle information protection during transmission

Privacy Protection

  • Explicit consent required for manual diagnosis
  • Diagnosis purpose specification
  • Data retention period policy compliance
  • User right to data deletion guarantee

Access Control

  • VIN-based vehicle access permission verification
  • User-specific diagnosis session access management
  • Technician role-based access control
  • Abnormal session detection and termination

Exception Handling

  • Connection Failure: Session timeout and retry processing
  • Slow Response: Real-time data streaming delay handling
  • Server Down: Session preservation and recovery
  • Vehicle OFF: Session termination notification
  • No ECU Response: Partial diagnosis result notification
  • Diagnosis Failure: Error notification and retry guidance
  • Session Timeout: Automatic session termination
  • Consent Timeout: Session cancellation due to no consent
  • Concurrent Sessions: Prevent multiple simultaneous sessions
  • Data Loss: Live data loss notification
  • Data Corruption: Data integrity verification
  • Transmission Delay: Real-time data delay handling

Test Setup

Base URL: https://api.ecarus.run/api/v1/diagnosis
Authentication Token: sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d
Sample VIN: KMHSH81C7LU123456

Use Swagger UI for interactive API testing.

Deployment Considerations

App Store Registration

  • Request remote diagnosis permissions
  • Request push notification permissions
  • Clear explanation of remote diagnosis functionality
  • Compliance with personal information protection laws
  • Mandatory manual diagnosis consent
  • Compliance with diagnosis authority management policies
  • Compliance with vehicle control-related regulations

Vehicle Compatibility

  • Support various vehicle models
  • Consider ECU communication protocol differences
  • Reflect OEM-specific diagnosis protocol differences
  • Consider real-time data transmission capabilities

Session Management

  • Session timeout policy configuration
  • Concurrent session prevention mechanisms
  • Session recovery and failover systems
  • Session audit logging and monitoring

Released under the MIT License.