A safety report is an overview of safety driving and events.
This API can get event and trip summaries and the trend type of 4 types of events:
OK
{- "uq": "3903dc78-9349-41a0-9662-d1e33de117f8",
- "doc_version": "latest",
- "result": true,
- "code": "S00000",
- "message": "string",
- "build": "string",
- "summary": {
- "event_category": [
- {
- "category": "string",
- "count": 0
}
], - "trip": {
- "total_distance": 0,
- "total_idling": 0,
- "total_time": 0,
- "total_trips": 0
}
}, - "trend": [
- {
- "events": [
- {
- "date": "string",
- "types": [
- {
- "type": 1,
- "count": 0
}
], - "severity": {
- "lv_1": 0,
- "lv_2": 0,
- "lv_3": 0
}
}
], - "trend_type": "string"
}
]
}
This API is used to get and query event list within time period.
OK
{- "uq": "3903dc78-9349-41a0-9662-d1e33de117f8",
- "doc_version": "latest",
- "result": true,
- "code": "S00000",
- "message": "string",
- "build": "string",
- "count": 0,
- "data": [
- {
- "asset_info": {
- "uploading": true,
- "has_video": true
}, - "car_id": 0,
- "clicked_count": 0,
- "device_cid": "string",
- "driver_avatar": "string",
- "driver_id": 0,
- "driver_name": "string",
- "driver_status": 0,
- "expired": true,
- "expiry": 0,
- "is_new": true,
- "lat": 0,
- "lng": 0,
- "name": "string",
- "recording_id": 0,
- "severity_level": 0,
- "tag": 0,
- "ticket": "string",
- "ticket_linked": "string",
- "timestamp": 0,
- "trip_id": 0,
- "type": 1,
- "type_name": "string",
- "upload_status": 0,
- "uuid": "string",
- "video_uploaded": 0,
- "videos_count": 0,
- "videos_total_count": 0
}
]
}
This API is used to get the detail information of event
OK
{- "uq": "3903dc78-9349-41a0-9662-d1e33de117f8",
- "doc_version": "latest",
- "result": true,
- "code": "S00000",
- "message": "string",
- "build": "string",
- "data": [
- {
- "car_id": 0,
- "clicked_count": 0,
- "coaching_id": 0,
- "comments_count": 0,
- "device_cid": "string",
- "driver_avatar": "string",
- "driver_id": 0,
- "driver_name": "string",
- "driver_status": 0,
- "expired": true,
- "expiry": 0,
- "is_highlight": "string",
- "is_new": true,
- "lat": 0,
- "lng": 0,
- "name": "string",
- "organization_id": 0,
- "over_speed_kph": 0,
- "over_speed_severity": 0,
- "recording_id": 0,
- "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",
- "session_type": "string",
- "severity_level": 0,
- "speed_data": {
- "is_over_speed": true,
- "over_speed_kph": 0,
- "over_speed_severity": 0,
- "speed_kph": 0,
- "speed_limit_kph": 0
}, - "speed_kph": 0,
- "speed_limit_kph": 0,
- "tag": 0,
- "ticket": "string",
- "ticket_linked": "string",
- "timestamp": 0,
- "trip_id": 0,
- "type": 1,
- "type_name": "string",
- "upload_status": 0,
- "uuid": "string",
- "video_uploaded": 0,
- "videos_count": 0,
- "total_videos": 0,
- "videos_total_count": 0,
- "event_assets": {
- "capture_mode": {
- "snapshot": [
- "string"
], - "video": [
- "string"
]
}, - "total_snapshots": 0,
- "total_videos": 0
}
}
]
}
This API is used to get the video asset details information of event
OK
{- "uq": "3903dc78-9349-41a0-9662-d1e33de117f8",
- "doc_version": "latest",
- "result": true,
- "code": "S00000",
- "message": "string",
- "build": "string",
- "data": {
- "device_name": "string",
- "duration": 0,
- "end_timestamp": 0,
- "event_timestamp": 0,
- "expiry": 0,
- "id": 0,
- "nmea_should_end_at": 0,
- "nmea_should_start_at": 0,
- "nmea_url": "string",
- "organization_id": 0,
- "snapshots": [
- {
- "capture_mode": "string",
- "ticket": "string",
- "url": "string"
}
], - "start_timestamp": 0,
- "ticket": "string",
- "ticket_linked": "string",
- "timestamp": 0,
- "title": "string",
- "type": 1,
- "video_end_timestamp": 0,
- "video_start_timestamp": 0,
- "video_triggered_timestamp": 0,
- "videos": [
- {
- "video_url": "string",
- "screenshot_url": "string",
- "origin_file_name": "string",
- "general_format": "string",
- "general_filesize": 0,
- "general_duration": 0,
- "video_streamorder": 0,
- "video_codecid": "string",
- "video_duration": 0,
- "video_bitrate": 0,
- "video_width": 0,
- "video_height": 0,
- "video_framerate": 0,
- "video_colorspace": "string",
- "audio_streamorder": 0,
- "audio_format": "string",
- "audio_codecid": "string",
- "audio_duration": 0,
- "audio_bitrate": 0,
- "audio_bitrate_nominal": 0,
- "video_start_at": 0,
- "video_end_at": 0,
- "capture_mode": "string",
- "video_id": 0
}
], - "video_uploaded": 0,
- "videos_total_count": 0,
- "videos_count": 0,
- "event_assets": {
- "capture_mode": {
- "snapshot": [
- "string"
], - "video": [
- "string"
]
}, - "total_snapshots": 0,
- "total_videos": 0
}
}
}
This API is used to get event videos that upload manually.
The list contains:
device CID, event name, event expiration status, left days to expired, latitude and longitude of the event, device, event recording video ID, tag info, trip ID
value | state | description |
---|---|---|
0 |
Upcoming | The server sends a command to the device. |
1 |
Processing | After receiving the command, the device notifies the server. |
2 |
Success | Upload progress is tracked by the server. All files have been received successfully. |
3 |
Failed | The device reports an error message. |
4 |
Clipping file | The server receives the number of clips that can be processed and their status from the device. |
5 |
Uploading file | Once the device is ready to upload, it requests a ticket. After getting the ticket, it starts uploading the videos. The server counts the uploaded files. |
6 |
Partial Success | Task partially completed(e.g., only some clips uploaded) |
code | description |
---|---|
D_E20001 |
Video is not existing |
D_E20002 |
Videos merges fail |
D_E20003 |
Clip process is busy |
D_E20004 |
Device is busy on uploading events (when command is made through P2P, legacy ) |
D_E20005 |
Failed to get ticket from server (when command is made through P2P, legac ) |
D_E20006 |
2nd SDCard is unmounted (when command is made through P2P, legacy ) |
D_E20007 |
The task is finished but failed |
D_E20009 |
Insufficient internal flash storage space |
D_E20010 |
Upload time expired (The task is queued for over three days, and removed by the camera app) |
field | type | description |
---|---|---|
code |
string or null |
camera code, e.g., D_S00000 indicates success. |
desc |
string or null |
description. May be null . |
state |
string or null |
camera status, such as video processing . |
report_at |
integer (Unix timestamp) or null |
Timestamp of the server current task report. |
state_desc |
string or null |
Task progress status (e.g., (2/3) means stage 2 of 3). May be null . |
progress_status |
array or [] (empty array) |
A list of camera-specific task progress entries. |
field | type | description |
---|---|---|
camId |
string or null |
Camera identifier(e.g., C_E , S_F_I ). |
state |
string or null |
Current status of this camera task (e.g., Uploading, Success ). |
report_at |
integer or null |
Timestamp of this camera's progress update. |
state_number |
integer or null |
Numeric stage of the task (e.g., 6 = step 6). |
value | state | description |
---|---|---|
0 |
Preparing to clip | The camera is waiting to start clipping. |
1 |
Starting clipping | The camera has started clipping the video. |
2 |
Clipping successful | The camera finished clipping successfully. |
3 |
Clipping failed | The camera failed to clip the video. |
4 |
Video not found | The camera cannot find the video file. |
5 |
Preparing to upload | The camera is ready to upload the video. |
6 |
Uploading success | The camera uploaded the video successfully. |
7 |
Upload time expired | The camera took too long; upload expired. |
Indicates whether to filter for timelapse videos.
OK
{- "uq": "3903dc78-9349-41a0-9662-d1e33de117f8",
- "doc_version": "latest",
- "result": true,
- "code": "S00000",
- "message": "string",
- "build": "string",
- "count": 0,
- "data": [
- {
- "clicked_count": 0,
- "device_cid": "string",
- "event_name": "string",
- "expired": true,
- "expiry": 0,
- "id": 0,
- "images": [
- {
- "url": "string"
}
], - "is_new": true,
- "lat": 0,
- "lng": 0,
- "name": "string",
- "recording_id": 0,
- "tag": 0,
- "ticket": "string",
- "timestamp": 0,
- "trip_id": 0,
- "type": 27,
- "type_name": "string",
- "uuid": "string",
- "last_ack_message": {
- "code": "string",
- "desc": "string",
- "state": "string",
- "report_at": 0,
- "state_desc": "string",
- "progress_status": [
- {
- "camId": "string",
- "state": "string",
- "report_at": 0,
- "state_number": 0
}
]
}, - "video_data": {
- "time_lapse_rate": 0,
- "time_lapse": true
}, - "task_state": 0,
- "recording_start_time": 0
}
]
}
This API can send a remote command to request the device to upload a video clip asynchronously, regardless of whether the device is online or not when the request is made.
The response includes a task ID that allows you to check the result with V2/event/taskResult/{taskId} later.
This feature was introduced from region 43.
The device won't respond to the remote command before the version of region 43.
cam_id required | string non-empty The cameria id, please refer to Camera capture mode and Camera ID Additionally, you can set cam_id to 'ALL' to upload all video clips corresponding to the target_timestamp parameter.
|
file_name required | string non-empty The desired file name to save as. |
target_timestamp required | integer <int32> The desired timestamp to include in the video clip |
single_event | boolean Default: true A flag to control the multiple video files will be uploaded along with the same event. |
duration_in_seconds | integer or null <int32> [ 1 .. 86400 ] Default: 30 Duration of the video |
OK
{- "cam_id": "string",
- "file_name": "string",
- "target_timestamp": 0,
- "single_event": true,
- "duration_in_seconds": 30
}
{- "uq": "3903dc78-9349-41a0-9662-d1e33de117f8",
- "doc_version": "latest",
- "result": true,
- "code": "S00000",
- "message": "string",
- "build": "string",
- "data": {
- "task_id": "string"
}
}
This API allowing you to query the process result of a remote task like
OK
{- "uq": "3903dc78-9349-41a0-9662-d1e33de117f8",
- "doc_version": "latest",
- "result": true,
- "code": "S00000",
- "message": "string",
- "build": "string",
- "data": {
- "process_history": [
- {
- "desc": "string",
- "state": "string",
- "report_at": 0,
- "code": "string",
- "progress_status": [
- {
- "camId": "string",
- "state": "string",
- "state_number": 0
}
], - "state_desc": "string"
}
], - "process_state": "string",
- "event_info": {
- "display_name": "string",
- "video_count": 0
}, - "video_info": {
- "duration": 0,
- "device_name": "string",
- "video_start_timestamp": 0,
- "video_end_timestamp": 0,
- "title": "string",
- "ticket": "string",
- "expiry": 0
}, - "videos": [
- {
- "video_url": "string",
- "screenshot_url": "string",
- "origin_file_name": "string",
- "general_format": "string",
- "general_filesize": 0,
- "general_duration": 0,
- "video_streamorder": 0,
- "video_codecid": "string",
- "video_duration": 0,
- "video_bitrate": 0,
- "video_width": 0,
- "video_height": 0,
- "video_framerate": 0,
- "video_colorspace": "string",
- "audio_streamorder": 0,
- "audio_format": "string",
- "audio_codecid": "string",
- "audio_duration": 0,
- "audio_bitrate": 0,
- "audio_bitrate_nominal": 0,
- "video_start_at": 0,
- "video_end_at": 0,
- "capture_mode": "string"
}
]
}
}
This API can discard an event.
Deleting the event will not update the score for that specific trip; instead, it will be reflected in the driver's overall driving score as a positive adjustment.
Please note that this action is irreversible.
OK