Back to TMV

TMV RESTful API endpoints & methods

This is minimum backend API necessary to implement a backend for the Track My Vehicle APK. 

Each action should respond with a 200 OK (unless otherwise stated)

All API requests are made with the https protocol / scheme, this can't be changed - the serving source will likely need to have a valid cert signed by a ca that the hardware trusts.

/tmv/device

PUT /tmv/device [application/json]

When the app starts up some details are PUT to the backend.  The backend simply replies with 200 OK.

{
   GUID: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
   VERN: '20250317-1716',
   ICEN: '',
   VREG: '',
   BOARD: 'MSM8974',
   BRAND: 'samsung',
   DISPLAY: 'lineage_klte-userdebug 9 PQ3A.190801.002 6870657b23',
   MANUFACTURER: 'samsung',
   MODEL: 'SM-G900F'
}

200 OK

 

POST /tmv/device [application/json]

Used to update the Vehicle Reg or the Emergency Contact no.

{
   GUID: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
k: 'VREG', v: 'XX 00 XXX' }

200 OK

{ ICEN: null, reg: 'XX 00 XXX', isLocked: 0 }

All calls are make with https protocol / scheme

/tmv/status

POST /tmv/status [application/json]

bump magnitude and location are updated here along with the device power status, in case it's battery powered or a cable has fallen out. Current isLocked status is returned.

{
  GUID: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
devEpoch: 1742301990, bumpMag: 0.5973532199859619, satellites: 17, gpsEpoch: 1742301989, lat: 51.04179746, lon: -0.02161447, alt: 117, vel: 0, acc: 3, provider: 'gps', chargeLevel: 100, chargePlug: 1 }

200 OK

{ ICEN: '+447500000000', reg: 'XX 00 XXX', isLocked: 1 }

At start-up the APK makes a PUT to /tmv/device that includes hardware details and the APK compile time (version) that can be associated with the GUID in a backend.

If the Emergency Contact, or Vehicle registration are changed a POST to /tmv/device is completed.

Location and vibration updates are via POST to /tmv/status the response from this is used to determine whether the device is armed during a vibration.  If there is no response with in 10 seconds the last known state is used.