{"info":{"_postman_id":"1b6039b2-2f33-4234-80d5-69560759cfab","name":"FIA DSI API Reference","description":"<html><head></head><body><h2 id=\"about-fia-dsi\">About FIA DSI</h2>\n<p>The FIA Driver Safety Index (DSI) is a global benchmark for driver safety that is universally accessible, complementing and enhancing existing road safety efforts for organisations worldwide.</p>\n<p>By offering a universal scoring system, the FIA DSI makes driver risk measurable, comparable and actionable – regardless of geography, industry, or vehicle type.</p>\n<p>The FIA DSI is used at a management and organisational level to measure driver risk, compare safety performance and identify areas for improvement.</p>\n<p>Read more at: <a href=\"https://fiadsi.com/\">https://fiadsi.com/</a></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"18998736","collectionId":"1b6039b2-2f33-4234-80d5-69560759cfab","publishedId":"2sBXVkAoou","public":true,"customColor":{"top-bar":"fff","right-sidebar":"303030","highlight":"006ee8"},"publishDate":"2026-02-03T13:42:28.000Z"},"item":[{"name":"Getting started","item":[],"id":"967f181e-f326-4e1e-b3b0-94794fe3da3f","description":"<p>To get started with the FIA DSI, your organisation is onboarded to a dedicated FIA DSI environment. During onboarding you will:</p>\n<ol>\n<li><p><strong>Create your organisation FIA DSI environment</strong><br /> This includes setting up your company, divisions, vehicle groups and other structural entities used for analysis and benchmarking.</p>\n</li>\n<li><p><strong>Configure access and credentials</strong><br /> API credentials are issued to allow secure access to the FIA DSI API for data ingestion and integration.</p>\n</li>\n<li><p><strong>Define data scope and benchmarks</strong><br /> Together, we define which data sources, vehicle types and geographies should be included, and how your organisation will be benchmarked internally and externally.</p>\n</li>\n</ol>\n<p>Once this is complete, you can start ingesting data and using the FIA DSI for reporting, analysis and benchmarking.</p>\n","_postman_id":"967f181e-f326-4e1e-b3b0-94794fe3da3f"},{"name":"Ingesting data into the FIA DSI","item":[{"name":"Ingest data via API","item":[{"name":"Enumerations and classification standards","item":[],"id":"d4f88164-03be-4eb0-a01c-bc4244f3666a","description":"<p>To ensure consistency across analytics and benchmarks, several fields use predefined values or external standards.</p>\n<h3 id=\"fuel-type\">Fuel type</h3>\n<p>For fields named <code>fuelType</code>, the following integer values are supported:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Fuel type</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Petrol</td>\n<td>1</td>\n</tr>\n<tr>\n<td>Diesel</td>\n<td>2</td>\n</tr>\n<tr>\n<td>Ethanol</td>\n<td>4</td>\n</tr>\n<tr>\n<td>Electric</td>\n<td>8</td>\n</tr>\n<tr>\n<td>Hybrid</td>\n<td>16</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"vehicle-type\">Vehicle type</h3>\n<p>For fields named <code>vehicleType</code>, the following integer values are supported:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Vehicle type</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Car</td>\n<td>1</td>\n</tr>\n<tr>\n<td>Truck</td>\n<td>2</td>\n</tr>\n<tr>\n<td>Van</td>\n<td>4</td>\n</tr>\n<tr>\n<td>Motorcycle</td>\n<td>8</td>\n</tr>\n<tr>\n<td>Bus</td>\n<td>16</td>\n</tr>\n<tr>\n<td>SUV</td>\n<td>32</td>\n</tr>\n<tr>\n<td>Pickup</td>\n<td>64</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"delivery-type\">Delivery type</h3>\n<p>For fields named <code>deliveryType</code>, the following integer values are supported:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Delivery type</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>First mile</td>\n<td>1</td>\n</tr>\n<tr>\n<td>Middle mile</td>\n<td>2</td>\n</tr>\n<tr>\n<td>Last mile</td>\n<td>3</td>\n</tr>\n<tr>\n<td>Long haul</td>\n<td>4</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"industry-classification\">Industry classification</h3>\n<p>For fields named <code>industry</code>, values should be specified using the<br /><strong>Global Industry Classification Standard (GICS)</strong>.</p>\n<p>GICS is a globally recognised industry taxonomy maintained by <strong>MSCI and S&amp;P Global</strong>, widely used for benchmarking, reporting and risk analysis.</p>\n<ul>\n<li><p>Example: <code>20304040</code> → Passenger Ground Transportation</p>\n</li>\n<li><p>The classification is hierarchical, meaning higher-level codes are also valid<br />  (e.g. <code>2030</code> for Transportation).</p>\n</li>\n</ul>\n<p>The official GICS classification and code lists can be downloaded from:<br /><a href=\"https://www.msci.com/indexes/index-resources/gics\">https://www.msci.com/indexes/index-resources/gics</a></p>\n<h3 id=\"why-this-matters\">Why this matters</h3>\n<p>The identifiers and classifications you provide during ingestion directly determine:</p>\n<ul>\n<li><p>how your organisation is structured in the FIA DSI,</p>\n</li>\n<li><p>how data is aggregated,</p>\n</li>\n<li><p>how benchmarks are computed,</p>\n</li>\n<li><p>and how insights can be queried and compared.</p>\n</li>\n</ul>\n<p>Using consistent identifiers and classifications is therefore critical for high-quality analytics.</p>\n","_postman_id":"d4f88164-03be-4eb0-a01c-bc4244f3666a"},{"name":"Trip data","id":"b3508fb9-818e-45e7-9987-cd633ea79099","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"ApiKey","value":"","description":"<p>API-key used for authorization.</p>\n","type":"text"},{"key":"Test","value":"0","description":"<p>1: Test data, 0: Production data (optional)</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"nodeId\": \"<stable internal organisation id (e.g. SE/ACME/DIV-042)>\",\n  \"driverId\": \"<stable internal driver id>\",\n  \"vehicleId\": \"<stable internal vehicle id>\",\n  \"vehicle\": {\n    \"vehicleId\": \"<same vehicleId as above>\",\n    \"make\": \"<vehicle manufacturer>\",\n    \"model\": \"<vehicle model>\",\n    \"modelYear\": <model year>,\n    \"VIN\": \"<vehicle identification number>\",\n    \"color\": \"<vehicle colour>\",\n    \"name\": \"<display name or nickname>\",\n    \"regNo\": \"<vehicle registration number>\",\n    \"fuelType\": <fuelType enum>,\n    \"vehicleType\": <vehicleType enum>,\n    \"deliveryType\": <deliveryType enum>,\n    \"industry\": <GICS industry code>\n  },\n  \"tripId\": \"<unique trip identifier>\",\n  \"startTime\": \"<ISO 8601 timestamp (e.g. 2024-09-18T07:42:10Z)>\",\n  \"endTime\": \"<ISO 8601 timestamp (e.g. 2024-09-18T08:05:47Z)>\",\n  \"startAddr\": \"<address where the trip started>\",\n  \"endAddr\": \"<address where the trip ended>\",\n  \"samples\": [\n    {\n      \"t\": \"<sample timestamp yyyyMMddHHmmssfff>\",\n      \"s\": <road speed in km/h>,\n      \"lt\": <latitude>,\n      \"ln\": <longitude>,\n      \"a\": <altitude in meters>,\n      \"c\": <course / heading in degrees>,\n      \"d\": <accumulated distance in meters>,\n      \"rpm\": <engine speed in RPM>,\n      \"ec\": <energy consumption>\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.enerfyglobal.com/v1/trip-data","description":"<p>All examples below are shown in <strong>JSON</strong> format.</p>\n<p>Other ingestion formats, including <strong>CSV</strong> and <strong>Protobuf</strong>, are supported.<br />Please <a href=\"https://greaterthan.eu/about-us/contact-us/\">contact us</a> for details.<a href=\"https://greaterthan.eu/\"></a></p>\n<h2 id=\"trip-data--request-fields\">Trip data – request fields</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Description</th>\n<th>Required</th>\n<th>Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>nodeId</code></td>\n<td>Stable reference to your internal organisational node. Defines where the trip, driver and vehicle belong in the FIA DSI hierarchy.</td>\n<td>Yes</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>vehicleId</code></td>\n<td>Stable identifier of the vehicle. Used to create or update the vehicle entity.</td>\n<td>Conditional*</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>vehicle</code></td>\n<td>Vehicle metadata. Used to enrich the vehicle entity.</td>\n<td>No</td>\n<td><code>Vehicle</code></td>\n</tr>\n<tr>\n<td><code>driverId</code></td>\n<td>Stable identifier of the driver. Used to create or update the driver entity.</td>\n<td>Conditional*</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>tripId</code></td>\n<td>Unique identifier of the trip.</td>\n<td>Conditional**</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>startTime</code></td>\n<td>Start time of the trip.</td>\n<td>Conditional**</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>endTime</code></td>\n<td>End time of the trip.</td>\n<td>Conditional**</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>startAddr</code></td>\n<td>Address where the trip started.</td>\n<td>No</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>endAddr</code></td>\n<td>Address where the trip ended.</td>\n<td>No</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>samples</code></td>\n<td>Time-ordered array of trip samples used for analysis.</td>\n<td>Yes</td>\n<td><code>Sample[]</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"conditional-rules\">Conditional rules</h3>\n<p>* <strong>At least one of</strong> <strong><code>vehicleId</code></strong> <strong>or</strong> <strong><code>driverId</code></strong> <strong>must be provided.</strong></p>\n<p>** <strong>Either</strong> <strong><code>tripId</code></strong> <em><strong>or</strong></em> <strong>both</strong> <strong><code>startTime</code></strong> <strong>and</strong> <strong><code>endTime</code></strong> <strong>must be provided.</strong></p>\n<hr />\n<h3 id=\"sampling-requirements-important\">Sampling requirements (important)</h3>\n<p>For best analytical quality:</p>\n<ul>\n<li><p>Samples should be provided at <strong>1 Hz (one sample per second)</strong>.</p>\n</li>\n<li><p>The maximum supported interval between samples is <strong>5 seconds</strong>.</p>\n</li>\n<li><p>Samples must be <strong>chronologically ordered</strong>.</p>\n</li>\n</ul>\n<h2 id=\"vehicle-object\">Vehicle object</h2>\n<h3 id=\"vehicle--request-fields\">Vehicle – request fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Description</th>\n<th>Required</th>\n<th>Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>vehicleId</code></td>\n<td>Stable identifier of the vehicle in your internal systems.</td>\n<td>Yes</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>make</code></td>\n<td>Vehicle manufacturer.</td>\n<td>No</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>model</code></td>\n<td>Vehicle model.</td>\n<td>No</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>modelYear</code></td>\n<td>Model year of the vehicle.</td>\n<td>No</td>\n<td><code>int</code></td>\n</tr>\n<tr>\n<td><code>VIN</code></td>\n<td>Vehicle Identification Number.</td>\n<td>No</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>color</code></td>\n<td>Vehicle colour.</td>\n<td>No</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>name</code></td>\n<td>Display name or nickname of the vehicle.</td>\n<td>No</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>regNo</code></td>\n<td>Vehicle registration number.</td>\n<td>No</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>fuelType</code></td>\n<td>Fuel type of the vehicle. See <a href=\"https://documenter.getpostman.com/view/18998736/2sBXVkAoou#d4f88164-03be-4eb0-a01c-bc4244f3666a\">Fuel type enum</a>.</td>\n<td>No</td>\n<td><code>int</code></td>\n</tr>\n<tr>\n<td><code>vehicleType</code></td>\n<td>Vehicle category. See <a href=\"https://documenter.getpostman.com/view/18998736/2sBXVkAoou#d4f88164-03be-4eb0-a01c-bc4244f3666a\">Vehicle type enum</a>.</td>\n<td>No</td>\n<td><code>int</code></td>\n</tr>\n<tr>\n<td><code>deliveryType</code></td>\n<td>Delivery usage classification. See <a href=\"https://documenter.getpostman.com/view/18998736/2sBXVkAoou#d4f88164-03be-4eb0-a01c-bc4244f3666a\">Delivery type enum</a>.</td>\n<td>No</td>\n<td><code>int</code></td>\n</tr>\n<tr>\n<td><code>industry</code></td>\n<td>Industry classification according to <a href=\"https://documenter.getpostman.com/view/18998736/2sBXVkAoou#d4f88164-03be-4eb0-a01c-bc4244f3666a\">GICS</a>.</td>\n<td>No</td>\n<td><code>int</code></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"notes-on-vehicle-metadata\">Notes on vehicle metadata</h3>\n<ul>\n<li><p>Vehicle metadata is used to <strong>enrich analytics and benchmarking</strong>.</p>\n</li>\n<li><p>Updating vehicle fields over time will <strong>not affect historical trips</strong>, but may affect how data is grouped and compared going forward.</p>\n</li>\n<li><p>All vehicle-related identifiers should be treated as <strong>stable over time</strong>.</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"sample-object\">Sample object</h2>\n<h3 id=\"sample--request-fields\">Sample – request fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Description</th>\n<th>Required</th>\n<th>Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>t</code></td>\n<td>Timestamp of the sample. Format: <code>yyyyMMddHHmmssfff</code>.</td>\n<td>Yes</td>\n<td><code>string</code></td>\n</tr>\n<tr>\n<td><code>s</code></td>\n<td>Road speed at sample, in km/h.</td>\n<td>Yes</td>\n<td><code>float</code></td>\n</tr>\n<tr>\n<td><code>lt</code></td>\n<td>Latitude. Format: <code>xxx.xxxxxx</code>.</td>\n<td>Yes</td>\n<td><code>float</code></td>\n</tr>\n<tr>\n<td><code>ln</code></td>\n<td>Longitude. Format: <code>xxx.xxxxxx</code>.</td>\n<td>Yes</td>\n<td><code>float</code></td>\n</tr>\n<tr>\n<td><code>rpm</code></td>\n<td>Engine speed in RPM.</td>\n<td>No</td>\n<td><code>int</code></td>\n</tr>\n<tr>\n<td><code>ec</code></td>\n<td>Energy consumption.</td>\n<td>No</td>\n<td><code>float</code></td>\n</tr>\n<tr>\n<td><code>a</code></td>\n<td>Altitude in meters.</td>\n<td>No</td>\n<td><code>float</code></td>\n</tr>\n<tr>\n<td><code>c</code></td>\n<td>Course / heading in degrees.</td>\n<td>No</td>\n<td><code>float</code></td>\n</tr>\n<tr>\n<td><code>d</code></td>\n<td>Accumulated distance in meters since start of trip.</td>\n<td>No</td>\n<td><code>int</code></td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v1","trip-data"],"host":["api","enerfyglobal","com"],"query":[],"variable":[]}},"response":[{"id":"91a206c9-2fbd-4089-8d4f-b51743f389f4","name":"Single trip","originalRequest":{"method":"POST","header":[{"key":"ApiKey","value":"","description":"API-key used for authorization.","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"nodeId\": \"SE/ACME/DIV-042\",\n  \"driverId\": \"DRIVER-10021\",\n  \"vehicleId\": \"VEH-77881\",\n  \"vehicle\": {\n    \"vehicleId\": \"VEH-77881\",\n    \"make\": \"Volvo\",\n    \"model\": \"XC60\",\n    \"modelYear\": 2021,\n    \"fuelType\": 16,\n    \"vehicleType\": 32,\n    \"industry\": 20304040\n  },\n  \"tripId\": \"TRIP-2024-09-18-000123\",\n  \"startTime\": \"2024-09-18T07:42:10Z\",\n  \"endTime\": \"2024-09-18T08:05:47Z\",\n  \"startAddr\": \"Vasagatan 10, Stockholm\",\n  \"endAddr\": \"Solna Business Park, Solna\",\n  \"samples\": [\n    {\n      \"t\": \"20240918074210000\",\n      \"s\": 0,\n      \"lt\": 59.331872,\n      \"ln\": 18.062732,\n      \"a\": 22.4,\n      \"c\": 180,\n      \"d\": 0\n    },\n    {\n      \"t\": \"20240918074211000\",\n      \"s\": 18,\n      \"lt\": 59.331900,\n      \"ln\": 18.062980,\n      \"a\": 22.6,\n      \"c\": 182,\n      \"d\": 12\n    },\n    {\n      \"t\": \"20240918074212000\",\n      \"s\": 32,\n      \"lt\": 59.331945,\n      \"ln\": 18.063410,\n      \"a\": 22.8,\n      \"c\": 185,\n      \"d\": 32\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.enerfyglobal.com/v1/trip-data"},"status":"OK","code":200,"_postman_previewlanguage":"plain","header":[{"key":"Content-Length","value":"0"},{"key":"Date","value":"Mon, 11 Sep 2023 11:45:50 GMT"},{"key":"Request-Context","value":"appId=cid-v1:xx"}],"cookie":[],"responseTime":null,"body":null},{"id":"da528d4f-57b7-4d93-8acd-63f79a7303d5","name":"Batch","originalRequest":{"method":"POST","header":[{"key":"ApiKey","value":"","description":"API-key used for authorization.","type":"text"},{"key":"Test","value":"0","description":"1: Test data, 0: Production data (optional)","type":"text"}],"body":{"mode":"raw","raw":"[\n  {\n    \"nodeId\": \"SE/ACME/DIV-042\",\n    \"driverId\": \"DRIVER-10021\",\n    \"vehicleId\": \"VEH-77881\",\n    \"vehicle\": {\n      \"vehicleId\": \"VEH-77881\",\n      \"make\": \"Volvo\",\n      \"model\": \"XC60\",\n      \"modelYear\": 2021,\n      \"fuelType\": 16,\n      \"vehicleType\": 32,\n      \"industry\": 20304040\n    },\n    \"tripId\": \"TRIP-2024-09-18-000123\",\n    \"startTime\": \"2024-09-18T07:42:10Z\",\n    \"endTime\": \"2024-09-18T08:05:47Z\",\n    \"samples\": [\n      { \"t\": \"20240918074210000\", \"s\": 0,  \"lt\": 59.331872, \"ln\": 18.062732, \"a\": 22.4, \"c\": 180, \"d\": 0 },\n      { \"t\": \"20240918074211000\", \"s\": 18, \"lt\": 59.331900, \"ln\": 18.062980, \"a\": 22.6, \"c\": 182, \"d\": 12 },\n      { \"t\": \"20240918074212000\", \"s\": 32, \"lt\": 59.331945, \"ln\": 18.063410, \"a\": 22.8, \"c\": 185, \"d\": 32 }\n    ]\n  },\n  {\n    \"nodeId\": \"SE/ACME/DIV-042\",\n    \"driverId\": \"DRIVER-10021\",\n    \"vehicleId\": \"VEH-77881\",\n    \"tripId\": \"TRIP-2024-09-18-000124\",\n    \"startTime\": \"2024-09-18T16:12:03Z\",\n    \"endTime\": \"2024-09-18T16:29:44Z\",\n    \"startAddr\": \"Solna, Stockholm\",\n    \"endAddr\": \"Sundbyberg, Stockholm\",\n    \"samples\": [\n      { \"t\": \"20240918161203000\", \"s\": 7,  \"lt\": 59.360120, \"ln\": 17.998310, \"a\": 15.1, \"c\":  95, \"d\": 0 },\n      { \"t\": \"20240918161204000\", \"s\": 21, \"lt\": 59.360210, \"ln\": 17.998690, \"a\": 15.2, \"c\":  98, \"d\": 18 },\n      { \"t\": \"20240918161205000\", \"s\": 36, \"lt\": 59.360345, \"ln\": 17.999140, \"a\": 15.4, \"c\": 102, \"d\": 40 }\n    ]\n  }\n]","options":{"raw":{"language":"json"}}},"url":"https://api.enerfyglobal.com/v1/trip-data/batch"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"b3508fb9-818e-45e7-9987-cd633ea79099"}],"id":"c830f9b5-180f-4f84-9d9d-b20dd83baa90","description":"<h2 id=\"how-the-fia-dsi-api-works-conceptual-overview\">How the FIA DSI API works (Conceptual overview)</h2>\n<p>The FIA DSI API provides a unified way to ingest trip data and retrieve driving insights across your entire organisation.</p>\n<p>When you send trip data to the FIA DSI, you are not only uploading individual trips — you are <strong>building the organisational structure</strong> that the FIA DSI uses for all analytics, benchmarking and risk metrics.</p>\n<p>At the core of this structure are <strong>fleets (divisions), drivers and vehicles</strong>, organised in a hierarchy defined by the identifiers you provide.</p>\n<h2 id=\"organisational-hierarchy-and-data-model\">Organisational hierarchy and data model</h2>\n<h3 id=\"fleets-and-divisions\">Fleets and divisions</h3>\n<p>Each trip you upload is associated with a <strong>fleet or division node</strong>, defined by the <code>nodeId</code> field.</p>\n<ul>\n<li><p>A fleet/division node is created automatically if it does not already exist.</p>\n</li>\n<li><p>The <code>nodeId</code> is typically a slash-delimited path, for example:<br />  <code>country/company/divisionId</code></p>\n</li>\n<li><p>This hierarchy becomes the foundation for all aggregated analytics and benchmarking.</p>\n</li>\n</ul>\n<h4 id=\"nodeid-as-a-reference-to-your-internal-structure\"><code>nodeId</code> as a reference to your internal structure</h4>\n<p>The <code>nodeId</code> you provide should be treated as a <strong>stable reference to your own internal organisational identifier</strong>.</p>\n<p><strong>Example</strong></p>\n<p>If your internal system uses <code>DIV-042</code> as the identifier for a division, that same value should be used as <code>nodeId</code> when ingesting data into the FIA DSI.</p>\n<p>If the division is later renamed, the <code>nodeId</code> remains the same — only the display name changes.</p>\n<h3 id=\"units-and-metrics\">Units and metrics</h3>\n<p>The FIA DSI uses <strong>metric units</strong> for all numerical values unless otherwise specified.</p>\n<p>In particular:</p>\n<ul>\n<li><p>Speed values are expected in <strong>kilometres per hour (km/h)</strong>.</p>\n</li>\n<li><p>Distances are expected in <strong>metres</strong>.</p>\n</li>\n<li><p>Altitude is expected in <strong>metres</strong>.</p>\n</li>\n</ul>\n<p>Providing data in consistent metric units is required to ensure correct analysis and benchmarking.</p>\n<h3 id=\"drivers-and-vehicles-can-be-anonymised\">Drivers and vehicles (can be anonymised)</h3>\n<p>Drivers and vehicles are <strong>created or updated automatically</strong> based on the identifiers you send:</p>\n<ul>\n<li><p><code>driverId</code> → uniquely identifies a driver</p>\n</li>\n<li><p><code>vehicleId</code> → uniquely identifies a vehicle</p>\n</li>\n</ul>\n<p><em>Note that this is not mandatory. Anonymous IDs can be used.</em></p>\n<p>No separate setup is required. As long as consistent identifiers are used, the FIA DSI will maintain and update the entities over time.</p>\n<h2 id=\"uploading-trip-data\">Uploading trip data</h2>\n<p>Trips are uploaded using either:</p>\n<ul>\n<li><p><code>/v1/trip-data</code> (single trip), or</p>\n</li>\n<li><p><code>/v1/trip-data/batch</code> (multiple trips per request)</p>\n</li>\n</ul>\n<p>When you upload trips via these endpoints:</p>\n<ul>\n<li><p>The fleet/division hierarchy is resolved from <code>nodeId</code></p>\n</li>\n<li><p>Drivers and vehicles are linked (or created) using <code>driverId</code> and <code>vehicleId</code></p>\n</li>\n<li><p>Trip data is stored and becomes available for analytics</p>\n</li>\n</ul>\n<p>The resulting structure can later be queried and viewed using the FIA DSI platform:</p>\n<p>This allows you to retrieve aggregated insights, safety metrics and benchmarking data at any level of the organisation.</p>\n<h2 id=\"analytics-and-crash-probability-insights\">Analytics and crash probability insights</h2>\n<p>Once data is ingested, the FIA DSI automatically computes driving risk metrics and crash probability insights across fleets, drivers, vehicles and time periods.</p>\n<p>These insights are designed for <strong>organisational analysis and benchmarking</strong>, enabling comparisons across:</p>\n<ul>\n<li><p>countries and regions,</p>\n</li>\n<li><p>cities,</p>\n</li>\n<li><p>industries,</p>\n</li>\n<li><p>internal divisions,</p>\n</li>\n<li><p>vehicle types and usage patterns.</p>\n</li>\n</ul>\n","_postman_id":"c830f9b5-180f-4f84-9d9d-b20dd83baa90"},{"name":"Telematics integrations (TSP)","item":[],"id":"0d9a5ab2-a0dd-4663-986f-f06d28cad2b2","description":"<h3 id=\"overview\">Overview</h3>\n<p>In addition to ingesting data via the FIA DSI API, the FIA DSI can integrate directly with supported <strong>Telematics Service Providers (TSPs)</strong>.</p>\n<p>TSP integrations allow the FIA DSI to <strong>retrieve vehicle and trip data directly from the source system</strong>, removing the need for customers to build and maintain their own ingestion pipelines.</p>\n<p>This approach is particularly well suited for organisations that:</p>\n<ul>\n<li><p>already use a supported telematics platform,</p>\n</li>\n<li><p>want to minimise integration effort,</p>\n</li>\n<li><p>prefer a standardised and maintained data connector.</p>\n</li>\n</ul>\n<p>From an analytical perspective, data ingested via TSP integrations is treated the same way as data sent through the API and becomes part of the same organisational hierarchy, benchmarks and insights.</p>\n<p><em><strong>Telematics integrations are available through a coordinated onboarding process.</strong></em> <a href=\"https://greaterthan.eu/about-us/contact-us/\"><i><b>Contact us</b></i></a> <em><strong>for more details.</strong></em></p>\n","_postman_id":"0d9a5ab2-a0dd-4663-986f-f06d28cad2b2"},{"name":"Best practices and guidelines","item":[],"id":"68f17597-a868-4ccc-9bcf-09b7e3917d29","description":"<p>The FIA DSI API is designed for <strong>long-term, large-scale analytics</strong>. Following these guidelines will help ensure stable structures and reliable benchmarks.</p>\n<h3 id=\"identifier-stability\">Identifier stability</h3>\n<ul>\n<li><p>Treat <code>nodeId</code>, <code>driverId</code> and <code>vehicleId</code> as <strong>stable identifiers.</strong></p>\n</li>\n<li><p>Do not reuse identifiers for different entities.</p>\n</li>\n<li><p>Avoid encoding meaning (such as location or role) into IDs.</p>\n</li>\n</ul>\n<p>The display name of a node can be <strong>changed at any time</strong> without affecting:</p>\n<ul>\n<li><p>historical data,</p>\n</li>\n<li><p>analytics and benchmarks,</p>\n</li>\n<li><p>or existing integrations.</p>\n</li>\n</ul>\n<p>You <strong>do not need to create a new</strong> <strong><code>nodeId</code></strong> if a division is renamed, rebranded or reorganised from a naming perspective. Changing identifiers retroactively may fragment analytics and historical comparisons.</p>\n<h3 id=\"organisational-hierarchy-nodeid\">Organisational hierarchy (<code>nodeId</code>)</h3>\n<ul>\n<li><p>Keep the hierarchy <strong>consistent over time</strong>.</p>\n</li>\n<li><p>Avoid frequent restructuring of historical nodes.</p>\n</li>\n<li><p>Use meaningful but stable paths, for example:<br />  <code>country/company/division</code></p>\n</li>\n</ul>\n<p>The hierarchy you define directly impacts aggregation, benchmarking and trend analysis.</p>\n<h3 id=\"time-and-sampling\">Time and sampling</h3>\n<ul>\n<li><p>Use consistent time formats and timezones across all data sources.</p>\n</li>\n<li><p>Ensure that samples within a trip are <strong>chronologically ordered</strong>.</p>\n</li>\n<li><p>For best analytical quality, sample data at <strong>1 Hz (one sample per second)</strong>.</p>\n<ul>\n<li>The maximum supported interval between samples is <strong>5 seconds</strong>.</li>\n</ul>\n</li>\n<li><p>Large gaps between samples may reduce analytical accuracy.</p>\n</li>\n</ul>\n<h3 id=\"data-delivery-frequency\">Data delivery frequency</h3>\n<p>The FIA DSI supports flexible data delivery schedules depending on your integration and operational needs.</p>\n<p>You can choose to:</p>\n<ul>\n<li><p>send data <strong>after each completed trip</strong>, or</p>\n</li>\n<li><p>send data as <strong>batches</strong>, for example once per day.</p>\n</li>\n</ul>\n<p>For most organisations, <strong>daily batch delivery is recommended</strong>, as it provides a good balance between data freshness, system load and operational simplicity.</p>\n<p>Less frequent deliveries are also supported, but may delay availability of insights and benchmarks.</p>\n<h3 id=\"end-to-end-ingestion-flow-example\">End-to-end ingestion flow (example)</h3>\n<p>A typical integration flow looks like this:</p>\n<ol>\n<li><p><strong>Trip data is uploaded</strong> via <code>/v1/trip-data</code> or <code>/v1/trip-data/batch</code></p>\n</li>\n<li><p><strong>Fleet/division hierarchy</strong> is resolved from <code>nodeId</code></p>\n</li>\n<li><p><strong>Drivers and vehicles</strong> are created or updated using <code>driverId</code> and <code>vehicleId</code></p>\n</li>\n<li><p><strong>Trips are stored and analysed</strong></p>\n</li>\n<li><p><strong>Aggregated insights and benchmarks</strong> become available in the FIA DSI platform</p>\n</li>\n</ol>\n<p>Once ingested, data can be analysed across fleets, divisions, geographies and vehicle types without additional configuration.</p>\n<h2 id=\"summary\">Summary</h2>\n<ul>\n<li><p>The FIA DSI API is not just an ingestion interface — it defines the structure used for all analytics.</p>\n</li>\n<li><p>Consistent identifiers and hierarchies are essential for reliable benchmarking.</p>\n</li>\n<li><p>Both API-based ingestion and TSP integrations produce the same analytical model inside the FIA DSI.</p>\n</li>\n<li><p>Design your integration with long-term trends and comparisons in mind.</p>\n</li>\n</ul>\n","_postman_id":"68f17597-a868-4ccc-9bcf-09b7e3917d29"}],"id":"01c7a363-a174-4070-8141-9c269a66296d","description":"<p>The FIA DSI is built on high-quality vehicle and trip data. There are two primary ways to provide data to the platform:</p>\n<h3 id=\"option-1-push-data-to-the-fia-dsi-via-api\">Option 1: Push data to the FIA DSI via API</h3>\n<p>You can send data directly to the FIA DSI using the endpoints described in this API documentation. This option is well suited if you:</p>\n<ul>\n<li><p>already collect vehicle or telematics data in your own systems,</p>\n</li>\n<li><p>want full control over data flows and timing,</p>\n</li>\n<li><p>need to combine multiple data sources before ingestion.</p>\n</li>\n</ul>\n<p>The API supports structured ingestion of trips, vehicles, drivers and related metadata required for the FIA DSI’s analytics and benchmarking models.</p>\n<h3 id=\"option-2-allow-the-fia-dsi-to-pull-data-from-your-telematics-provider\">Option 2: Allow the FIA DSI to pull data from your telematics provider</h3>\n<p>If you use a telematics platform, the FIA DSI can retrieve data directly from the source system. This option is ideal if you:</p>\n<ul>\n<li><p>want to minimise integration effort,</p>\n</li>\n<li><p>prefer a standardised and maintained connector,</p>\n</li>\n<li><p>want a faster path to insights.</p>\n</li>\n</ul>\n<p>In this setup, you grant the FIA DSI access to the relevant data source, and data retrieval, mapping and updates are handled as part of the integration.</p>\n","_postman_id":"01c7a363-a174-4070-8141-9c269a66296d"}]}