# Push Trip Data

## **Introduction**

The transfer of data collected by the SDK as well as driving indicators to a client server is a common need for users of the DriveQuant platform.

The information provided can be used for additional data processing, for archiving in databases or to display information on websites.

This is why DriveQuant offers the possibility to retrieve all the driving data collected by the mobile SDKs as well as all the driving indicators that result from our analyses. This is the purpose of the Push Data service.

## **Principle**

The Push Data service sends the trip results after it is completed and analyzed. The process is described below.

* When the trip recording's started (manually or automatically), DriveQuant's mobile SDK saves GPS data locally on the user's phone.
* When the driver has finished his trip, the SDK automatically stops recording and requests the trip analysis service hosted on the DriveQuant's platform.
* At the end of the processing, which takes about 2 seconds, the results (driving scores and indicators) are returned to the SDK and can be displayed in the driver's mobile application.
* Finally, trip data (GPS variables recorded by the smartphone's sensors, driving scores and indicators) are sent to your server.

## Configuration

See [Configuration](/push-services/introduction.md#configuration) in the parent section.

The body of the request is a JSON object with a set of fields that contain the driving scores organized by categories and the raw data collected on the user smartphone stored in tables. An example of data in JSON format is given at [the end of this section](/push-services/push-data.md#sample-message).

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](#retry-policy).

{% hint style="danger" %}
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!*
{% endhint %}

## Retry Policy

Every push request not successfully acknowledged by your service will be retried **once a day**. After 30 unsuccessful attempts, the push data will be permanently discarded.

## Sample Message

The data included in the push data service request can be *configured* and depends on the analytics services you subscribed to.

If you want to receive the recorded GPS data in addition to the driving indicators, the request message body size will be larger. The size of the request message body is proportional to the duration of a trip because the GPS variables are recorded periodically at 1 Hz. Here are some approximate orders of magnitude:

* 10 min -> 40 kB
* 30 min -> 110 kB
* 60 min -> 200 kB
* 120 min -> 420 kB
* 150 min -> 580 kB

For security and user privacy reasons, we may delete or hash sensitive data.

The example below gives an exhaustive overview of the data resulting from DriveQuant's trip analysis. Definition of all these variables can be found in the [related section](/trip-analysis/rest-services/trip.md#response).

The Push Data API specification can be downloaded [here](https://gist.github.com/DriveQuantPublic/07566c343695c871acba15f7bebe35c6) in OpenAPI YAML format.

<details>

<summary>Sample message (click to expand)</summary>

{% code fullWidth="false" %}

```json
{
  "itinId": "6030ebe4ea60426b34e9b3bf",
  "firstname": "Firstname",
  "lastname": "Lastname",
  "itineraryStatistics": {
    "tripDuration": 1996,
    "drivingDuration": 1737,
    "idlingDuration": 259,
    "drivingPercentage": 87,
    "idlingPercentage": 13,
    "distance": 15801,
    "speedMean": 30.5,
    "subdispNb": 60,
    "meteo": 2,
    "day": true,
    "weekDay": false,
    "transportationMode": 1
  },
  "ecoDriving": {
    "score": 7.1,
    "scoreAccel": -1.7,
    "scoreMain": 0.9,
    "scoreDecel": -0.5,
    "stdDevAccel": 2.2006383,
    "stdDevMain": 0.99105114,
    "stdDevDecel": 3.797757,
    "energyClass": 2
  },
  "fuelEstimation": {
    "co2Mass": 2.691,
    "co2Emission": 170,
    "fuelVolume": 1.153,
    "fuelConsumption": 7.3,
    "idleFuelVolume": 0.049,
    "idleFuelPercentage": 4.28,
    "idleFuelConsumption": 0.696,
    "idleCo2Emission": 1.625,
    "idleCo2Mass": 0.115,
    "engineTempStatus": true,
    "coldFuelVolume": 0.018
  },
  "safety": {
    "safetyScore": 9.1,
    "nbAdh": 2,
    "nbAccel": 0,
    "nbDecel": 3,
    "nbAdhCrit": 0,
    "nbAccelCrit": 0,
    "nbDecelCrit": 1
  },
  "advancedEcoDriving": {
    "ecoDrivingContext": [
      {
        "contextId": 0,
        "distance": 6.9,
        "duration": 19.1,
        "efficiencyScore": 11,
        "scoreAccel": 6,
        "scoreMain": 6,
        "scoreDecel": 6
      },
      {
        "contextId": 1,
        "distance": 3.7,
        "duration": 6.5,
        "efficiencyScore": 6.1,
        "scoreAccel": -2.8,
        "scoreMain": 0.3,
        "scoreDecel": 1.3
      },
      {
        "contextId": 2,
        "distance": 64.8,
        "duration": 61.8,
        "efficiencyScore": 6.7,
        "scoreAccel": -1.7,
        "scoreMain": 0.6,
        "scoreDecel": -1.3
      },
      {
        "contextId": 3,
        "distance": 12.7,
        "duration": 7.8,
        "efficiencyScore": 6.6,
        "scoreAccel": -1.8,
        "scoreMain": 1.6,
        "scoreDecel": 0.8
      },
      {
        "contextId": 4,
        "distance": 11.8,
        "duration": 4.9,
        "efficiencyScore": 8.4,
        "scoreAccel": -1.1,
        "scoreMain": 0.1,
        "scoreDecel": -2.9
      }
    ]
  },
  "advancedFuelEstimation": {
    "fuelEstimationContext": [
      {
        "contextId": 0,
        "distance": 6.9,
        "duration": 19.1,
        "co2Mass": 0.199,
        "co2Emission": 179,
        "fuelVolume": 0.085,
        "fuelConsumption": 7.69
      },
      {
        "contextId": 1,
        "distance": 3.7,
        "duration": 6.5,
        "co2Mass": 0.099,
        "co2Emission": 167,
        "fuelVolume": 0.042,
        "fuelConsumption": 7.139
      },
      {
        "contextId": 2,
        "distance": 64.8,
        "duration": 61.8,
        "co2Mass": 1.832,
        "co2Emission": 176,
        "fuelVolume": 0.785,
        "fuelConsumption": 7.535
      },
      {
        "contextId": 3,
        "distance": 12.7,
        "duration": 7.8,
        "co2Mass": 0.264,
        "co2Emission": 130,
        "fuelVolume": 0.113,
        "fuelConsumption": 5.549
      },
      {
        "contextId": 4,
        "distance": 11.8,
        "duration": 4.9,
        "co2Mass": 0.182,
        "co2Emission": 96,
        "fuelVolume": 0.078,
        "fuelConsumption": 4.107
      }
    ]
  },
  "advancedSafety": {
    "safetyContext": [
      {
        "contextId": 0,
        "distance": 6.9,
        "duration": 19.1,
        "nbAdh": 0,
        "nbAccel": 0,
        "nbDecel": 0,
        "nbAdhCrit": 0,
        "nbAccelCrit": 0,
        "nbDecelCrit": 0,
        "safetyScore": 11
      },
      {
        "contextId": 1,
        "distance": 3.7,
        "duration": 6.5,
        "nbAdh": 0,
        "nbAccel": 0,
        "nbDecel": 0,
        "nbAdhCrit": 0,
        "nbAccelCrit": 0,
        "nbDecelCrit": 0,
        "safetyScore": 11
      },
      {
        "contextId": 2,
        "distance": 64.8,
        "duration": 61.8,
        "nbAdh": 2,
        "nbAccel": 0,
        "nbDecel": 2,
        "nbAdhCrit": 0,
        "nbAccelCrit": 0,
        "nbDecelCrit": 1,
        "safetyScore": 9.1
      },
      {
        "contextId": 3,
        "distance": 12.7,
        "duration": 7.8,
        "nbAdh": 0,
        "nbAccel": 0,
        "nbDecel": 0,
        "nbAdhCrit": 0,
        "nbAccelCrit": 0,
        "nbDecelCrit": 0,
        "safetyScore": 10
      },
      {
        "contextId": 4,
        "distance": 11.8,
        "duration": 4.9,
        "nbAdh": 0,
        "nbAccel": 0,
        "nbDecel": 1,
        "nbAdhCrit": 0,
        "nbAccelCrit": 0,
        "nbDecelCrit": 0,
        "safetyScore": 8
      }
    ]
  },
  "pollutants": {
    "co": 436.34,
    "hc": 105.19,
    "nox": 43.45,
    "soot": 0.01
  },
  "tireWear": {
    "frontTireWear": 625151,
    "rearTireWear": 194424,
    "frontTireDistance": 6522,
    "rearTireDistance": 6522,
    "frontTireAutonomy": 25010,
    "rearTireAutonomy": 159958,
    "frontTireTotalWear": 20.6847961834131,
    "rearTireTotalWear": 3.917838643900801,
    "frontTireWearRate": 3.1593584519985076,
    "rearTireWearRate": 0.5879650354629268
  },
  "brakeWear": {
    "frontBrakePadWear": 652316,
    "rearBrakePadWear": 490585,
    "frontBrakeDistance": 6522,
    "rearBrakeDistance": 6522,
    "frontBrakeAutonomy": 51081,
    "rearBrakeAutonomy": 70712,
    "frontBrakeTotalWear": 11.322879923360654,
    "rearBrakeTotalWear": 8.444911708095175,
    "frontBrakeWearRate": 1.6040543118399773,
    "rearBrakeWearRate": 1.1953688298028098
  },
  "safetyEvents": [
    {
      "time": 198,
      "longitude": 2.2345499992370605,
      "latitude": 48.865421295166016,
      "velocity": 27.597404310389447,
      "heading": 181.3752105740906,
      "elevation": 21.428831625626,
      "distance": 1803,
      "type": 3,
      "level": 1,
      "value": -1.9984114049011923
    },
    {
      "time": 886,
      "longitude": 2.228440046310425,
      "latitude": 48.829158782958984,
      "velocity": 9.322159013829488,
      "heading": 115.71003406053404,
      "elevation": 35.0165024497636,
      "distance": 5811,
      "type": 1,
      "level": 1,
      "value": 0.2091391662960067
    },
    {
      "time": 1179,
      "longitude": 2.2220299243927,
      "latitude": 48.776981353759766,
      "velocity": 59.56077714321047,
      "heading": 196.14873235105892,
      "elevation": 169.4896656907427,
      "distance": 8721,
      "type": 3,
      "level": 1,
      "value": -1.851640380003413
    },
    {
      "time": 1352,
      "longitude": 2.2241098880767822,
      "latitude": 48.76197814941406,
      "velocity": 23.478607191677995,
      "heading": 231.66262821151452,
      "elevation": 96.56055945085538,
      "distance": 11036,
      "type": 1,
      "level": 1,
      "value": 0.2596086644093922
    },
    {
      "time": 1352,
      "longitude": 2.2241098880767822,
      "latitude": 48.76197814941406,
      "velocity": 23.478607191677995,
      "heading": 231.66262821151452,
      "elevation": 96.56055945085538,
      "distance": 11036,
      "type": 3,
      "level": 2,
      "value": -3.1478373502646355
    },
    {
      "time": 1902,
      "longitude": 2.2364699840545654,
      "latitude": 48.742130279541016,
      "velocity": 29.11161620369841,
      "heading": 127.70357513427746,
      "elevation": 76.72611043725985,
      "distance": 14436,
      "type": 3,
      "level": 1,
      "value": -2.095731316728654
    }
  ],
  "endDate": "2021-02-20T10:56:37.188+0000",
  "itineraryData": {
    "endDate": "2021-02-20T10:56:37.188+0000",
    "startDate": "2021-02-20T10:23:22.188+0000",
    "departureCity": "Puteaux",
    "arrivalCity": "Verrières-le-Buisson",
    "departureAddress": "Pont de Puteaux, 92800 Puteaux",
    "arrivalAddress": "3 Rue Rimbaud, 91370 Verrières-le-Buisson", 
    "departurePostalCode": "92800",
    "arrivalPostalCode": "91370",
    "departureState": "Île-de-France",
    "arrivalState": "Île-de-France",
    "departureCountry": "France",
    "arrivalCountry": "France"
  },
  "occupantInfo": {
   "role": "DRIVER",
   "passengerProbability": 12,
   "passengerPredictionVersion": "1.0.0"
  }, 
  "tripAdviceData": {
    "id": "5da5b749e3f4d636f1f3376e",
    "title": "Conseil de sécurité",
    "message": "<br>Soit par surprise ou à cause d'un <b>dépassement de votre vitesse</b>, vous avez freiné fort à plusieurs reprises. En respectant bien les <b>distances de sécurité</b>, vous freinerez naturellement beaucoup plus progressivement et éviterez ainsi tous risques de collisions.<br>",
    "theme": 0,
    "adviceEvaluation": null
  },
  "tripAdvicesData": [
    {
      "id": "5da5b749e3f4d636f1f3376e",
      "title": "Conseil de sécurité",
      "message": "<br>Soit par surprise ou à cause d'un <b>dépassement de votre vitesse</b>, vous avez freiné fort à plusieurs reprises. En respectant bien les <b>distances de sécurité</b>, vous freinerez naturellement beaucoup plus progressivement et éviterez ainsi tous risques de collisions.<br>",
      "messageId": "sfty-urban-day-dry-D030-brk-v01",
      "theme": "SAFETY"
    },
    {
      "id": "5da5b8c3e3f4d6370219ab7d",
      "title": "Conseil d'éco-conduite",
      "message": "Vous pouvez progresser.<br>Accélérez plus franchement pour atteindre rapidement votre vitesse de croisière.<br>Pour les véhicules équipés d’une boîte de vitesses manuelle, il faut passer le rapport supérieur dès que l’aiguille du compte tours atteint 1500 tours/minute pour un véhicule Diesel et aux alentours de 2000 tours/minute pour un véhicule à essence.",
      "messageId": "eco-urban000-accW-v01",
      "theme": "ECODRIVING"
    }
  ],
  "driverDistraction": {
    "nbUnlock": 1,
    "durationUnlock": 97,
    "durationPercentUnlock": 4.86002640172576,
    "distanceUnlock": 403.68833585416337,
    "distancePercentUnlock": 2.5548277694713204,
    "score": 1.9159997325752993,
    "scoreUnlock": 6.7627283707197705,
    "scoreCall": 1.9159997325752993,
    "calls": [
      {
        "id": 0,
        "start": 544.0035407543182,
        "end": 634.0030286312103,
        "durationS": 89,
        "duration": 5,
        "distanceM": 456,
        "distance": 3,
        "status": "OUTGOING",
        "audioSystem": "SPEAKER",
        "forbidden": true
      }
    ]
  },
  "distractionEvents": [
    {
      "time": 539,
      "latitude": 48.85495,
      "longitude": 2.22616,
      "velocity": 12.168000411987304,
      "heading": -1.616703658463509,
      "elevation": 23.05337370577991,
      "distance": 3245.3746307904125,
      "type": 1,
      "duration": 97,
      "index": 539
    },
    {
      "time": 636,
      "latitude": 48.85034,
      "longitude": 2.22683,
      "velocity": 45.22616824022174,
      "heading": -1.3488582653419061,
      "elevation": 29.8860134067469,
      "distance": 3746.5653789286157,
      "type": 2,
      "duration": 1360,
      "index": 636
    }
  ],
  "callEvents": [
    {
      "time": 544.0035407543182,
      "latitude": 48.85475,
      "longitude": 2.22616,
      "velocity": 12.456000137329102,
      "heading": -1.5768984084633124,
      "elevation": 23.53374615925395,
      "distance": 0,
      "type": 3,
      "duration": 1,
      "index": 544,
      "audioSystem": "SPEAKER",
      "callType": "OUTGOING",
      "forbidden": true
    },
    {
      "time": 634.0030286312103,
      "latitude": 48.85059,
      "longitude": 2.22674,
      "velocity": 46.44316055270816,
      "heading": -1.3482454261409265,
      "elevation": 30.170426377189013,
      "distance": 456,
      "type": 4,
      "duration": 89,
      "index": 634,
      "audioSystem": "SPEAKER",
      "callType": "OUTGOING",
      "forbidden": true
    }
  ],
  "speedingEvents": [
    {
      "longitude": 2.240690719770278,
      "latitude": 48.87119316290749,
      "time": 96,
      "type": 1,
      "index": 36
    },
    {
      "longitude": 2.2389993413999454,
      "latitude": 48.87022711541927,
      "time": 106,
      "type": 0,
      "index": 39
    },
    {
      "longitude": 2.226948759849819,
      "latitude": 48.8285248546614,
      "time": 899,
      "type": 1,
      "index": 220
    },
    {
      "longitude": 2.2247798257606703,
      "latitude": 48.82771252373621,
      "time": 910,
      "type": 0,
      "index": 229
    },
    {
      "longitude": 2.220820796904408,
      "latitude": 48.790306020720436,
      "time": 1121.87393116951,
      "type": 1,
      "index": 374
    },
    {
      "longitude": 2.222806342988146,
      "latitude": 48.781090574187054,
      "time": 1158.87393116951,
      "type": 0,
      "index": 409
    },
    {
      "longitude": 2.221726988867627,
      "latitude": 48.776698917142845,
      "time": 1181.87393116951,
      "type": 1,
      "index": 428
    },
    {
      "longitude": 2.221415682498137,
      "latitude": 48.77728241347195,
      "time": 1198.87393116951,
      "type": 0,
      "index": 449
    },
    {
      "longitude": 2.2259807317602576,
      "latitude": 48.77630605611952,
      "time": 1222.87393116951,
      "type": 1,
      "index": 472
    },
    {
      "longitude": 2.229023362169593,
      "latitude": 48.77273423930304,
      "time": 1252.87393116951,
      "type": 0,
      "index": 499
    },
    {
      "longitude": 2.2291619672238197,
      "latitude": 48.77164365290039,
      "time": 1259.87393116951,
      "type": 1,
      "index": 502
    },
    {
      "longitude": 2.229596580809962,
      "latitude": 48.76831710988511,
      "time": 1281.87393116951,
      "type": 0,
      "index": 525
    }
  ],
  "speedingStatistics": {
    "distance": 15857,
    "duration": 1727,
    "speedingDistance": 1956,
    "speedingDuration": 105,
    "score": 4.82,
    "speedLimitContexts": [
      {
        "speedLimit": 30,
        "distance": 966,
        "duration": 138,
        "speedingDistance": 188,
        "speedingDuration": 16,
        "score": 1.09
      },
      {
        "speedLimit": 50,
        "distance": 11115,
        "duration": 1367,
        "speedingDistance": 1112,
        "speedingDuration": 65,
        "score": 3
      },
      {
        "speedLimit": 70,
        "distance": 1504,
        "duration": 95,
        "speedingDistance": 0,
        "speedingDuration": 0,
        "score": 10
      },
      {
        "speedLimit": 80,
        "distance": 655,
        "duration": 62,
        "speedingDistance": 0,
        "speedingDuration": 0,
        "score": 10
      },
      {
        "speedLimit": 90,
        "distance": 1617,
        "duration": 65,
        "speedingDistance": 656,
        "speedingDuration": 24,
        "score": 0
      }
    ]
  },
  "vehicle": {
    "typeIndex": 2,
    "engineIndex": 1,
    "power": 95,
    "mass": 1270,
    "engineDisplacement": 1368,
    "gearboxIndex": 3,
    "consumption": 6.4,
    "autoGearboxNumber": 0,
    "vehicleId": "dq_5d448140a7b11b00070db354",
    "brand": "Fiat",
    "model": "Tipo 2",
    "version": "II 1.4 95 5P",
    "year": 2016,
    "declaredCarConsumption": -1,
    "carPassengers": 1,
    "dqIndex": "FiTi2016FT1P0095N005",
    "frontTyreSize": "195/65/15",
    "rearTyreSize": "195/65/15",
    "length": 4.36,
    "width": 1.79,
    "height": 1.49,
    "engineCylinderNb": 4,
    "driveWheels": 0,
    "extraData": {
      "declaredYear": "2014",
      "declaredConsumption": "6,8"
    },
    "statistics": {
      "distance": 17125.132999999994,
      "analyzedDistance": 6522.418999999997,
      "estimatedYearDistance": 5879.961500000001
    }
  },
  "username": "firstname.lastname@drivequant.com",
  "sampledRoute": {
    "time": [
      0,
      2,
      3,
      "//... 1994.87393116951",
      1995.87393116951
    ],
    "latitude": [
      48.87772619263164,
      48.877613119537884,
      48.877562954154385,
      "// ... 48.73911801732323",
      48.739126730485275
    ],
    "longitude": [
      2.2432564571520714,
      2.243406746064082,
      2.243463827807432,
      "// ... 2.239377922358742",
      2.239456314545016
    ],
    "velocity": [
      31.068000411987306,
      28.385972396534353,
      24.6599490503239,
      "//... 21.724866902673966",
      16.10954535584897
    ],
    "velocityLimits": [
      30,
      30,
      30,
      "//... 50",
      50
    ],
    "heading": [
      137.95486114769494,
      136.72651816499405,
      136.7328576980442,
      "//... 232.56937544415268",
      230.3544309580917
    ],
    "distance": [
      0,
      15.769984664741308,
      22.619970512053502,
      "//... 15802.981461128833",
      15807.456334838791
    ],
    "elevation": [
      27.177746203612408,
      27.62722660817797,
      27.984814573173303,
      "//... 66.78256729513335",
      66.79191671802205
    ]
  },
  "vehicleStops": [
    {
      "time": 20.0009999275208,
      "latitude": 48.877169941009676,
      "longitude": 2.244076446951414,
      "heading": 132.48435917284843,
      "elevation": 34.03918631453839,
      "distance": 85.1159528188692,
      "stopDuration": 66
    }
  ],
  "smartphoneData": {
    "phoneModel": "iPhone 6s",
    "appBuildNumber": "4.18.8",
    "osVersion": "14.3",
    "osType": "iOS",
    "sdkVersion": "1.9.1",
    "uid": null,
    "gpsDate": "2021-02-20T10:56:37.188+0000",
    "phoneDate": "2021-02-20T11:00:40.572+0000",
    "startMode": 4,
    "batteryPercent": 36,
    "tripCut": false,
    "bluetoothEnabled": false
  },
  "matchedRoute": {
    "latitude": [
      48.8778,
      48.87775,
      48.87763,
      "//... 48.73876",
      48.73891
    ],
    "longitude": [
      2.24338,
      2.24345,
      2.24361,
      "//... 2.23991",
      2.24093
    ]
  },
  "energyEstimation": {
    "energy": 0,
    "energyConsumption": 0,
    "energyOpti": 0,
    "energyOptiConsumption": 0
  },
  "advancedEnergyEstimation": [
    {
      "contextId": 0,
      "distance": 6.9,
      "duration": 19.1,
      "energy": 0,
      "energyConsumption": 0,
      "energyOpti": 0,
      "energyOptiConsumption": 0
    },
    {
      "contextId": 1,
      "distance": 3.7,
      "duration": 6.5,
      "energy": 0,
      "energyConsumption": 0,
      "energyOpti": 0,
      "energyOptiConsumption": 0
    },
    {
      "contextId": 2,
      "distance": 64.8,
      "duration": 61.8,
      "energy": 0,
      "energyConsumption": 0,
      "energyOpti": 0,
      "energyOptiConsumption": 0
    },
    {
      "contextId": 3,
      "distance": 12.7,
      "duration": 7.8,
      "energy": 0,
      "energyConsumption": 0,
      "energyOpti": 0,
      "energyOptiConsumption": 0
    },
    {
      "contextId": 4,
      "distance": 11.8,
      "duration": 4.9,
      "energy": 0,
      "energyConsumption": 0,
      "energyOpti": 0,
      "energyOptiConsumption": 0
    }
  ],
  "processingDate": "2025-01-30T11:00:40.572+0000",
  "weather": {
        "code": 2,
        "condition": "Cloudy",
        "provider": "OpenWeatherMap",
        "providerCode": 804,
        "providerCondition": "overcast clouds",
        "temperature": 7.9,
        "windSpeed": 4.63,
        "windDegree": 290,
        "pressure": 1015,
        "precipitation": 0.0,
        "humidity": 94,
        "cloud": 100,
        "visibility": 10000,
        "sunset": "2025-01-30T16:44:17.000+0000",
        "sunrise": "2025-01-30T07:23:22.000+0000"
    },
    "installationId": "9cc02aaa-92b4-cbd2-73fb-3dda6243dddf"
}
```

{% endcode %}

</details>

## Service to get a sample message

To facilitate the validation of your data ingestion service for the **Trip Push 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](https://drivequant.stoplight.io/docs/drivequant-public/c06948a159692-push-trip-data-request).

## Push trip data request

> This service returns the body of the push trip data request that DriveQuant would send to the customer push data service for a given trip.

```json
{"openapi":"3.1.0","info":{"title":"Push","version":"1.0"},"servers":[{"url":"https://service.drivequant.com/v3","description":"Prod"}],"security":[{"API_Key":[]}],"components":{"securitySchemes":{"API_Key":{"name":"DriveKit-Admin-API-Key","type":"apiKey","in":"header"}},"schemas":{"PushTripDataResponse":{"title":"PushTripDataResponse","type":"object","properties":{"itinId":{"type":"string","description":"Trip unique identifier"},"firstname":{"type":"string","description":"Firstname of the user"},"lastname":{"type":"string","description":"Lastname of the user"},"itineraryStatistics":{"$ref":"#/components/schemas/ItineraryStatistics"},"ecoDriving":{"$ref":"#/components/schemas/EcoDriving"},"fuelEstimation":{"$ref":"#/components/schemas/FuelEstimation"},"safety":{"$ref":"#/components/schemas/Safety"},"advancedEcoDriving":{"type":"object","properties":{"ecoDrivingContext":{"type":"array","items":{"$ref":"#/components/schemas/EcoDrivingContext"}}}},"advancedFuelEstimation":{"type":"object","properties":{"fuelEstimationContext":{"type":"array","items":{"$ref":"#/components/schemas/FuelEstimationContext"}}}},"advancedSafety":{"type":"object","properties":{"safetyContext":{"type":"array","items":{"$ref":"#/components/schemas/SafetyContext"}}}},"pollutants":{"$ref":"#/components/schemas/Pollutants"},"tireWear":{"$ref":"#/components/schemas/TireWear"},"brakeWear":{"$ref":"#/components/schemas/BrakeWear"},"safetyEvents":{"type":"array","items":{"$ref":"#/components/schemas/SafetyEvents"}},"endDate":{"type":"string","description":"Trip end date. Example : 2017-09-07T08:00:00.000+0200"},"itineraryData":{"$ref":"#/components/schemas/ItineraryData"},"driverDistraction":{"$ref":"#/components/schemas/DriverDistraction"},"vehicle":{"$ref":"#/components/schemas/Vehicle"},"username":{"type":"string","description":"Driver's username (userId)"},"sampledRoute":{"$ref":"#/components/schemas/SampledRoute"},"vehicleStops":{"type":"array","items":{"$ref":"#/components/schemas/VehicleStops"}},"beacon":{"$ref":"#/components/schemas/Beacon"},"distractionEvents":{"type":"array","items":{"$ref":"#/components/schemas/DistractionEvents"}},"smartphoneData":{"$ref":"#/components/schemas/SmartphoneData"},"speedingStatistics":{"$ref":"#/components/schemas/SpeedingStatistics"},"bluetoothDeviceData":{"$ref":"#/components/schemas/BluetoothDeviceData"},"tripAdviceData":{"$ref":"#/components/schemas/TripAdviceData"},"tripAdvicesData":{"type":"array","items":{"$ref":"#/components/schemas/TripAdvicesData"}},"metaData":{"type":"object","description":"MetaData sent via Trip API or DriveKit mobile SDK. Key/value object where keys and values are String type.\n\nExample: \n   \"metaData\" : {\n\t\t\"customerStringData\" : \"This is customer first metaData\",\n\t\t\"customerJsonData\" : \"{\\\"testNumber\\\" : 1, \\\"testString\\\" : \\\"My text\\\"}\"\n      }\n"},"callEvents":{"type":"array","items":{"$ref":"#/components/schemas/CallEvent"}},"speedingEvents":{"type":"array","items":{"$ref":"#/components/schemas/SpeedingEvents"}},"energyEstimation":{"$ref":"#/components/schemas/EnergyEstimation"},"advancedEnergyEstimation":{"type":"array","items":{"$ref":"#/components/schemas/EnergyEstimationContext"}},"matchedRoute":{"$ref":"#/components/schemas/MatchedRoute"},"weather":{"$ref":"#/components/schemas/WeatherData"},"challengeIds":{"type":"array","description":"List of challenges identifiers","items":{"type":"string"}}}},"ItineraryStatistics":{"title":"itineraryStatistics","description":"Provides several indicators that characterize the trip conditions","type":"object","properties":{"tripDuration":{"type":"number","description":"Total trip duration in second"},"drivingDuration":{"type":"number","description":"Vehicle movement duration in second"},"idlingDuration":{"type":"number","description":"Total duration of idling phases (vehicle stopped) in second"},"drivingPercentage":{"type":"number","description":"Percentage of vehicle movement"},"idlingPercentage":{"type":"number","description":"Percentage of idling phases"},"distance":{"type":"number","description":"Distance travelled in meter"},"speedMean":{"type":"number","description":"Mean vehicle speed in km/h"},"subdispNb":{"type":"number","description":"Number of sub-displacements detected during the trip"},"meteo":{"type":"integer","description":"Weather code :\n0: Unknown\n1: Clear sky\n2: Cloudy\n3: Foggy\n4: Rainy\n5: Snowy\n6: Icy"},"day":{"type":"boolean","description":"true if day, false if night"},"weekDay":{"type":"boolean","description":"true: Monday to Friday, false: Saturday to Sunday"},"transportationMode":{"type":"integer","description":"Transportation mode:\n0: Unknown\n1: Passenger car\n2: Motorcycle\n3: Heavy-duty vehicle\n4: Bus\n5: Coach\n6: Rail trip\n7: Boat trip\n8: Bike trip\n9: Plane\n10: Ski"}}},"EcoDriving":{"title":"EcoDriving","type":"object","description":"Performs an analysis of the entire trip, characterized by a succession of events and road segments","properties":{"score":{"type":"number","description":"Eco-driving score (min: 0, max: 10). If trip is too short to be scored, score is set to 11."},"scoreAccel":{"type":"number","description":"Score of the acceleration phases. If trip is too short to be scored, score is set to 6."},"scoreMain":{"type":"number","description":"Score of the stabilized speed phases. If trip is too short to be scored, score is set to 6."},"scoreDecel":{"type":"number","description":"Score of the deceleration phases. If trip is too short to be scored, score is set to 6."},"stdDevAccel":{"type":"number","description":"Standard deviation of acceleration score"},"stdDevMain":{"type":"number","description":"Standard deviation of stabilized speed score"},"stdDevDecel":{"type":"number","description":"Standard deviation of deceleration score"},"energyClass":{"type":"integer","description":"The energy class « energyClass » depends on the average fuel consumption of the vehicle. It positions the trip fuel consumption with respect to the average consumption of the vehicle."}}},"FuelEstimation":{"title":"FuelEstimation","description":"Estimates the fuel consumption of the entire trip","type":"object","properties":{"co2Mass":{"type":"number","description":"Total Mass of CO2 in kg"},"co2Emission":{"type":"number","description":"Total Mass of CO2 per unit of distance in g/km"},"fuelVolume":{"type":"number","description":"Total fuel consumption in liter"},"fuelConsumption":{"type":"number","description":"Total fuel consumption per unit of distance in l/100km"},"idleFuelVolume":{"type":"number","description":"Fuel consumption during idling in liter"},"idleFuelPercentage":{"type":"number","description":"Percentage of the fuel consumption during idling"},"idleFuelConsumption":{"type":"number","description":"Fuel consumption during idling in l/h"},"idleCo2Emission":{"type":"number","description":"Mass of CO2 per unit of distance during idling in kg/h"},"idleCo2Mass":{"type":"number","description":"Mass of CO2 during idling in kg"},"engineTempStatus":{"type":"boolean","description":"Engine temperature state at the beginning of the trip: (true) cold start, (false) warm engine\nWhen the engine is cold a fuel penalty is added to the trip fuel consumption"},"coldFuelVolume":{"type":"number","description":"Additional fuel consumption caused by the cold engine operation in liter"}}},"Safety":{"type":"object","description":"Performs an analysis of the entire trip and provides a safety score","properties":{"nbAdh":{"type":"integer","description":"Number of adherence threshold crossing"},"nbAccel":{"type":"integer","description":"Number of strong accelerations"},"nbDecel":{"type":"integer","description":"Number of strong decelerations"},"nbAdhCrit":{"type":"integer","description":"Number of adherence threshold crossing (critical)"},"nbAccelCrit":{"type":"integer","description":"Number of critical accelerations (critical)"},"nbDecelCrit":{"type":"integer","description":"Number of critical decelerations (critical)"},"safetyScore":{"type":"number","description":"Safety score (ranges from 3 to 10)"}}},"EcoDrivingContext":{"title":"EcoDrivingContext","type":"object","properties":{"contextId":{"type":"integer","description":"Road conditions:\n0: Traffic jam\n1: Heavy urban traffic\n2: City\n3: Suburban\n4: Expressways","enum":[0,1,2,3,4]},"distance":{"type":"number","description":"Percentage of distance travelled in a road type"},"duration":{"type":"number","description":"Percentage of elapsed time in a road type"},"efficiencyScore":{"type":"number","description":"Eco-driving score"},"scoreAccel":{"type":"number","description":"Score of the acceleration phases"},"scoreMain":{"type":"number","description":"Score of the stabilized speed phases"},"scoreDecel":{"type":"number","description":"Score of the deceleration phases"}}},"FuelEstimationContext":{"title":"FuelEstimationContext","type":"object","properties":{"contextId":{"type":"integer","description":"Road conditions:\n0 - Traffic jam\n1 - Heavy urban traffic\n2 - City\n3 - Suburban\n4 - Expressways"},"distance":{"type":"number","description":"Percentage of distance travelled in a road type"},"duration":{"type":"number","description":"Percentage of elapsed time in a road type"},"co2Mass":{"type":"number","description":"Total Mass of CO2 in kg"},"co2Emission":{"type":"number","description":"Total Mass of CO2 per unit of distance in g/km"},"fuelVolume":{"type":"number","description":"Total fuel consumption in liter"},"fuelConsumption":{"type":"number","description":"Total fuel consumption per unit of distance in l/100km"}}},"SafetyContext":{"title":"SafetyContext","type":"object","properties":{"contextId":{"type":"integer","description":"Road conditions:\n0 - Traffic jam\n1 - Heavy urban traffic\n2 - City\n3 - Suburban\n4 - Expressways"},"distance":{"type":"number","description":"Percentage of distance travelled in a road type"},"duration":{"type":"number","description":"Percentage of elapsed time in a road type"},"nbAdh":{"type":"integer","description":"Number of adherence threshold crossing"},"nbAccel":{"type":"integer","description":"Number of strong accelerations"},"nbDecel":{"type":"integer","description":"Number of strong decelerations"},"nbAdhCrit":{"type":"integer","description":"Number of adherence threshold crossing (critical)"},"nbAccelCrit":{"type":"integer","description":"Number of critical accelerations (critical)"},"nbDecelCrit":{"type":"integer","description":"Number of critical decelerations (critical)"},"safetyScore":{"type":"number","description":"Safety score (ranges from 3 to 10)"}}},"Pollutants":{"title":"Pollutants","type":"object","properties":{"co":{"type":"number","description":"Carbon monoxide (CO) emissions expressed in mg/km"},"hc":{"type":"number","description":"Hydrocarbons (HC) emissions expressed in mg/km"},"nox":{"type":"number","description":"Nitrogen oxide emissions (NOx) expressed in mg/km"},"soot":{"type":"number","description":"Soot emissions expressed in mg/km"}}},"TireWear":{"title":"TireWear","type":"object","properties":{"frontTireWear":{"type":"integer","description":"Worn mass fraction of the front tires (right/ left) for current trip\nUnit : thousandths part of ppm = ppb","minimum":0,"maximum":10000000000},"rearTireWear":{"type":"integer","description":"Worn mass fraction of the rear tires (right/left) for current trip\nUnit : thousandths part of ppm = ppb","minimum":0,"maximum":10000000000},"frontTireDistance":{"type":"integer","description":"Total distance analyzed for the front tires (in km)","minimum":0,"maximum":10000000},"rearTireDistance":{"type":"integer","description":"Total distance analyzed for the rear tires (in km)","minimum":0,"maximum":10000000},"frontTireAutonomy":{"type":"integer","description":"Front tires remaining distance before change (in km)","minimum":0,"maximum":10000000},"rearTireAutonomy":{"type":"integer","description":"Rear tires remaining distance before change (in km)","minimum":0,"maximum":10000000},"frontTireTotalWear":{"type":"number","description":"Total worn mass percentage of the front tires (right/left)","minimum":0,"maximum":100},"rearTireTotalWear":{"type":"number","description":"Total worn mass percentage of the rear tires (right/left)","minimum":0,"maximum":100},"frontTireWearRate":{"type":"number","description":"Average wear rate for the front tires (in %/1000 km )"},"rearTireWearRate":{"type":"number","description":"Average wear rate for the rear tires (in %/1000 km )"}}},"BrakeWear":{"title":"BrakeWear","type":"object","properties":{"frontBrakePadWear":{"type":"integer","description":"Worn mass fraction of the front brakes (right/left) for current trip\nUnit : thousandths part of ppm = ppb","minimum":0,"maximum":10000000000},"rearBrakePadWear":{"type":"integer","description":"Worn mass fraction of the rear brakes (right/left) for current trip\nUnit : thousandths part of ppm = ppb","minimum":0,"maximum":10000000000},"frontBrakeDistance":{"type":"integer","description":"Total distance analyzed for the front brakes (in km)","minimum":0,"maximum":10000000},"rearBrakeDistance":{"type":"integer","description":"Total distance analyzed for the rear brakes (in km)","minimum":0,"maximum":10000000},"frontBrakeAutonomy":{"type":"integer","description":"Front brakes remaining distance before change (in km)","minimum":0,"maximum":10000000},"rearBrakeAutonomy":{"type":"integer","description":"Rear brakes remaining distance before change (in km)","minimum":0,"maximum":10000000},"frontBrakeTotalWear":{"type":"number","description":"Total worn mass percentage of the front brakes (right/left)","minimum":0,"maximum":100},"rearBrakeTotalWear":{"type":"number","description":"Total worn mass percentage of the rear brakes (right/left)","minimum":0,"maximum":100},"frontBrakeWearRate":{"type":"number","description":"Average wear rate for the rear brakes (in %/1000 km)"},"rearBrakeWearRate":{"type":"number","description":"Average wear rate for the rear brakes (in %/1000 km)"}}},"SafetyEvents":{"title":"SafetyEvents","type":"object","properties":{"time":{"type":"number","description":"Time since the beginning of the trip in second"},"longitude":{"type":"number","description":"Longitude in degree"},"latitude":{"type":"number","description":"Latitude in degree"},"velocity":{"type":"number","description":"Vehicle speed in km/h"},"heading":{"type":"number","description":"Vehicle heading in degree"},"elevation":{"type":"number","description":"Altitude in meter"},"distance":{"type":"number","description":"Distance travelled since the beginning of the trip in meter"},"type":{"type":"integer","description":"Type of event\n    1. Adherence\n    2. Acceleration\n    3. Braking","enum":[1,2,3]},"level":{"type":"integer","description":"Intensity related to the event\n    1. Strong\n    2. Harsh","enum":[1,2]},"value":{"type":"number","description":"Absolute value of the event:\nin m/s2 for acceleration and braking events\nnormalized between 0 and 1 for the adherence events"}}},"ItineraryData":{"title":"ItineraryData","type":"object","description":"Trip main information","properties":{"endDate":{"type":"string","description":"Trip end date. Example : 2017-09-07T08:00:00.000+0200"},"startDate":{"type":"string","description":"Trip start date. Example : 2017-09-07T08:00:00.000+0200"},"departureCity":{"type":"string","description":"Name of the departure city"},"arrivalCity":{"type":"string","description":"Name of the arrival city"},"departureAddress":{"type":"string","description":"Departure full address"},"arrivalAddress":{"type":"string","description":"Arrival full address"},"timezoneOffset":{"type":"string","description":"Timezone offset"}}},"DriverDistraction":{"title":"DriverDistraction","type":"object","properties":{"nbUnlock":{"type":"integer","description":"Number of phone screen unlock events"},"durationUnlock":{"type":"number","description":"Duration with unlocked phone in second"},"durationPercentUnlock":{"type":"number","description":"Relative duration traveled with the screen unlocked (in %)"},"distanceUnlock":{"type":"number","description":"Distance with unlocked phone in meter"},"distancePercentUnlock":{"type":"number","description":"Relative distance traveled with the screen unlocked (in %)"},"score":{"type":"number","description":"Phone distraction score\nIs the minimum score between scoreUnlock and scoreCall\n(Min. value = 0, Max. value = 10)"},"scoreUnlock":{"type":"number","description":"Distraction score which takes into account the number of locking/unlocking"},"scoreCall":{"type":"number","description":"Distraction score which takes into account the number of calls during the trip"},"calls":{"type":"array","items":{"$ref":"#/components/schemas/Call"}}}},"Call":{"description":"","type":"object","title":"","properties":{"id":{"type":"number"},"start":{"type":"number","description":"Seconds from beginning of the trip when call starts"},"end":{"type":"number","description":"Seconds from beginning of the trip when call ends"},"durationS":{"type":"number","description":"Duration of the event (s)"},"duration":{"type":"number","description":"Relative call duration"},"distanceM":{"type":"number","description":"istance travelled since the beginning of the trip (m)"},"distance":{"type":"number","description":"Relative call distance"},"status":{"type":"string","minLength":1,"description":"INCOMING : incoming call\nOUTGOING : outgoing call\nUNKNOWN : unknown call status","enum":["INCOMING","OUTGOING","UNKNOWN"]},"audioOutput":{"type":"string","minLength":1,"description":"Phone’s audio output"},"audioInput":{"type":"string","minLength":1,"description":"Phone’s audio input"},"audioName":{"type":"string","minLength":1,"description":"Name of the Bluetooth audio system"},"bluetoothClass":{"type":"number","description":"Class of the Bluetooth audio system\nOnly used in Android, defined Bluetooth device type."},"forbidden":{"type":"boolean","description":"true if the call audio type is : SPEAKER, LOUDSPEAKER or HEADPHONE\nfalse otherwise"},"audioSystem":{"type":"string","description":"Audio system used to make the call","enum":["SPEAKER","LOUDSPEAKER","A2DP","HANDSFREE","HEADPHONE","CAR_AUDIO","UNKNOWN"]}}},"Vehicle":{"title":"Vehicle","type":"object","properties":{"typeIndex":{"type":"integer","enum":[1,2,3,4,5,6,7,8,9,200,201,202,203,204,205],"description":"Vehicle body type :\n1: Compact\n2: Sedan\n3: Luxury vehicle\n4: Estate car\n5: Minivan\n6: 4x4, SUV\n7: Sports car\n8: Convertible\n9: Commercial vehicle\n200: 2-axle trailer\n201: 3-axle trailer\n202: 4-axle trailer\n203: 2-axle tractor\n204: 3-axle tractor\n205: 4-axle tractor","default":1},"engineIndex":{"type":"integer","description":"Engine type:\n1: Gasoline\n2: Diesel\n3: Electric vehicle\n4: Gasoline-electric hybrid\n5: Diesel-electric hybrid","default":1,"maximum":5},"power":{"type":"number","description":"Vehicle power in hp. This value must be entered in horsepower. In case you only have the engine power in kW you can apply the following formula: P [hp] = P [kW] / 0.7355P[hp]","default":150,"minimum":40,"maximum":600},"mass":{"type":"number","description":"Vehicle mass in kg","default":1400,"minimum":700,"maximum":44000},"engineDisplacement":{"type":"number","description":"Vehicle's engine displacement (in cm3)"},"gearboxIndex":{"type":"integer","description":"Gearbox type:\n1: Automatic\n2: Manual 5-speed\n3: Manual 6-speed\n4: Manual 7-speed\n5: Manual 8-speed","default":2,"maximum":12},"consumption":{"type":"number","description":"Combined fuel consumption (in l/100km) measured during the New European Driving Cycle (NEDC)","default":4.5,"minimum":3,"maximum":60},"autoGearboxNumber":{"type":"integer","description":"Number of gear ratios for the automatic gearbox. This parameter is taken into account only if carGearboxIndex is set to 1"},"vehicleId":{"type":"string","description":"Vehicle unique identifier"},"brand":{"type":"string","description":"Brand of the vehicle"},"model":{"type":"string","description":"Model of the vehicle"},"version":{"type":"string","description":"Vehicle model's version"},"year":{"type":"integer","description":"Vehicle year"},"declaredCarConsumption":{"type":"number","description":"Car consumption declared by the driver (in l/100km)"},"carPassengers":{"type":"integer"},"dqIndex":{"type":"string","description":"DriveQuant unique identifier"},"frontTyreSize":{"type":"string","description":"Front tyre size"},"rearTyreSize":{"type":"string","description":"Rear tyre size"},"length":{"type":"number","description":"Vehicle length (in m)","minimum":2.5,"maximum":12},"width":{"type":"number","description":"Vehicle width (in m)","minimum":1.4,"maximum":2.6},"height":{"type":"number","description":"Vehicle height (in m)","minimum":1,"maximum":4},"engineCylinderNb":{"type":"integer","description":"Number of cylinders"},"driveWheels":{"type":"integer","description":"drive wheels type\n0 - Front-wheel drive\n1 - Rear-wheel drive\n2 - Four-wheel drive"},"extraData":{"type":"object","description":"Extra data of the client"},"statistics":{"type":"object","properties":{"distance":{"type":"number","description":"Total vehicle mileage"},"analyzedDistance":{"type":"number","description":"Analyzed distance"},"estimatedYearDistance":{"type":"number","description":"Yearly vehicle mileage's estimate"}}}}},"SampledRoute":{"title":"SampledRoute","type":"object","description":"Recorded GPS data","properties":{"time":{"type":"array","description":"Vector of time","items":{"type":"integer"}},"latitude":{"type":"array","description":"Vector of latitude in degree","items":{"type":"number"}},"longitude":{"type":"array","description":"Vector of longitude in degree","items":{"type":"number"}},"velocity":{"type":"array","description":"Vector of vehicle speed in km/h","items":{"type":"number"}},"velocityLimits":{"type":"array","description":"Vector of computed speed limits in km/h","items":{"type":"number"}},"heading":{"type":"array","description":"Vector of vehicle heading in degree","items":{"type":"number"}},"distance":{"type":"array","description":"Vector of distance","items":{"type":"number"}},"elevation":{"type":"array","description":"Vector of altitude in meter","items":{"type":"number"}}}},"VehicleStops":{"title":"VehicleStops","type":"object","properties":{"time":{"type":"number","description":"Time since the beginning of the trip in second"},"latitude":{"type":"number","description":"Latitude in degree"},"longitude":{"type":"number","description":"Longitude in degree"},"heading":{"type":"number","description":"Vehicle heading in degree"},"elevation":{"type":"number","description":"Altitude in meter"},"distance":{"type":"number","description":"Distance travelled since the beginning of the trip in meter"},"stopDuration":{"type":"number","description":"Stop duration"}}},"Beacon":{"title":"Beacon","type":"object","properties":{"proximityUuid":{"type":"string","description":"Beacon proximity UUID (Universally Unique Identifier)"},"major":{"type":"integer","description":"Beacon major value"},"minor":{"type":"integer","description":"Beacon minor value"}}},"DistractionEvents":{"title":"DistractionEvents","type":"object","properties":{"time":{"type":"number","description":"Time since the beginning of the trip in second"},"latitude":{"type":"number","description":"Latitude in degree"},"longitude":{"type":"number","description":"Longitude in degree"},"velocity":{"type":"number","description":"Vehicle speed in km/h"},"heading":{"type":"number","description":"Vehicle heading in degree"},"elevation":{"type":"number","description":"Altitude in meter"},"distance":{"type":"number","description":"Distance travelled since the beginning of the trip in meter"},"type":{"type":"integer","description":"Type of event : (1) Screen ON and (2) Screen OFF"},"duration":{"type":"number","description":"Duration of the trip since the beginnin in second"},"index":{"type":"integer"}}},"SmartphoneData":{"title":"SmartphoneData","type":"object","description":"","properties":{"phoneModel":{"type":"string","description":"Phone model"},"appBuildNumber":{"type":"string","description":"Build version number"},"osVersion":{"type":"string","description":"Version of the OS"},"osType":{"type":"string","description":"OS type (Android or iOS)"},"sdkVersion":{"type":"string","description":"Version of the SDK"},"uid":{"description":"deprecated value","type":"string","nullable":true},"gpsDate":{"type":"string","description":"GPS date, example format: 2020-10-06T08:47:29.999+0000"},"phoneDate":{"type":"string","description":"Phone date, example format:2020-10-06T08:47:30.211+0000"},"startMode":{"type":"integer","description":"Indicates how the trip is started:\n 1: GPS\n 2: BEACON\n 3: MANUAL\n 4: GEOZONE\n 5: BLUETOOTH\n 6: UNKNOWN_BLUETOOTH\n 7: BICYCLE_ACTIVITY"},"batteryPercent":{"type":"number","description":"Phone battery percentage"},"tripCut":{"type":"boolean","description":"true if the trip was cut, otherwise false"},"bluetoothEnabled":{"type":"boolean","description":"true if the Bluetooth parameter is enabled"}}},"SpeedingStatistics":{"title":"SpeedingStatistics","type":"object","properties":{"distance":{"type":"integer","description":"trip distance in meter"},"duration":{"type":"integer","description":"trip duration in second"},"speedingDistance":{"type":"integer","description":"Distance travelled at a speed above the limit in meter"},"speedingDuration":{"type":"integer","description":"Duration spent at a speed above the limit in second"},"score":{"type":"number","description":"Speeding score"},"speedLimitContexts":{"type":"array","items":{"$ref":"#/components/schemas/SpeedLimitContexts"}}}},"SpeedLimitContexts":{"title":"SpeedLimitContexts","type":"object","properties":{"speedLimit":{"type":"integer","description":"Speed limit (in km/h) for the portion of the trip"},"distance":{"type":"integer","description":"Total distance (in m) for the portion of the trip limited at the speed limit value"},"duration":{"type":"integer","description":"Total duration (in s) for the portion of the trip limited at the speed limit value"},"speedingDistance":{"type":"integer","description":"Distance travelled at a speed above the limit (in m) within the speed limit portion"},"speedingDuration":{"type":"integer","description":"Duration spent at a speed above the limit (in s) within the speed limit portion"},"score":{"type":"number","description":"Speeding score for a given speed limit portion "}}},"BluetoothDeviceData":{"title":"BluetoothDeviceData","type":"object","properties":{"macAddress":{"type":"string","description":"Bluetooth device MAC address"},"name":{"type":"string","description":"Bluetooth device public name"}}},"TripAdviceData":{"title":"TripAdviceData","type":"object","properties":{"id":{"type":"string","description":"Advice unique identifier"},"title":{"type":"string","description":"Advice title"},"message":{"type":"string","description":"Advice message"},"theme":{"type":"integer","description":"Advice theme"}}},"TripAdvicesData":{"title":"TripAdvicesData","type":"object","properties":{"id":{"type":"string","description":"Advice unique identifier"},"title":{"type":"string","description":"Advice title"},"message":{"type":"string","description":"Advice message content"},"messageId":{"type":"string","description":"Message unique identifier"},"theme":{"type":"string","description":"Advice theme (SAFETY or ECODRIVING)"}}},"CallEvent":{"description":"Information about calls event during the trip","type":"object","properties":{"time":{"type":"number","description":"Time since the beginning of the trip (s)"},"latitude":{"type":"number","description":"Latitude (deg)"},"longitude":{"type":"number","description":"Longitude (deg)"},"velocity":{"type":"number","description":"Vehicle speed (km/h)"},"heading":{"type":"number","description":"Vehicle heading (deg)"},"elevation":{"type":"number","description":"Altitude (m)"},"distance":{"type":"number","description":"Distance travelled since the beginning of the trip (m)"},"type":{"description":"Distance travelled since the beginning of the trip\n3 : Beginning of a call\n4 : End of a call","type":"integer"},"duration":{"type":"number","description":"Duration of the event (s)"},"audioSystem":{"description":"Audio system used to make the call","enum":["SPEAKER","LOUDSPEAKER","A2DP","HANDSFREE","HEADPHONE","CAR_AUDIO","UNKNOWN"],"type":"string"},"callType":{"type":"string","description":"call type","enum":["INCOMING","OUTGOING","UNKNOWN"]},"forbidden":{"type":"boolean","description":"true if the call audio type is : SPEAKER, LOUDSPEAKER or HEADPHONE\nfalse otherwise"},"index":{"description":"Position of the beginning of the event  in the route date (phone call beginning of phone unlocking)","type":"integer"}}},"SpeedingEvents":{"title":"SpeedingEvents","type":"object","properties":{"time":{"type":"number","description":"Time since the beginning of the trip in second"},"longitude":{"type":"number","description":"Longitude in degree"},"latitude":{"type":"number","description":"Latitude in degree"},"type":{"type":"number","description":"Type of event : 1 = beginning of the overspeeding, 0 = end of the overspeeding"},"index":{"type":"integer","description":"Position of the event in the matched route"}}},"EnergyEstimation":{"title":"EnergyEstimation","type":"object","properties":{"energy":{"type":"number","description":"Estimated energy in kWH"},"energyOpti":{"type":"number","description":"Optimal energy in kWH"},"energyConsumption":{"type":"number","description":"Estimated energy consumption in kWH/100km"},"energyOptiConsumption":{"type":"number","description":"Optimal energy consumption in kWH/100km"}}},"EnergyEstimationContext":{"title":"EnergyEstimationContext","type":"object","properties":{"contextId":{"type":"integer","description":"Road conditions"},"distance":{"type":"number","description":"Percentage of distance travelled in a road type"},"duration":{"type":"number","description":"Percentage of elapsed time in a road type"},"energy":{"type":"number","description":"Estimated energy in kWH"},"energyOpti":{"type":"number","description":"Optimal energy in kWH"},"energyConsumption":{"type":"number","description":"Estimated energy consumption in kWH/100km"},"energyOptiConsumption":{"type":"number","description":"Optimal energy in kWH/100km"}}},"MatchedRoute":{"title":"MatchedRoute","type":"object","properties":{"latitude":{"type":"array","items":{"type":"number"}},"longitude":{"type":"array","items":{"type":"number"}}}},"WeatherData":{"title":"WeatherData","type":"object","properties":{"code":{"type":"integer","enum":[0,1,2,3,4,5,6],"description":"Weather code"},"condition":{"type":"string","enum":["Unknown","Clear sky","Clouds","Fog","Rain / Storm","Snow","Freezing"],"description":"Weather condition description"},"provider":{"type":"string","description":"Weather data provider"},"providerCode":{"type":"integer","description":"Weather condition code from the provider"},"providerCondition":{"type":"string","description":"Weather condition description from the provider"},"temperature":{"type":"number","description":"Temperature in °C"},"windSpeed":{"type":"number","description":"Wind speed in m/s"},"windDegree":{"type":"integer","description":"Wind direction in degrees"},"pressure":{"type":"integer","description":"Atmospheric pressure in hPa"},"precipitation":{"type":"number","description":"Precipitation volume in mm/h"},"humidity":{"type":"integer","description":"Humidity percentage"},"cloud":{"type":"integer","description":"Cloudiness percentage"},"visibility":{"type":"integer","description":"Visibility in meters"},"sunset":{"type":"string","description":"Sunset time in ISO 8601 format","format":"date-time"},"sunrise":{"type":"string","description":"Sunrise time in ISO 8601 format","format":"date-time"}}},"ErrorResponse":{"title":"ErrorResponse","type":"object","properties":{"message":{"type":"string"},"code":{"type":"integer"},"messageKey":{"type":"string"}}}}},"paths":{"/drivekit/admin/push/trips/{tripId}":{"get":{"summary":"Push trip data request","tags":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushTripDataResponse"}}}},"401":{"description":"Invalid DriveKit Admin API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Trip Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too Many Requests"}},"operationId":"get-drivekit-admin-push-trip-tripid-data","parameters":[{"schema":{"type":"string"},"in":"header","name":"DriveKit-Admin-API-Key","description":"Drivekit Admin API key","required":true}],"description":"This service returns the body of the push trip data request that DriveQuant would send to the customer push data service for a given trip."}}}}
```

## Date Format

Our API returns the dates in **ISO 8601** format in Coordinated Universal Time (**UTC**).

The **ISO 8601** format is an international standard for representing dates and times that ensures compatibility across different systems and applications.

To convert the **UTC** date into local date, our push trip data includes the time offset between local time and **UTC**, accessible *via* `itineraryData.timezoneOffset`

Here is an example:

<table><thead><tr><th width="346">Field</th><th>Value</th></tr></thead><tbody><tr><td><code>itineraryData.startDate</code></td><td><code>2025-02-09T02:31:25.314+0000</code></td></tr><tr><td><code>itineraryData.endDate</code></td><td><code>2025-02-09T02:40:11.314+0000</code></td></tr><tr><td><code>smartphoneData.gpsDate</code></td><td><code>2025-02-09T02:40:11.314+0000</code></td></tr><tr><td><code>smartphoneData.phoneDate</code></td><td><code>2025-02-09T02:40:11.295+0000</code></td></tr><tr><td><code>processingDate</code></td><td><code>2025-02-09T02:44:13.092+0000</code></td></tr><tr><td><code>itineraryData.timezoneOffset</code></td><td><code>-08:00</code></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.drivequant.com/push-services/push-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
