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 }