Push Crash Data
Introduction
The transfer of data collected by the DriveKit SDK during a collision and the crash insights are a common need for DriveQuant platform users. Crash data can be shared to:
An assistance platform in order to alert an operator, who may decide to call in a tow truck or the emergency services.
An insurance platform to open a claims report and use the data to accelerate decision-making and processing.
This is why DriveQuant offers the possibility to retrieve all the data collected by the mobile SDKs during a collision as well as all the crash indicators that result from our analyses. This is the purpose of the Crash Data Push service.
Principle
The crash data push service sends the crash analysis results right after it is completed and analysed.
The accident detection and confirmation cycle is described below.
Crash detection is active only while a trip is being recorded. Trip recording is automatically triggered by the DriveKit SDK, which can detect a vehicle's displacement.
The SDK constantly analyses the data collected by the phone's sensors during the trip. In case of a collision, the DriveKit SDK sends a portion of data to the DriveQuant platform for analysis.
The DriveQuant platform performs signal processing on the raw data to extract sensitive indicators. These indicators are analysed by an algorithm trained to identify accidents by similarity with a confirmed accident database.
As soon as the analysis is complete, the data is transmitted to your platform through the crash data push service.
Collision detection on the smartphone is instantaneous. Then, 20 seconds are required to record the post-collision data before sending the data to the DriveQuant platform. Crash confirmation on our platform takes less than a second. As soon as the crash is confirmed, the data is pushed. Overall, it takes less than 30 seconds from the time of collision to get accident data on your platform.
Configuration
See Configuration in the parent section.
The body of the request is a JSON object with a set of fields that contain the raw data and crash indicators. An example of data in JSON format is given at the end of this section.
Your service should respond with a 2xx http status code (typically 200 OK) when the push request is accepted. Any other code will be considered as a failure, and the service will attempt to send the data again as defined in the Retry Policy section.
If your service responds with a 2xx http status code, while the data has not been accepted by your platform, then there will be no further attempt to send the data!
Retry Policy
Every push request not successfully acknowledged by your service will be retried every minute for 30 minutes. After 30 unsuccessful attempts, the push data will be sent once a day until receiving a valid answer, or until the crash expires.
The expiration period of a crash whose probability is lower than 20% is at most 90 days. Therefore, if your push services are configured to receive both confirmed and unconfirmed crashes, any crash with a probability lower than 20% will be deleted after 90 days, even if it could not be sent to your platform.
Sample Message
The crash data push API specification can be downloaded here in OpenAPI YAML format.
Service to get a sample message
To facilitate the validation of your data ingestion service for the push crash service, we provide a dedicated admin utility service. This tool allows you to generate sample requests based on your actual data and configuration, making it easier to test and verify your integration.
Below, you'll find a detailed description of the service, and you can also test it directly here.
This service returns the body of the push crash data request that DriveQuant would send to the customer push crash service for a given crash.
Crash unique identifier
Drivekit Admin API key
OK
Invalid DriveKit Admin API key
Crash Not Found
Too Many Requests
Definitions
The content of the push crash data contains the crash status and the generic informations required for identification. It also includes the raw data, and the parameters used for crash analysis as described in the figure below.

The content of the crash body request is described in the following section.
Crash identification and status
crashId
string
Unique crash identifier
userId
string
Unique user identifier
state
string
Crash state
Allowed values: CONFIRMED, UNCONFIRMED
probability
number
Crash probability
userLocationUrl
string
URL link that directs to a map displaying the user's location after a confirmed accident
Parameter
This section contains the crash recording configuration.
localTripId
string
Unique trip identifier
date
date
Crash date
Format: 'yyyy-MM-dd''T''HH:mm:ss.SSSZ'
tripStartDate
date
Trip start date
Format: 'yyyy-MM-dd''T''HH:mm:ss.SSSZ'
gpsWindowNeg
integer
Recording duration of GPS data before detection (in s) Default value: 20
gpsWindowPos
integer
Recording duration of GPS data after detection (in s) Default value: 20
imuWindowNeg
integer
Recording duration of accelerometer data before detection (in s) Default value: 5
imuWindowPos
integer
Recording duration of accelerometer data after detection (in s) Default value: 10 s
imuFrequency
integer
Accelerometer signal recording frequency (in Hz) Default value: 100
installationId
string
Unique identifier of an installation
Gps
This section contains the GPS data recorded during the crash.
timestamp
array[number]
Time (in s)
latitude
array[number]
Latitude (in deg)
longitude
array[number]
Longitude (in deg)
velocity
array[number]
Velocity (in km/h)
heading
array[number]
Heading (in deg)
accuracy
array[number]
GPS accuracy (in m)
elevation
array[number]
Elevation (in m)
Movements
This section contains the acceleration data recorded during the crash.
timestamp
array[number]
Time (in ms)
accelerationX
array[number]
Acceleration component along the East axis in the Earth reference frame (in mG)
accelerationY
array[number]
Acceleration component along the North axis in the Earth reference frame (in mG)
accelerationZ
array[number]
Acceleration in the vertical direction, perpendicular to the Earth's surface (in mG)
How to use crash data in an assistance context?
The push crash data service is designed to automatically make an emergency call to an assistance operator. The data shared by this service in meant to help the operator take the right decision in assisting the driver, depending on the severity of the accident. For example:
Call the driver to obtain confirmation of the accident.
Send a towing vehicle in the case of mechanical damage.
Send the emergency services if there is a severe accident.
Assessing the situation and the severity of the accident is critical and can be facilitated by the following indicators:
The probability of an accident, expressed as a percentage.
The velocity at the time of collision. At high speeds, a vehicle stores more kinetic energy, which will cause more damage the force of the collision.
The force of the impact measured by the smartphone. The severity of the accident increases with the force measured.
The location of the user after the time of collision.
In addition to the characteristics and location of the accident, the DriveKit SDK also measures and shares the smartphone's live location after the accident. Therefore, the operator can easily determine whether the driver is continuing his route or has stopped near the place of the accident, which can help evaluating the severity of the accident.
The most relevant informations is displayed on a web page, which can be accessed from a unique URL provided in the userLocationUrl field of the push crash request's body (see above), and in a callback of the DriveKit SDK crash events listener (see android or iOS references):
The web page displays the crash data and the smartphone's live location, updated every 10 seconds until the trip recording ends.
The data displayed on the web page is limited to the trip during which the accident was detected and confirmed.
The URL expires after 24 hours by default, or can be revoked anytime using the dedicated DriveKit admin API.

Last updated
Was this helpful?

