GPS Track a Move - ministryofjustice/hmpps-book-secure-move-api GitHub Wiki
GPS Track a Move
Authorisation
The API will use API keys, provided in the X-API-Key header.
API signature / data structure
IMPLEMENTED
Headers
Content-Type:application/json
X-API-Key:zzzzzzz
POST /tracks
[
{
"tracking_id": "68ce2064-23b9-4ea2-bd51-149bbc75c243",
"journey_id": "12663234-2f3c-465c-9959-6e0af84bfdb4",
"tracking_timestamp": "2020-07-28T17:20:26+01:00",
"vehicle_registration": "REG-61372",
"latitude": 51.449999999999996,
"longitude": -2.583333,
"precision_hdop": 17.2,
"precision_vdop": 15.4,
"speed": 63.0,
"vehicle_vin": "VIN-61372",
"altitude": 81.9
},
{
...
},
...
]
Data Fields
| Parameter | Format | Notes | Mandatory |
|---|---|---|---|
| altitude | number | Height above/below sea level in metres | no |
| bearing | number/string | Optionally, the bearing of the vehicle can be sent, in whichever format is appropriate | no |
| journey_id | string | The journey that the tracking event refers to | yes |
| latitude | number (e.g. double) | The GPS latitude to an appropriate degree of precision (if precision is in doubt, please raise for discussion) | yes |
| longitude | number (e.g. double) | The GPS longitude to an appropriate degree of precision (if precision is in doubt, please raise for discussion) | yes |
| precision_<other> | number/string | Other GPS precision measurements may be appropriate in future, such as GDOP, TDOP, PDOP | no |
| precision_hdop | number (e.g. double) | A standard measure of how precise the GPS result is - this is in the horizontal plane (that is: across the surface of the earth) | no |
| precision_vdop | number (e.g. double) | A standard measure of how precise the GPS result is - this is in the vertical plane (that is: height related to the sea level) | no |
| received_timestamp | string | Internal only - the date time we received the tracking event in standard format: YYYY-MM-ddTHH:mm:ss.ss±hh:mm | N/A |
| speed | number | How fast the vehicle is travelling in kilometres per hour | no |
| tracking_id | string | A reference (e.g. a UUID) that should be unique for every tracking record | yes |
| tracking_timestamp | string | The date/time in standard format: YYYY-MM-ddTHH:mm:ss.ss±hh:mm | yes |
| vehicle_registration | string | The registration number of the vehicle, as displayed on the "Number plate". For example: CU57ABC | yes |
| vehicle_vin | string | The unique identifier for the vehicle (vehicle identification number) independent of current registration number | no |
Bulk
The above endpoint can take one or many tracking records - to a maximum of 1000
Frequency
We expect to normally receive a GPS update every minute for every journey. We expect to receive this in "near real time", which in practise means within a minute of the GPS tracking timestamp. We accept that delays can occur, but these should be the exception rather than the norm.