{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"caab523b-d906-471a-9267-886048c87786","name":"External API","description":"Document Version History\n\nThis table shows a record of significant changes to the document.\n\n| Revision Date | New Version | Details of revisions | Initials |\n| --- | --- | --- | --- |\n| 26/09/2018 | v0.1 | Creation | PB |\n| 26/03/2019 | v1.0 | Release version | PB |\n| 09/04/2019 | v1.1 | UTC clarification | PB |\n| 07/06/2019 | v1.2 | Expanded overview | PB |\n| 26/06/2019 | v1.3 | vehicleJourneys refactored | PB |\n| 23/08/2019 | v1.4 | Ammended login explanation and example | PB |\n| 23/08/2019 | v1.5 | Added 2 vehicle journey endpoints | PB |\n| 17/10/2019 | v1.6 | Updated API docs, include URL | PB |\n| 12/12/2019 | v1.7 | Journey ID added to additional enpoints | PB |\n| 12/12/2019 | v1.8 | vehicle journey by vehicle EP refactor | PB |\n| 07/05/2020 | v1.9 | Corrected example data for data type. | PB |\n| 07/07/2020 | v1.10 | Added 2 driver journey endpoints | JK |\n| 30/09/2020 | v1.11 | Added driver list endpoint | PB |\n| 10/06/2021 | v1.12 | Added new Allocation and supporting endpoints | PB |\n| 19/11/2021 | v1.13 | Added postman documentation notes | PB |\n| 05/10/2022 | v1.14 | Added new data input for driver journey. | PB |\n| 14/12/2022 | V1.15 | Added Service Tax MOT dates (Beta) | PB |\n| 30/06/2023 | v1.16 | Assign Journey fix default driver assignment | PB |\n| 30/10/2023 | v1.17 | Updated docs for Odo endpoint | PB |\n| 02/08/2024 | v1.18 | Added assigned driver info to vehicle list | PB |\n| 07/11/2024 | v1.19 | Released charging history endpoints | PB |\n\n# OVERVIEW\n\nAPI Url: [https://data.lightfoot.co.uk](https://data.lightfoot.co.uk)\n\nBeta Url: [https://stagedata.lightfoot.co.uk](https://stagedata.lightfoot.co.uk)\n\nThe Lightfoot Application Programming Interface (API) is a RESTful API, using the Bearer Authentication method from OAuth2. Utilising JSON as the data structure for responses.\n\nPlease note data is stored and returned in the metric system, and time is stored and returned in UTC.\n\nThe API is designed to provide customers with direct access to product data held by Lightfoot. This document is aimed at both business and technical users to provide an understanding the data available via the API, and how to obtain it. To cater for these different audiences, this document will provide the following:\n\n\\* Data and functionality available through the API  \n\\* Security and Access to the API functionality  \n\\* How usage of the API is monitored and controlled\n\n**Postman Note:** if you are using the collection in the postman application, you will need to setup the parameters in your environment (url, username, password) and 'Pre-request script'. Please see Postman's documentation: [https://learning.postman.com/docs/getting-started/introduction/](https://learning.postman.com/docs/getting-started/introduction/)\n\n# AUTHENTICATION AND SECURITY\n\nThe API uses Basic Authentication for all endpoints, and a 2-factor authentication method. All users must log in to obtain a token using their Lightfoot account credentials. Once a token has been obtained, it must then be used for further requests to obtain any data.\n\nA Lightfoot account is required to login through the API and retrieve data. Please see the /login endpoint for details on how to login, and obtain a session token. Each user can only access data and entities relating to their account privilege.\n\nAll API connections are encrypted using TLS (HTTPS). User sessions timeout after a period of inactivity.\n\nAll successful and unsuccessful logins and usage of the API are recorded for security. Accounts are locked if 8 failed login attempts are made in consecutively, after the account password must be reset within the web portal [https://my.lightfoot.co.uk/](https://my.lightfoot.co.uk/).\n\nUser sessions expire after 24 hours of inactivity. If a session is no longer needed before this time then a request can be sent to the logout endpoint to terminate the current session token. More information is available in the /logout endpoint information.\n\n# USAGE THRESHOLDS\n\nUsage limits are in place to maintain system load and ensure consistent service for all customers. The standard limit for endpoints is 1 request per second. Exceptions are stated in the individual endpoints’ documentation.\n\nShould a user reach their limit then the server will issue a 429 response with the ‘Request Limit Exceeded’ message.\n\nIt is the responsibility of each API user to ensure the agreed number of requests is not exceeded. Connections may be throttled or terminated without notice if the limits are exceeded.\n\n# DATA HISTORY\n\nProduct usage data is available for 9 weeks from the logged / creation time.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"6999201","team":310545,"collectionId":"caab523b-d906-471a-9267-886048c87786","publishedId":"S17qS9Xd","public":true,"publicUrl":"https://docs.lightfoot.co.uk","privateUrl":"https://go.postman.co/documentation/6999201-caab523b-d906-471a-9267-886048c87786","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"378642"},"documentationLayout":"classic-double-column","version":"8.10.1","publishDate":"2019-03-20T15:58:10.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/84aefe8031ee08ee4ece191b6652ebeab0091480cfec2df11c920dae4eb7536c","favicon":"https://lightfoot.co.uk/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://docs.lightfoot.co.uk/view/metadata/S17qS9Xd"}