TMM Websockets
Consuming position data from the TMM websockets.
TMM Websocket API 2025.10.x documentation
Use the TMM websocket to receive detailed position information in your application when the TMM app is controlling a Trimble GNSS receiver.
Table of Contents
Servers
localhost
Server
- URL:
localhost
- Protocol:
ws
The TMM websocket is served on 127.0.0.1 or localhost on the Android or iOS device.
Operations
PUB localhost:v2SocketPort
Operation
The version 2 websocket sends extended position information. This websocket is only available for registered applications.
Message PositionInfoV2Message
The positionInfo version 2 message contains extended position information.
Payload
Name | Type | Description | Value | Constraints | Notes |
---|---|---|---|---|---|
(root) | object | - | - | - | additional properties are allowed |
latitude | number | null | Latitude in decimal degrees (or null if unavailable) North positive, south negative | - | format (double ) | - |
longitude | number | null | Longitude in decimal degrees (or null if unavailable) East positive, west negative | - | format (double ) | - |
altitude | number | null | Altitude in meters (or null if unavailable) | - | format (double ) | - |
speed | number | null | Speed in meters per second (or null if unavailable) | - | format (double ) | - |
bearing | number | null | Bearing in decimal degrees (or null if unavailable) Measured clockwise from north for North Azimuth projections, or clockwise from south for South Azimuth projections. | - | format (double ) | - |
geoidModel | string | null | Geoid model used for height calculations (or null if unavailable) | - | - | - |
hrms | number | null | Horizontal Root Mean Square in meters (or null if unavailable) | - | format (double ) | - |
vrms | number | null | Vertical Root Mean Square in meters (or null if unavailable) | - | format (double ) | - |
satellites | integer | Number of satellites observed | - | - | - |
totalSatInUse | integer | Number of satellites that are used for the position solution | - | - | - |
totalSatInView | integer | Number of satellites in view, identical to satellites | - | - | - |
pdop | number | null | Position Dilution of Precision (or null if unavailable) | - | format (double ) | - |
hdop | number | null | Horizontal Dilution of Precision (or null if unavailable) | - | format (double ) | - |
vdop | number | null | Vertical Dilution of Precision (or null if unavailable) | - | format (double ) | - |
diffAge | number | null | Message age of any RTK message in seconds (or null if unavailable) | - | format (double ) | - |
diffStatus | integer | null | Position solution status: 1=Autonomous, 2=DGPS, 4=Fixed, 5=Float | null=unavailable | - | - | - |
diffID | string | ID of the RTK base station -1 if unknown, otherwise 4-digit ID | - | - | - |
receiverModel | string | Receiver model type | - | - | - |
mockProvider | string | Mock provider name “Trimble Mobile Manager” | - | - | - |
appVersion | string | TMM build version semantic versioning Major.Minor.Patch (0.0.0) | - | - | - |
battery | integer | null | Battery percentage if the receiver has an internal battery (or null if unavailable) | - | - | - |
mslHeight | number | null | Height above mean sea level in meters (or null if unavailable) Includes geoid undulation if geoid is available | - | format (float ) | - |
undulation | number | null | Height difference between ellipsoid and geoid (or null if unavailable) | - | format (float ) | - |
utcTimeStamp | string | null | UTC time formatted as ISO string (or null if unavailable) | - | - | - |
gpsTimeStamp | string | null | GPS time formatted as ISO string (or null if unavailable) | - | - | - |
satelliteView | array<object> | null | List of satellites in view (or null if unavailable) | - | - | - |
satelliteView.Id | integer | ID of the satellite | - | - | - |
satelliteView.Elv | integer | Elevation angles of the satellite above the horizon in degrees. | - | - | - |
satelliteView.Azm | integer | Azimuth angle of the satellite in degrees. | - | - | - |
satelliteView.Snr | integer | Signal-to-noise ratio (SNR) for the satellite. | - | - | - |
satelliteView.Use | boolean | Satellite is is use true/false | - | - | - |
satelliteView.Type | integer | Type of GNSS system of the satellite. | - | - | - |
subscriptionType | integer | The type of the currently used subscription 0 == Catalyst Free; 1 == Catalyst 60; 2 == Catalyst 30; 3 == Catalayst 10; 4 == Catalyst 1; 5 == Catalyst On Demand; 100 == GNSS receiver | - | - | - |
sourceReferenceFrameName | string | null | Name of the source reference frame used for the GNSS (or null if unavailable) | - | - | - |
sourceReferenceFrameEpoch | number | null | Epoch of the realization of the source reference frame (or null if unavailable). It’s the date at which the coordinates of the reference frame are exactly as given. | - | format (double ) | - |
targetReferenceFrameEpoch | number | null | Specific point in time that is used as a reference for the geodetic datum (or null if unavailable). | - | format (double ) | - |
targetReferenceFrameName | string | null | Name of the target reference frame used for the GNSS (or null if unavailable). | - | - | - |
imuAlignmentStatus | integer | Current IMU alignment status 0: NotAvailable, IMU is not available 1: Unaligned, IMU is not aligned, start moving the receiver to align 2: Coarse, IMU is partially aligned, keep moving the receiver to complete alignment 3: Fine, IMU is fully aligned and ready for TIP measurement | - | - | - |
isTIP | boolean | True if this is a Trimble TIP position | - | - | - |
pitch | number | null | Pitch of the receiver body in degrees (or null if unavailable) | - | format (double ) | - |
roll | number | null | Roll of the receiver body in degrees (or null if unavailable) | - | format (double ) | - |
yaw | number | null | Yaw of the receiver body in degrees (or null if unavailable) | - | format (double ) | - |
tiltAngle | number | null | Combined tilt angle of the pole (or null if unavailable) | - | format (double ) | - |
tiltPrecision | number | null | Precision of the combined tilt angle in degrees (or null if unavailable) | - | format (double ) | - |
pitchPrecision | number | null | Precision of the pitch in degrees (or null if unavailable) | - | format (double ) | - |
rollPrecision | number | null | Precision of the roll in degrees (or null if unavailable) | - | format (double ) | - |
yawPrecision | number | null | Precision of the yaw in degrees (or null if unavailable) | - | format (double ) | - |
igsAntenna | string | null | IGS antenna name (or null if unavailable) | - | - | - |
antennaHeight | number | null | Antenna height in meters (or null if unavailable). Measured from the ground to the Antenna Reference Point (usually Bottom of antenna mount) | - | format (double ) | - |
Examples of payload (generated)
{ "latitude": 0.1, "longitude": 0.1, "altitude": 0.1, "speed": 0.1, "bearing": 0.1, "geoidModel": "string", "hrms": 0.1, "vrms": 0.1, "satellites": 0, "totalSatInUse": 0, "totalSatInView": 0, "pdop": 0.1, "hdop": 0.1, "vdop": 0.1, "diffAge": 0.1, "diffStatus": 0, "diffID": "string", "receiverModel": "string", "mockProvider": "string", "appVersion": "string", "battery": 0, "mslHeight": 0.1, "undulation": 0.1, "utcTimeStamp": "string", "gpsTimeStamp": "string", "satelliteView": [ { "Id": 0, "Elv": 0, "Azm": 0, "Snr": 0, "Use": true, "Type": 0 } ], "subscriptionType": 0, "sourceReferenceFrameName": "string", "sourceReferenceFrameEpoch": 0.1, "targetReferenceFrameEpoch": 0.1, "targetReferenceFrameName": "string", "imuAlignmentStatus": 0, "isTIP": true, "pitch": 0.1, "roll": 0.1, "yaw": 0.1, "tiltAngle": 0.1, "tiltPrecision": 0.1, "pitchPrecision": 0.1, "rollPrecision": 0.1, "yawPrecision": 0.1, "igsAntenna": "string", "antennaHeight": 0.1}
PUB localhost:v1SocketPort
Operation
The version 1 websocket sends v1 position information. This websocket is available to any application on the device.
Message PositionInfoMessage
The positionInfo message contains v1 position information.
Payload
Name | Type | Description | Value | Constraints | Notes |
---|---|---|---|---|---|
(root) | object | - | - | - | additional properties are allowed |
latitude | number | Latitude in decimal degrees North positive, south negative | - | format (double ) | - |
longitude | number | Longitude in decimal degrees East positive, west negative | - | format (double ) | - |
altitude | number | Altitude in meters | - | format (double ) | - |
speed | number | Speed in meters per second | - | format (float ) | - |
bearing | number | Bearing in decimal degrees Measured clockwise from north for North Azimuth projections, or clockwise from south for South Azimuth projections. | - | format (float ) | - |
accuracy | number | Accuracy in meters | - | format (float ) | - |
verticalAccuracyMeters | number | Vertical accuracy in meters | - | format (float ) | - |
satellites | integer | Number of satellites observed | - | - | - |
totalSatInView | integer | Number of satellites in view, identical to satellites | - | - | - |
pdop | number | Position Dilution of Precision | - | format (float ) | - |
hdop | number | Horizontal Dilution of Precision | - | format (float ) | - |
vdop | number | Vertical Dilution of Precision | - | format (float ) | - |
diffAge | number | Message age of any RTK message in seconds | - | format (float ) | - |
diffStatus | integer | Position solution status: 1=Autonomous, 2=DGPS, 4=Fixed, 5=Float | - | - | - |
diffID | string | ID of the RTK base station -1 if unknown, otherwise 4-digit ID | - | - | - |
vrms | number | Vertical Root Mean Square in meters | - | format (float ) | - |
hrms | number | Horizontal Root Mean Square in meters | - | format (float ) | - |
receiverModel | string | Receiver model type | - | - | - |
mockProvider | string | Mock provider name “Trimble Mobile Manager” | - | - | - |
appVersion | string | TMM build version semantic versioning Major.Minor.Patch (0.0.0) | - | - | - |
battery | integer | Battery percentage if the receiver has an internal battery | - | - | - |
geoidModel | string | Geoid model used for height calculations | - | - | - |
mslHeight | number | Height above mean sea level in meters Includes geoid undulation if geoid is available | - | format (float ) | - |
undulation | number | Height difference between ellipsoid and geoid | - | format (float ) | - |
utcTime | number | UTC time as a float | - | format (float ) | - |
gpsTimeStamp | string | GPS time formatted as ISO string | - | - | - |
utcTimeStamp | string | UTC time formatted as ISO string | - | - | - |
satelliteView | array<object> | List of satellites in view | - | - | - |
satelliteView.Id | integer | ID of the satellite | - | - | - |
satelliteView.Elv | integer | Elevation angles of the satellite above the horizon in degrees. | - | - | - |
satelliteView.Azm | integer | Azimuth angle of the satellite in degrees. | - | - | - |
satelliteView.Snr | integer | Signal-to-noise ratio (SNR) for the satellite. | - | - | - |
satelliteView.Use | boolean | Satellite is is use true/false | - | - | - |
satelliteView.Type | integer | Type of GNSS system of the satellite. | - | - | - |
subscriptionType | integer | The type of the currently used subscription 0 == Catalyst Free; 1 == Catalyst 60; 2 == Catalyst 30; 3 == Catalayst 10; 4 == Catalyst 1; 5 == Catalyst On Demand; 100 == GNSS receiver | - | - | - |
Examples of payload (generated)
{ "latitude": 0.1, "longitude": 0.1, "altitude": 0.1, "speed": 0.1, "bearing": 0.1, "accuracy": 0.1, "verticalAccuracyMeters": 0.1, "satellites": 0, "totalSatInView": 0, "pdop": 0.1, "hdop": 0.1, "vdop": 0.1, "diffAge": 0.1, "diffStatus": 0, "diffID": "string", "vrms": 0.1, "hrms": 0.1, "receiverModel": "string", "mockProvider": "string", "appVersion": "string", "battery": 0, "geoidModel": "string", "mslHeight": 0.1, "undulation": 0.1, "utcTime": 0.1, "gpsTimeStamp": "string", "utcTimeStamp": "string", "satelliteView": [ { "Id": 0, "Elv": 0, "Azm": 0, "Snr": 0, "Use": true, "Type": 0 } ], "subscriptionType": 0}