LogoLogo
ProductsUse casesDocsSupport
  • Introducing DriveKit
  • DriveKit Guides
  • Get started with drivekit
    • Trip recording lifecycle
    • iOS
      • 🚀Quick start
      • Advanced configurations
      • References
      • iOS DriveKit Demo App
    • Android
      • 🚀Quick start
      • Advanced configurations
      • References
      • Android DriveKit Demo App
      • Android 15 Migration guide
      • Android 14 Migration guide
      • Troubleshooting
  • Trip analysis
    • Introduction
    • iOS
      • Permissions
      • Trip management
      • TripListener
      • Crash Detection
      • Beacon usage
      • Bluetooth usage
      • Custom metadata
      • References (iOS)
    • Android
      • Runtime permissions
      • Trip management
      • TripListener
      • Crash Detection
      • Beacon usage
      • Bluetooth usage
      • Custom metadata
      • References (Android)
    • User interface
      • iOS
        • Get started
        • Working hours
        • Driver alert in case of crash
        • Trip recording widget
        • Location sharing
      • Android
        • Get started
        • Working hours
        • Driver alert in case of crash
        • Trip recording widget
        • Location sharing
    • REST services
      • Trip
      • References
    • Trip Simulator
      • iOS
      • Android
  • PERMISSIONS UTILS
    • Introduction
    • User interface
      • iOS
        • Get started
        • Main configurations
      • Android
        • Get started
        • Main configurations
  • COMMON UI
    • Introduction
    • iOS
      • Get started
    • Android
      • Get started
    • References
  • DRIVER DATA
    • Introduction
    • iOS
      • Get started
      • References (iOS)
    • Android
      • Get started
      • References (Android)
    • User interface
      • iOS
        • Get started
        • Advanced configurations
        • Trips widgets
        • My Synthesis
        • My Driver Profile
      • Android
        • Get Started
        • Advanced configurations
        • Trips widgets
        • My Synthesis
        • My Driver Profile
  • Driver Data Timeline UI
    • Introduction
    • iOS
      • Get started
    • Android
      • Get started
  • Vehicle
    • Introduction
    • iOS
      • Get started
      • Vehicle management
      • Beacon management
      • Bluetooth device management
      • Odometer
      • References (iOS)
    • Android
      • Get started
      • Vehicle management
      • Beacon management
      • Bluetooth device management
      • Odometer
      • References (Android)
    • User interface
      • iOS
        • Get started
        • Main configurations
        • Advanced configurations
      • Android
        • Get started
        • Main configurations
        • Advanced configurations
  • DRIVER ACHIEVEMENT
    • Introduction
    • iOS
      • Get started
    • Android
      • Get Started
    • User interface
      • iOS
      • Android
  • CHALLENGE
    • Introduction
    • Important challenge rules
    • iOS
      • Get started
      • References (iOS)
    • Android
      • Get started
      • References (Android)
    • User interface
      • iOS
        • Get started
      • Android
        • Get started
  • GROUP
    • Introduction
    • iOS
      • Get started
    • Android
      • Get started
  • React Native
    • Get started
    • Integration
  • Flutter
    • Get started
    • Integration
  • Push services
    • Introduction
    • Push Trip Data
    • Push Deleted trip
    • Push Crash Data
    • Push Diagnosis Data
  • ADMIN SERVICES
    • Beacon
      • Add
      • Replace
      • Delete
      • Configuration
    • Challenges
      • List of challenges
      • Challenge details
      • Registered users
      • Challenge ranking
      • Users' progress
      • Definitions
    • Customer
      • Activity timeline
    • Driver
      • Timeline
      • Synthesis
      • Identity
      • Status
      • Add or update a metadata
      • Vehicles
      • Profile
      • Application diagnoses
    • Drivers
      • Account
      • Statistics
      • Ranking
      • Expired accounts
    • Group
      • Timeline
      • Synthesis
    • Trips
      • Add or update a metadata
      • Delete a metadata
    • Vehicle
      • Create
      • Characteristics
      • Configuration
      • Statistics
      • Update mileage
      • Tire and brake wear update
      • References
  • Crashes
    • Annotate a crash
    • Revoke crash location URL
  • ENTERPRISE SERVICES
    • Introduction
    • Teams
      • Create a team
      • List of teams
      • Enable or disable a team
    • Hyper-admins
      • Create a hyper-admin
      • List of hyper-admins
      • Delete a hyper-admin
    • Monitoring
      • Get a push trip data report
      • Get a push crash data report
      • Request to retry failed trips
      • Request to retry failed crashes
      • Get the status of a task
  • Release notes
    • Changelog
      • iOS
      • Android
      • UI iOS
      • UI Android
Powered by GitBook
On this page
  • Introduction
  • Principle
  • Configuration
  • Security
  • Automatic Retry
  • Sample Message
  • Date Format

Was this helpful?

Export as PDF
  1. Push services

Push Trip Data

PreviousIntroductionNextPush Deleted trip

Last updated 27 days ago

Was this helpful?

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

Trip data are sent as a POST request to a client URL. The URL must be provided to DriveQuant in order to set up and activate the push data service.

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 .

It is mandatory to configure a response code. If the post is accepted, we expect a status code of 200 (OK). In case of failure, for any answer other than 200, the service will attempt to post the data again. The retry strategy is described .

If the service returns a 200 HTTP code while the data has not been accepted by the client server, then, there will be no further attempt to send the data.

Security

Automatic Retry

DriveQuant will try again to push the trip data case of an HTTP error. To avoid too many consecutive retries, push data retries will be performed once a day, starting the day after the error. If push data is still not accepted after 30 days, push data retry will no longer be performed.

Sample Message

The data included in a message posted by the push data service can be configured. The data available in this stream depends on the analytics services you subscribe 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 1Hz. 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.

Sample message (click to expand)
{
  "itinId": "6030ebe4ea60426b34e9b3bf",
  "firstname": "Fistname",
  "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"
  },
  "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"
}

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:

Field
Value

itineraryData.startDate

2025-02-09T02:31:25.314+0000

itineraryData.endDate

2025-02-09T02:40:11.314+0000

smartphoneData.gpsDate

2025-02-09T02:40:11.314+0000

smartphoneData.phoneDate

2025-02-09T02:40:11.295+0000

processingDate

2025-02-09T02:44:13.092+0000

itineraryData.timezoneOffset

-08:00

See in parent section.

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 .

The Push Data API specification can be downloaded in OpenAPI YAML format.

here
the end of this section
below
Security
related section