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
Legal Requirements
- 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
Scenario 1: Remote Expert Diagnosis Request and Consent
API Flow by Entity:
🏢 Call Center:
- Session Request: Request vehicle diagnosis session creation
- Diagnosis Command: Transmit diagnosis command (LIVE_STREAM, READ_DTC)
- Session Termination: Request diagnosis session termination
📱 User App:
- Diagnosis Consent: Provide consent for remote diagnosis execution
- Monitoring: Real-time check of diagnosis progress
🚗 Vehicle (TCU):
- Diagnosis Session Reception: Receive diagnosis session request from ECARUS
- Real-time Data Transmission: Live data streaming (RPM, COOLANT_TEMP, etc.)
- ECU Diagnosis Execution: Read DTC codes and collect diagnosis data
- Diagnosis Session Termination: Process session termination command
Scenario 2: Real-time Diagnosis Data Streaming
API Flow by Entity:
🏢 Call Center:
- Stream Control: Transmit CMD_LIVE_STREAM or CMD_READ_DTC command
- Data Reception: Real-time reception of live data via SSE
- Analysis: Real-time analysis of received diagnosis data
📱 User App:
- Diagnosis Progress Check: Check currently diagnosing items and status
- Real-time Alerts: Receive diagnosis progress push notifications
🚗 Vehicle (TCU):
- Data Streaming Start: Transmit live data at 1-second intervals
- ECU Communication: Request ECU data using UDS protocol
- Diagnosis Data Transmission: Transmit real-time data such as RPM, temperature
- DTC Code Transmission: Transmit diagnostic error codes
Scenario 3: Diagnosis Management and Report Generation
API Flow by Entity:
🏢 Call Center:
- Session Query: Query active diagnosis session list
- History Query: Query past diagnosis history
- DTC Query: Query DTC code list
- Report Query: Check final diagnosis results
📱 User App:
- Diagnosis Result Check: Check final diagnosis results and reports
- History Management: Query past diagnosis history and results
🚗 Vehicle (TCU):
- Diagnosis Session Management: Maintain and manage session status
- Data Storage: Temporary storage of diagnosis data
Key Features
📱 Features to Implement in App
1. Diagnosis Consent Management
- Diagnosis Consent: Provide consent for remote diagnosis execution
- Consent Status: Real-time check of current consent status
2. Diagnosis Status Monitoring
- Real-time Status: Real-time display of current diagnosis progress
3. Diagnosis Result Verification
- Result Query: Check final diagnosis results
- History Query: Query past diagnosis history and results
🏢 Features to Implement in Call Center
1. Diagnosis Session Management
- Session Request: Request diagnosis session creation
- Session List: Query active diagnosis session list
- Session Stop: Request diagnosis session termination
2. Diagnosis Command Control
- Command Control: Transmit diagnosis commands
- Data Reception: Real-time reception of diagnosis data via SSE
3. Diagnosis Management and Analysis
- Diagnosis History: Query past diagnosis history
- DTC Management: Query DTC code list
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

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"}'Diagnosis Consent Provision
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"
}Diagnosis Consent
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
Network Related
- Connection Failure: Session timeout and retry processing
- Slow Response: Real-time data streaming delay handling
- Server Down: Session preservation and recovery
Vehicle Related
- Vehicle OFF: Session termination notification
- No ECU Response: Partial diagnosis result notification
- Diagnosis Failure: Error notification and retry guidance
Session Related
- Session Timeout: Automatic session termination
- Consent Timeout: Session cancellation due to no consent
- Concurrent Sessions: Prevent multiple simultaneous sessions
Data Related
- 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
Legal Regulation Compliance
- 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