Edit on GitHub Ask developers in the Community

What's New

Subscribe for Updates

February 2, 2024

Patch 11.7

  • Added EV Real Time Range API. Note that this is an interpolated value, and is not the range data pulled from the vehicle.
  • Added a default rule for Enhanced Minor Collision.
  • Renamed the built-in rule previously known as Enhanced Major Collision to Major Collision. Similarly, Possible Accident has been renamed to Possible Collision (Legacy) to better reflect its functionality.
  • Added a description for the AutoGroups property (in the UntrackedAsset object) to the SDK reference page.
  • Added new built-in zone type VendorServiceCenter, allowing for more specific categorization.

January 26, 2024

Patch 11.6

  • Generic exception changed to “Invalid group id used. {ID} is not a valid group id.” when an invalid group ID is provided.

January 12, 2024

Patch 11.4

  • Added the ChargeEvent object to GetFeed. For more information about ChargeEvent, refer to this document.

December 8, 2023

Patch 11.0.6844

  • Fixed an issue where the startOfDay property could be null, instead of having a fallback default value (the default value is midnight, 00:00:00).

November 3, 2023

Patch 11.0.60xx

  • Added property “isIgnored” and removed property “isHidden” from the DutyStatusLog object.
  • LogRecords are no longer interpolated when no device is provided. Interpolation is now gated behind a custom code.
  • “cycleDriving” property was added to DutyStatusAvailability object. “CycleDriving” property is also added to the DutyStatusViolationType object.
  • Removed all logic related to Viewport in ZoneSearch, since it has been deprecated for some time. If a ZoneSearch is provided with Viewport, an error message is returned.
  • Added “minYear” parameter to GetDaylightSavingRules so that adjustment rules are returned only for the year 2000 and onward. Previously, years going back to 1920 were stored causing a large amount of wasted localstorage.

September 8, 2023

Patch 11.0.48xx

  • Fixed an error when retrieving DutyStatusLogs for all drivers.

June 2, 2023

Patch 11.0.30xx

  • Added support for the AddIn search object.

May 26, 2023

Patch 11.0.29xx

  • A property called ‘jobPriorities’ is added to the User object, it stores the list of selected job priorities.
  • A property called ‘activeDefaultDashboards’ is added to the User object, it stores the list of default dashboards.
  • The GetDaylightSavingRules method now returns only rules from the year 2000 onwards by default.

May 19, 2023

Patch 11.0.28xx

  • Sealed objects are removed from Nuget package for existing objects.
  • Bug fixed by ensuring PropertySelector for Device only returns the property added to the field id within PropertySelector.
  • New ruleset “CanadaBCLoggingTruck” added to the list of HosRuleSet.


Get and GetFeed for FuelUsed and FillUp

  • Get and GetFeed for FuelUsed is now available. The query will return fuel consumption for each MyGeotab trip — corresponding to each trip’s ending date and time.
  • Get and GetFeed for FillUp is now available. The query will return fill-ups detected by MyGeotab or matching fuel transaction records, if available. Each fill-up will also be matched to a MyGeotab trip — corresponding to the trip’s ending date and time.

New Transaction Provider

Added New MessageContentTypes

New ConditionType Property

New MediaFileSearch Options

  • MediaFile entries can now be searched by the solutionId property.
  • MediaFile entries can now be searched by using the TagSearch object.

New TextMessageSearch Options

New Property for DutyStatusAvailability

  • A new property has been added for the DutyStatusAvailability object that details the duration of the driving break. Note: This new property is available for USA rulesets only.

Note: This new property is available for USA rulesets only.

Added TachographDataFile Object

New CaptchaAnswer Properties

PropertySelector fixes

  • Fixed the property selector not working without the search object for the following entities:
    • Trip
    • User
    • Group

Add-in Configuration Updates via SystemSettings

⚠ Add-in updates via the customerPages are no longer supported.

Nuget Package

  • A fix has been issued for the nuget package where the name property for stock groups was not returned.


SDK Updates

API Runner (SDK)

The following improvements are added:

  • Added loading spinner to indicate to users that the login request is being processed.
  • Added a keypress handler for the login form that allows the cursor to move to the next field, and added functionality for an enter key press event to submit the form when inputting information in the last field.
  • Fixed an error message occurring in the main .js:scrollSidebar.
  • Fixed an issue that caused multiple click handlers to be added to the login button.


  • Added the ImpersonateGpsTextMessage security identifier. When enabled, the security identifier does not validate the identity of the sender.
  • Added the ResetPassword security identifier that allows a user to reset another user’s passwords.


We’ve corrected the following errors:

  • Fixed UnhandledRejection exceptions.
  • Improved exception messages to include the type from the JSON-RPC error.
  • Fixed InvalidUserException retry authentication.
  • Updated CallBackError to be invoked as the last operation in the promise field.


  • Fixed issues with results sorting that led to missing results.


  • Enabled brotli compression in Nuget package API.cs requests.
  • Many ObjectModel classes are marked as “sealed”. Marking a class as “sealed” prevents tampering of important classes that can compromise security or impact performance.

!IMPORTANT: Updating your application to version 10.0 may not work if an ObjectModel class is inherited.


  • Added PropertySelector (Beta) support for the TextMessage type.


  • Added PropertySelector (Beta) support for the IoxAddOn type.


  • Added PropertySelector (Beta) support for the IoxAddOnStatus type.


  • Updated the description of DriverChange DateTime to notify users that the DateTime must not be in the future when adding a DriverChange through API.


  • DriverWhiteListContent is replaced by DriverAuthListContent
  • Prior to the 10.0 release, DriverWhiteListContent and DriverAuthListContent were both available to allow users to adjust to the transition.

Condition and ConditionType

  • Added the Group exception rule condition. This separates conditions in a single rule when different groups require different conditions.

Geotab Developers

  • Added a section to the Developing Add-ins page suggesting to use the generator-addin repository.

SDK samples

  • Added JavaScript samples to refresh the user interface.

SDK Add-In samples


Custom security identifiers for Add-ins

Custom security identifiers for MyGeotab Add-ins are now available. Identifiers can be defined in the configuration.json file of Add-ins, which will then add them to the list of permissions available when editing clearances. These definitions can support multiple languages.

Administrator clearance will remain non-editable and have all custom clearances enabled by default. All other default/system clearance levels only allow editing of custom security identifiers, while keeping the system defined default identifiers non-editable.

NOTE: By default, once the enableViewSecurityId property in the configuration.json for an Add-in is set to True, a View “Add-in name” add-in identifier is created that must be enabled for users to be able to view the Add-in. More granular control needs to be set within the Add-in code for any custom identifiers added to the configuration.json.

IP Rate limits

  • Added new rate limits for API requests for endpoints that do not require authentication. See this announcement for more information.



  • Removed the DatabaseExists API that was originally used for database registration purposes. If the database name exists, CreateDatabase throws a RegistrationException.


  • Removed the RouteSearchGroups property and replaced it with the ServiceGroups property.


  • Added the optional PropertySelector parameter that is used with the Get and GetFeed methods to include or exclude specific properties for entity types requested. Detailed information can be found on the Geotab Developers site.

DriverWhiteListContent / DriverAuthListContent

  • Removed the DriverWhiteListContent object and replaced it with the DriverAuthListContent object.


  • Improved system group objects to be returned with an English Name field.


  • Added RequestPending as an acceptable value of DeviceShareStatus. This value indicates when an outgoing device share request has been created by a user on the source database, and is waiting for confirmation it has been created successfully.


  • Added the following security identifiers:
    • ResetPassword
    • EditStockRules
    • ContinuousConnectClearance
    • ViewShipments
    • ManageShipments
    • ManageTachographInspection
    • ViewTachographInspection
    • ManageTachographCompanyCards
    • ViewTachographCompanyCards
    • TachographDownloadAndUploadFiles
    • ViewTachographRemoteDownloadData
    • ViewTachographDrivingTimeData
    • ViewTachographInfringementData
    • SendColdChainCommand


Special note about Trailer and Device

We have migrated all Trailers to be Devices in all customer databases. As a result, you will see the following changes:

  • GroupAssetTypeId, GroupTrailerId, and GroupVehicleId built-in groups are added under CompanyGroup.

  • A GroupVehicleId built-in group is added to all Devices.

  • Calling Add Trailer and Add Device with the GroupTrailerId built-in group now performs the same action. Both create a Device in the system that is in the GroupTrailerId group.

  • Trailer APIs have been marked as obsolete but will continue to be supported (for now).

  • Calling Get Device now returns devices that are in the GroupTrailerId built-in group as part of the response.

  • If the Customer wants only vehicles to be returned when calling Get Device, and not trailers, they should specify groupSearch: {“id”:”GroupVehicleId”}.

  • Calling Add Trailer with the GroupTrailerId or GroupVehicleId built-in groups will throw an error.

! IMPORTANT: Calling Set Device and removing the GroupVehicleId or GroupTrailerId built-in groups will prevent the vehicle or trailer from being shown on the relevant selection screens on the Drive App. Calling Set Device and switching the group from GroupTrailerId built-in group to GroupVehicleId built-in group or vice versa will not be allowed. This is a temporary restriction in the 8.0 release, and we intend to remove this check in a future release.

See this slide deck to understand more about why this change was made, and how this may impact you.

Special note about EV Powertrain Groups

This new built-in group structure automatically classifies electric vehicles (EV) based on their unique powertrain types: Plug-in Hybrid (PHEV), Battery Electric Vehicle (BEV), or Fuel Cell Electric Vehicle (FCEV). See MyGeotab Version 8.0 SDK Announcement - New built-in groups for EV powertrain identification for additional details.



  • Removed the obsolete alpha Data property.


  • Fix: The Audit API is inconsistent in what it returns. Most ways of getting audit (Get - from ID or search, GetFeed) do not return a populated User property. However, the GetAll (Get with no search) returns records with the user fully populated. This is not consistent with the API philosophy. A nested entity will only have its ID populated. User will now never be returned in the Audit object (only userName).


  • Fix: Searching for CustomDevice type could also return CustomVehicleDevice devices in some cases. It has been fixed to return only devices of CustomDevice type.


  • Added IsAdverseDrivingApplied and IsRailroadExemptionAvailable.


  • Added RailroadExemption.


  • RepairStatus / RepairUser / RepairDate cannot be changed once set. A repair cannot be completed without the RepairUser, RepairDate, and RepairStatus.



  • Added the following system groups:
    • GroupAssetTypeId
    • GroupVehicleId
    • GroupTrailerId
    • PowertrainAndFuelTypeId
    • GroupElectricHybridPluginId
    • GroupBatteryElectricVehicleId
    • GroupPluginHybridElectricVehicleId
    • GroupFuelCellElectricVehicleId
    • GroupInternalCombustionEngineId
    • GroupBiodieselId
    • GroupCompressedNaturalGasId
    • GroupDieselId
    • GroupEthanolId
    • GroupGasolinePetrolId
    • GroupLiquifiedNaturalGasId
    • GroupPropaneLiquifiedPetroleumGasId
    • GroupManuallyClassifiedPowertrainId


  • Added America7DayRailroad and America8DayRailroad.


  • Added NFC, Bluetooth, and UReader add-on types.

Nuget Package

  • Nuget package uses HttpClient.VersionPolicy RequestVersionOrHigher. Allowing client to use HTTP/2 and above. HttpClient default is HTTP/1.1.


  • Added EVBatteryHealthReport.


  • Marked obsolete, but can still be used for this release.


  • Marked obsolete, but can still be used for this release.


  • Added IsAdverseDrivingEnabled.


  • When adding and setting zones, points are validated to be latitude and longitude bounds. Valid Latitude -90 to 90. Valid Longitude -180 to 180.


  • Viewport property which was made obsolete in v5.7.2004 will be removed and no longer supported in v9.0. Please switch your application to use searchArea and BoundingBox objects as soon as possible.


Security updates

In an effort to increase application and API security, exception types that expose database provider or platform-specific error messages have been removed and are now represented as one of the exceptions below. Most exceptions and error messages have not changed. Exception types that were previously documented remain unchanged; however, some new exception types include non-specific, generalized messages to avoid sharing information about the underlying infrastructure. The following common exceptions are still supported.

  • ArgumentException
  • ArgumentNullException
  • ArgumentOutOfRangeException
  • CaptchaException
  • DatabaseMaintenanceException
  • DbUnavailableException
  • DuplicateException
  • ExpiredPasswordException
  • GenericException new
  • GroupRelationViolatedException
  • InvalidApiOperationException new (fromerly InvalidOperationException)
  • InvalidCastException
  • InvalidMyAdminUserException
  • InvalidPermissionsException
  • InvalidUserException
  • JsonSerializerException
  • MissingMemberException
  • MissingMethodException
  • PasswordPolicyViolationException

Password policies

  • User passwords will now be validated against a list of common passwords. If it is a common password, a PasswordPolicyViolationException is returned.
  • User passwords will now be validated against username, first name, and last name. If it contains a username, first name, last name, a PasswordPolicyViolationException is returned. This method can no longer be disabled.

User policies

  • The maximum number of active sessions for a user on a single database has been lowered to 100. Active sessions are a rolling list sorted by date and time. When the number of active sessions reaches 100, a new session is added, and the oldest session is removed from the list (expired).

General updates

  • Added ModifyGroupFilter and ViewGroupFilter to SecurityIdentifier.
  • Added CaliforniaPropertyShortHaulWithRest, CanadaOil, CanadaNorthOf60Oil, CanadaOilTeam, and CanadaNorthOf60OilTeam properties.
  • Added support for fuel transaction provider, WexCanada.
  • Minor bug fixes and package updates.

Coming soon

  • The AddInData legacy property Data will be removed in the coming 9.0 release. Please update your integration requests to use the Details property instead
  • JSONP support will be removed from the API in the coming 8.0 release, and should no longer be used.


  • Changed the software version naming convention to use three parts (e.g. 6.0.0) from four parts (e.g. 5.7.2104.0). To learn more, click here.

  • Added WifiHotspot capability, with Interface to configure hotspot settings on telematics devices.

  • The MyAdmin SDK is now available from the SDK. All pages are in the process of being converted to Markdown format.


Added CanadaNorthOf60CycleOneTeam and CanadaNorthOf60CycleTwoTeam to the rulesets.


Increased media file size limits to 50 MB for video and 10 MB for images.


  • Fixed an issue in which the NuGet package API.SessionId property generates an InvalidOperationException, if accessed before it is assigned.

  • The MyGeotab NuGet package no longer includes a reference to Newtonsoft.json.


JSON Serializer Change in 5.7.2103

Post-release update: it was recently uncovered within our development team that as of MyGeotab release 5.7.2103, the JSON Serializer responsible for parsing API calls has changed to no longer allow single quote (‘) usage within the call parameters. Integrators should now solely use double quotes (“) for this purpose. The expected error result for single quote usage with this change is as follows:

      "message":"Exception of type 'Geotab.Serialization.JsonSerializerException' was thrown.",
            "message":"Exception of type 'Geotab.Serialization.JsonSerializerException' was thrown.",

The new Serializer logic only accepts property names and string values in double quotes because that format is required by the RFC8259 specification and is the only format considered to be valid JSON.

New Stock Groups Available

  • GroupDriverActivityGroupId
  • GroupPersonalGroupId
  • GroupBusinessGroupId


  • FuelTankCapacity will now throw an ArgumentOutOfRangeException if the value is less than 0.
  • The DevicePlans property will be removed from the object model in a future version. DevicePlans does not encapsulate billing information, so please use the DevicePlanBillingInfo property from this version forward.
  • Added the DevicePlanBillingInfo property to replace the DevicePlans property. DevicePlanBillingInfo contains more billing information than DevicePlans.


Fixed a bug that omitted the closestAssetLimit property when applying closestAssetLimit and resultsLimit together.


Fixed bug that applied the wrong date when searching for UserHosRuleSet using both fromDate and userSearch.fromDate.


Added the ProviderProductDescription property. This property requests the non-generic product description as described by the fuel card provider.


Added EwdRest, EwdWork, and EwdWorkExemption.


Removed provider-specific details from exception messages when a relation violation exception occurs. The exception types returned have not changed.


Added IsHidden and IsRequired properties.

  • IsHidden is a boolean value indicating whether a defect is hidden in the UI. Used to determine if “other” should be shown or not.
  • IsRequired is a boolean value indicating whether a defect must be signed off. Used to determine if the part must be explicitly marked as having defect(s) or not.


JSON Serializer Change

The JSON Serializer responsible for parsing API calls has changed to no longer allow single quote (‘) usage within the call parameters. Integrators should now solely use double quotes (“) for this purpose. The expected error result for single quote usage with this change is as follows:

      "message":"Exception of type 'Geotab.Serialization.JsonSerializerException' was thrown.",
            "message":"Exception of type 'Geotab.Serialization.JsonSerializerException' was thrown.",

The new Serializer logic only accepts property names and string values in double quotes because that format is required by the RFC8259 specification and is the only format considered to be valid JSON.

Add/Set FuelTransaction

Fuel transactions must be unique when comparing all fields (excluding sourceData) against existing transactions.


Added jurisdiction property.


The CreateDatabase API now requires user-selected jurisdiction. The jurisdiction is the place of residency for Customer data, maintenance hours, and other information (e.g.U.S., EU). This was previously inferred from the selected timezone. To maintain backwards compatibility, timezone can still be used to infer jurisdiction. However, all users are encouraged to provide a jurisdiction as part of the CompanyDetails provided to the CreateDatabase API.


Added fuelTankCapacity property.


Added LevcFault.

Drive Add-In Photos

A new API was added to Drive add-ins to access the device camera to take a photo or select an exiting photo from the mobile device using api.mobile.camera.takePicture().


Added CurrentDutyStatus representing the latest DutyStatusLogType affecting availability or violations.


Added EwdRest, EwdWork, and EwdWorkExemption (formerly Work and WorkExemption).


Added LogTypes property for searching by list of DVIRLogType.


Exception events can be deleted when new data arrives from a device that, when evaluated against the same rule conditions, invalidates the previous state of the exception. For example, a speeding exception is generated for a street with a 40mph speed limit beside a highway. As more GPS data arrives, it becomes clear the vehicle is on the highway, not the service road, so the exception is invalidated. This is a problem for users who continuously request ExceptionEvent data because they are unaware when an exception is invalidated, and deleted at a later date. To resolve this issue, two new properties have been added to ExceptionEvent; lastModifiedDate and state. These properties determine if the exception event is invalidated instead of deleted. This means that when a new GetFeed request is made, the user sees the updated record and can adjust their records accordingly. Invalidated exceptions will no longer be removed immediately.

NOTE: Invalidtated exceptions will not be returned by default. You must pass the search parameter includeInvalidated in the request to Get or GetFeed to return invalidated exception events. The state of these exceptions will be Invalid.


Added includeInvalidated property.


New object representing the state of the exception event. Possible states are Valid and Invalid.

Generator Add-in

Generator-addin updated to mock drive add-in camera API features.


Group objects in some instances had color and children properties partially populated when nested in another object (ex device.groups). This is fixed, so they are no longer populated when groups are nested in group linked entities.


Added CaliforniaPropertyShortHaul and CaliforniaPropertyShortHaulWithRest.


New enumeration representing the Jurisdiction of a database.


Added Application media file type. This is to support PDF file types in MediaFiles.

All Radio Downloader related objects are removed as Geotab deprecates all RF functionality.


Added ViewDeviceDataPrivacyChangeData and EditDeviceDataPrivacyChangeData Added ViewSharedDevice Added AdministerPropertySet, ViewPropertySet, AdministerProperty, and ViewProperty Added ViewActiveInsights Added IgnoreHOSLogs Added ViewShareableLink, CreateShareableLink, and DeleteShareableLink


Added SearchArea property to allow searching for trips within a rectangular BoundingBox geographic area.


Data Intake Gateway (DIG)

DIG is our new platform for integrating custom telematics data into MyGeotab. To learn more, click here.

APIv1 JSON Serialization

To reduce the duration of process-intensive requests with large JSON payloads, the MyGeotab JSON-RPC API now uses System.Text.Json instead of Newtonsoft.JSON to serialize JSON data sent using the API. This change includes backward compatibility with Newtonsoft.JSON, with the following exception: Numbers with decimals will no longer be serialized using the decimal followed by a zero, if it is a whole number.

Nuget Package

The Nuget Package now targets .NET Standard 2.0,.NET Standard 2.1 and .NET 5.0. To improve serialization and deserialization performance, the Geotab.Checkmate.Objectmodel Nuget Package version 5.7.2102 replaced the JSON serialization library from Newtonsoft.JSON, with System.Text.Json.

Due to the performance improvement with System.Text.Json, the existing rate limit OverLimitException may be surpassed when calling the GetFeed API in a tight loop.

SDK Site

SDK site adjusted for AODA compliance.

Generator Add-in

New Geotab Drive Add-in features start/stop, hook and notifications added to generator-addin.

General SDK updates


Keywords property expanded to include EngineVehicleIdentificationNumber, VehicleIdentificationNumber and SerialNumber properties.

DeviceShare, DeviceShareSearch, DeviceShareType, DeviceShareSearch

Beta support for DeviceShare functionality added. This object is used for Extendable Services billing purposes.


Added Work, Rest, and WorkExemption properties.


Route Completion displays the completion status of custom routes and roads to help users maintain compliance with service level agreements. A route is completed based on the rule and conditions set by the user. Route completion exceptions represent servicing activity for a set of previously defined routes, within a service group.

A new RouteCompletion category is used to classify a rule in the Route Completion Report. Route completion rules are returned with unfiltered requests to the Get<Rule> API, or with the category filter UserExceptionRules. They can also be searched by RouteCompletion.


Added FaultStates. This allows faults to represent more precise and potentially multiple fault states. In the future, FaultState will be deprecated, though still available for backwards compatibility.


Removed PendingOff, ActiveOff, InactiveOff, as more accurately represented in FaultStatus.


Describes the current FaultState when a single fault is present.


Complements the FaultStates property of FaultData. Describes the status of a fault.


To comply with the GetFeed contract and avoid performance loss, fixed a bug that applies both fromDate and fromVersion when both are supplied in the API request. When fromVersion is supplied, fromVersion will be ignored.

This fix may return more records when both fromDate and fromVersion are supplied with before the given dateTime is returned.

Also, fixed a bug where toVersion is returned as 0, when a search returns no results. Now, when no results are returned, ToVersion is returned as the latest Feed version.


Added StandardHoursSoloExemptionHours.


Added PassCount. The expected number of passes through the Zone.


Added Groups search option to allow searches for Route Completion routes (RouteType.Service) that are members of GroupSearch(s). Only returns routes that are members of a service group hierarchy.


Added Service route type.


Added RouteCompletionReport.


Added UserSearchType property to address IsDriver search limitation for Driver or Drivers, and Users. UserSearch allows searching for drivers and users, users who are not drivers, and only users who are drivers. IsDriver will be deprecated but remain backwards compatible.


Added values to the UserSearch, UserSearchType properties.


Map Add-In

Map Add-ins are now fully supported, and no longer in Feature Preview. Click here to learn more about Map Add-ins

Storage API

Storage APIs are now fully supported, and no longer in Feature Preview. Click here to learn more about Storage APIs

General SDK updates


The dates of GPS, status and fault records are compared and uses the latest recorded data point as the DateTime.


The Set method will now allow modifying a value with no groups assigned.


Added a rate limit to the CreateDatabase method: 15/1m, 100/1h, 800/1d.


Added support for Untracked Assets. This allows adding devices that do not have a serial number.


  • Added the IsTransitioning property indicating whether an HOS log is in transition after the first driver accepts it.
  • Added the IsHidden property.


  • Added CanadaCycleOne, CanadaCycleTwo, OperatingZoneCanadaSouthOf60, OperatingZoneCanadaNorthOf60, OperatingZoneAmerica and INT_CoDriver.


The DutyStatusViolationSearch method can now search by user company or driver groups.


Updated the documentation for Canada-specific fields on DVIRLogs (LoadHeight, LoadWidth, and Odometer) to better describe how they are populated.


Added Inactive, PendingOff, ActiveOff, InactiveOff, and Cleared.


Fixed bug getting latest log for all users.


Users can now extrapolate the status date for diagnostics using the unit of measure None when Get is used with search (device, diagnostic, from and to date).


Added GetFeed for DeviceStatusInfo.


Added MimeContent to MessageContentType.


Fixed documentation of maximum size.


Fixed a bug getting zone stop rules.

SDK Runner

Fixed a UI bug rendering JSON, causing it to fail on an empty object.


  • Removed ResultsLimit of 1000 for the Get<Device> request.
  • Get<Device> request now accepts wildcard searches.
  • Added a Run, Select All and Deselect All button.
  • Updated warning messages if an input is missing or invalid when a user clicks Run.
  • Updated minor UI aesthetics.


Added a new sample illustrating tooltip which displays the odometer, fuel level, and battery charge level (if applicable) of a vehicle.


Added ViewDeviceShare, ViewDeviceShare, InstallRecord, ViewDeviceShare, ViewDeviceShare, ViewUserDeviceLink, and ViewUserDeviceLink.


Added the ServerId property, a unique identifier for a server/cluster.


New Media File API

Geotab is happy to announce a new set of APIs related to Media Files. This new API can be used to store images or video clips related to a device or driver.

MediaFile: MediaFile is a new type used to store images or video clips related to a device or driver. More information about media files can be found here.

MediaType: The type of Media.

Status: The status of an uploaded file.

MediaFileSearch: The object used to specify the arguments when searching for MediaFile. This will return the data describing a file, not the actual file.

Tag: A named tag to provide context to an entity.

DownloadMediaFile: Download a file for the given MediaFile. The Content type is determined by the file extension. Range headers are supported.

UploadMediaFile: Upload a file for the corresponding MediaFile using multipart/form-data POST request.

SecurityIdentifier: Added ViewMedia and ManageMedia.

General SDK updates


Added ThirdPartyData type to allow flexible length binary data format records to be stored.


GetCountOf method now accounts for user scope. It previously did not account for user scope, which was a bug.


Viewport is obsolete and no longer officially supported. It is replaced with SearchArea property. This will be better represented by the type BoundingBox. Providing a bounding box is simpler to use because map libraries provide viewport/map bounds in this way already. Backwards compatibility will be maintained with the Viewport property, though no longer documented.


Added BoundingBox which represents a geographic area defined by the top-left and bottom-right coordinates.


Added searching by diagnostic name.


Added searching by Diagnostic Code, Diagnostic Name, Diagnostic Source Name, Diagnostic Source Id, FaultState and Controller Id.


Added groups filter to generator-addin.


Added: America7DaySleeper, America7DayBigSleeper, America8DaySleeper, America8DayBigSleeper, OilTransport7DaySleeper, OilTransport7DayBigSleeper, OilTransport8DaySleeper, OilTransport8DayBigSleeper, America7DayNo34hSleeper, America8DayNo34hSleeper, AmericaNoRestRequirement7DaySleeper, AmericaNoRestRequirement7DayBigSleeper, AmericaNoRestRequirement8DaySleeper, AmericaNoRestRequirement8DayBigSleeper, OilWell7DaySleeper, OilWell7DayBigSleeper, OilWell8DaySleeper, OilWell8DayBigSleeper, OilTransportNoRestRequirement7DaySleeper, OilTransportNoRestRequirement7DayBigSleeper, OilTransportNoRestRequirement8DaySleeper, OilTransportNoRestRequirement8DayBigSleeper, OilWellNoRestRequirement7DaySleeper, OilWellNoRestRequirement7DayBigSleeper, OilWellNoRestRequirement8DaySleeper, OilWellNoRestRequirement8DayBigSleeper, AlaskaProperty7DaySleeper, AlaskaProperty8DaySleeper

Removed BETA attribute on the following

  • AnnotationLog
  • AnnotationLogSearch
  • ApplicationVersionInformation
  • DefectRemark
  • DefectSeverity
  • DutyStatusAvailability
  • DutyStatusAvailabilitySearch
  • DutyStatusLog
  • DutyStatusLogSearch
  • DutyStatusLogType
  • DutyStatusMalfunctionTypes
  • DutyStatusOrigin
  • DutyStatusState
  • DutyStatusViolation
  • DutyStatusViolationSearch
  • DutyStatusViolationType
  • DVIRDefect
  • DVIRDefectSearch
  • DVIRLog
  • DVIRLogSearch
  • DVIRLogType
  • DtcClass
  • DtcSeverity
  • ElectricEnergyEconomyUnit
  • ElectricEnergyUnit
  • HosRuleSet
  • InvalidMyAdminUserException
  • RepairStatusType
  • ShipmentLog
  • ShipmentLogSearch
  • TextMessageContentType
  • Trailer
  • TrailerAttachment
  • TrailerAttachmentSearch
  • TrailerSearch
  • VersionInformation
  • GetVersionInformation
  • GetFeed:Audit
  • GetFeed:Device
  • GetFeed:Diagnostic
  • GetFeed:DriverChange
  • GetFeed:Route
  • GetFeed:Rule
  • GetFeed:TextMessage
  • GetFeed:TrailerAttachment
  • GetFeed:Driver
  • GetFeed:Zone

Java SDK (Feature Preview)

We work hard to create fast and flexible tools that make sense for your business, and your feedback is an essential part of that process. With this in mind, we are previewing our new Java SDK, and we want you to tell us how we did! So go ahead – test the kit, join our Community Developer Discussions to help us improve our product, and get to know our users.

The Java SDK offers an easy way to integrate MyGeotab into Java software. All communication with Geotab services is accomplished using HTTPS with serialized data in JSON format. The Java library provides Java objects representing MyGeotab entities and automatically handles their JSON serialization and deserialization.

The Java SDK is available as a Maven Dependency Library from the Maven Central Repository and includes documentation with information and usage samples for your new kit.

You can find Java-based API usage samples at https://github.com/Geotab/sdk-java-samples

Samples include:

Get Logs for a given vehicle between a range of dates. Send Text Messages to and from a GO device Import Groups includes a console example that is also a Group import tool. The sample enables a one-time import of groups to a database from a CSV file. Import Devices includes console example that imports devices from a CSV file. Import Users includes a console example that imports users from a CSV file. Get Data Feed includes an example for retrieving GPS, StatusData and FaultData as a feed, and for exporting to CSV file.

Supported Methods include:

  • Authenticate
  • Get
  • Add
  • Set
  • Remove
  • GetFeed (LogRecord, StatusData, FaultData, Trip)
  • GetCountOf

Supported Objects include:

  • Id
  • Entity
  • EntityWithVersion
  • NameEntity
  • NameEtityWithVersion
  • LoginResult
  • Credentials
  • Coordinate
  • Color
  • Controller
  • ControllerSearch
  • Device (all types)
  • DeviceSearch
  • Diagnostic
  • DiagnosticSearch
  • DataDiagnostic
  • DiagnosticType
  • EngineType
  • EngineTypeSearch
  • FailureMode
  • FailureModeSearch
  • FaultData
  • FaultDataSearch
  • FlashCode
  • Group
  • GroupSearch
  • IoxAddOn
  • IoxAddOnSearch
  • LogRecord
  • LogRecordSearch
  • ParameterGroup
  • ParameterGroupSearch
  • Source
  • SourceSearch
  • StatusData
  • StatusDataSearch
  • TextMessage
  • TextMessageSearch
  • TextMessageContentType
  • Trip
  • TripSearch
  • UnitOfMeasure
  • UnitOfMeasureSearch
  • User
  • Driver
  • UserSearch
  • WorkTime
  • WorkTimeDetail
  • WorkTimeHolidayGroupId
  • WorkTimeSearch
  • DefectSeverity
  • DeviceType
  • DiagnosticType
  • DtcClass
  • DtcSeverity
  • ElectricEnergyEconomyUnit
  • FaultLampState
  • FaultResetMode
  • FaultState
  • FuelEconomyUnit
  • GoogleMapStyle
  • GoTalkLanguage
  • HosOption
  • HosRuleSet
  • MessageContentType
  • OpenStreetMapStyle
  • SecurityIdentifier
  • SecurityFilter
  • ZoneDisplayMode
  • MapView
  • FeedResult
  • DbUnavailableException
  • DuplicateException
  • GroupRelationViolatedException
  • InvalidMyAdminUserException
  • InvalidUserException
  • OverLimitException
  • RegistrationException
  • JsonRpcError
  • JsonRpcErrorData


General improvements

JSON serialization improvements have been made to increase the efficiency of API calls. This is especially noticeable on API calls with large response payload. For example, calling GetFeed of StatusData with full payload (50,000 results), the average end to end time decreased from 1800 ms to 800 ms.

TextMessage and TextMessageSearch

  • TextMessage - Added Recipient. This property is used to send a text message to a user.
  • TextMessageSearch - Added searching by IsDelivered, IsRead, UserSearch.
    • IsDelivered, when set to true, returns all text messages that were delivered to the recipient/device.
    • IsRead, when set to true, returns all text messages that were read by the recipient/device.
    • UserSearch searches TextMessages from a user, and users in the specified CompanyGroups or DriverGroups.
  • TextMessageSearch - Added searching by ContentTypes and IsDirectionToVehicle.
    • ContentTypes searches for TextMessages based on their MessageContentType.
    • IsDirectionToVehicle, when set to true, will return all text messages that were sent to the device. If set to false, it will return all text messages that were not sent to the device.


Exception Messages

Some exception messages contained escaped Unicode characters. We have fixed these to exclude escaped characters. See the example message change below:

The method \u0022NotAMethod\u0022 could not be found. Verify the method name and ensure all method parameters are included
The method 'NotAMethod' could not be found. Verify the method name and ensure all method parameters are included

This fix applies to messages of exception types MissingMethodException, AmbiguousMatchException, MissingMemberException and JsonSerializationException.



  • KnownId - Added ControllerGmcccFaultId, SourceGmcccId, SourceGmcccObsoleteId, ControllerBrpFaultId, SourceBrpId, SourceBrpObsoleteId
  • KnownId - Added NoExceptionEventId, NoRuleId


  • Device - Added AutoHos. This property is a toggle that represents automatic generation of DutyStatusLogs for a GoDevice and/or a CustomVehicleDevice.


  • DutyStatusViolation - Added HoursLimit and DaysLimit. These properties show the maximum or minimum hours and/or days limit for duty status violations.
  • DutyStatusViolation - Deprecated Reason property. This will be removed in a future version. The data in the Reason property string is now provided as DaysLimit and HoursLimit for better programmatic access.


  • UserSearch - Added searching by LicenseNumber, EmployeeNumber, HosRuleSet and UserAuthenticationType.

GetFeed DebugData


  • FuelTransaction - Added Device and Driver. These properties add fuel transactions for a device or user, rather than a loose match by VIN, etc. If left null, the application will attempt to match the fuel transaction to a device and driver at time of an Add or a Set. If no match is found, the fuel transaction’s Device and Driver properties defaults to NoDevice and UnknownDriver.


  • DVIRLog - Added AuthorityName, AuthorityAddress, Odometer, LoadHeight, LoadWidth and IsInspectedByDriver. These properties support Canadian DVIR inspections. AuthorityName and AuthorityAddress are automatically populated based on what the user’s corresponding fields are at the time. Odometer currently only applies to the entered Hubometer value for Trailer DVIRs.


  • ConditionType - Added IsValueLessThanPercent and IsValueMoreThanPercent. These properties are used to create a percentage threshold for speeding violations, rather than an exact speed value under/over the current posted road speed.

WebServerInvoker (Nuget only)

This method has been changed to use generics instead of passing type in, and returning an object, that needs to be cast. For example, var version = (string)(await invoker.InvokeAsync("GetVersion", typeof(string))); is now var version = await invoker.InvokeAsync<string>("GetVersion");

While not an officially supported component, it’s possible WebServerInvoker is being used by some integrations. For this reason we thought it worth mentioning this change.



! IMPORTANT: A bug has been identified with Geotab.Checkmate.Objectmodel NuGet packages older than version 5.7.2002, which can lead to serialization errors when a previous version received a new device plan value. Please update to the latest NuGet package to establish compatibility.

Map Add-In

Users can now create a Map Add-In without using the view panel on the right. For quick tasks such as adding icons or text to the Map, simply use the "noView":true parameter in your configuration file.

    "page": "map",
    "noView": true,
    "title": "Some title",
    "mapScript": {
        "script": "..."

You can now hide Vehicle State and Groups information from the tooltip when hovering or selecting vehicles on the Map. See the example below.

    device: {
        state: false,
        groups: false


  • Get: StatusData, LogRecord - In the v5.7.2001 release and earlier, we interpolate between points when using StatusData and LogRecord API. When a date is requested that is less than or greater than the data, we return the first/last value with the date of the time requested. To minimize confusion, we now return the first/last value with the correct dateTime.


  • User - Added the IsExemptHOSEnabled property to indicate whether the user is allowed to use HOS Personal Conveyance.
  • User - Added CompanyName, CompanyAddress, and CarrierNumber properties to store company and carrier information.
  • User - Added CountryCode, PhoneNumber, and PhoneNumberExtension properties to assign a phone number to a selected user.


  • Driver - Added LicenseProvince and LicenseNumber properties.
  • DriverRegulation - Added RestBreakNeeded, OffDutyNeeded, DaySummaries, WorkdaySummaries and CycleSummaries properties to DriverRegulation.


  • DutyStatusLog - Added DeferralStatus, and DeferralMinutes properties to define the duty status deferral and deferral minutes.
  • DutyStatusLogType - Added the PC_Exempted property to indicate the status of a driver.


  • DVIRLog - Added LogType and DefectList properties.
  • DVIRLogType - Most DVIRs are performed as either Pre or Post-trip inspections. To include middle-of-the day scenarios such as discovering new defects, or performing additional inspections, we have added a new Intrip inspection type.


  • RecipientType - Added HosEnabled and HosDisabled to RecipientType to automate HosEnabled/HosDisabled duty status logs using rule notifications. For example, when an exception event occurs, add an HosEnabled or HosDisabled duty status log at the same time as the event for an unidentified driver.
  • ConditionType - Added NoPreDVIRCheck and NoPostDVIRCheck to ConditionType when no Pre or Post-trip DVIR is performed between work days.
  • ConditionType - Added SpeedLimitAsMeasurement property to the ConditionType to create rules that only apply to posted road speeds that are greater than, or less than a specified value. For example, it may be more important to alert the driver when the vehicle is travelling less than 10mph, or greater than 10mph on a highway, than it is on a city street.
  • ConditionType - The NoDVIRCheck ConditionType is obsolete and will be removed in a future version. Please use NoPreDVIRCheck and NoPostDVIRCheck.


  • Zone - Added the ZoneTypes property for enumeration of zone types for a given zone.


  • GO9 - Added the ObdAlertEnabled property to allow users to enable/disable OBD alerts on their vehicles.
  • GoDevice - Added the ParameterVersionOnDevice property to track the current parameter version on the device. The current ParameterVersion property communicates the parameter version to the device; however, parameter updates are not always immediate.
  • Device - To prevent mismatches based on system clock settings, we have prevented ActiveFrom from being greater than ActiveTo when adding a device.

generator-addin version 3.0

We have modernized the Add-In scaffolding, development and packaging tool to use more current techniques and features:

  • Now using webpack.
  • Now using Puppeteer for browser testing.
  • UI now shows a collapsible navbar.
  • Can now toggle multi-language support.
  • Can now toggle blur and focus events to simulate leaving and re-visiting the Add-In page.
  • For more information visit GitHub: https://github.com/Geotab/generator-addin

mg-api-js version 2.0

This major release merges the API wrappers mg-api-js (previously browser only version) and mg-api-node (previously Nodejs only version) into a single project:

  • Uses single js library for nodejs or browser.
  • Supports Async promises and legacy callback behavior.
  • Simplifies authentication process, no more hard-to-understand callbacks.
  • Optional lower-level control over http response.
  • For more information visit GitHub: https://github.com/Geotab/mg-api-js

Other SDK Updates

  • BinaryDataSearch - Search by DeviceSearch.Groups property using BinaryDataSearch.
  • SecurityIdentifier - Added SystemSettings value to SecurityIdentifier.
  • Removed the DiagnosticCategory object from the SDK reference page. This is a legacy object that is no longer in use.
  • Updated the ExternalDeviceShutdownDelay documentation to clarify values in minutes rather than seconds.
  • Added a sample for getting fuel tax details using the API runner.
  • Feature preview items now marked as Beta in SDK reference.
  • Added a hardware Add-On Data Types section to the SDK.


  • AddInData (Feature Preview) - Remove requirement of AddInDataId for search by Id.

  • AuditSearch, DeviceSearch, ShipmentLogSearch, UserSearch, ZoneSearch - Added new search by list of Keywords. This allows searching “or” across multiple wildcard searchable string fields of an object in one request. For example, searching for device with keywords will search for matches against Comment, LicensePlate, Name, SerialNumber and VehicleIdentificationNumber matching the provided keywords. Keywords strings support wildcard character (%).

  • BinaryData (nuget only) - Fix issue deserializing enum values known to the server but unknown to older nuget package.

  • Calculated Engine Hours Search - As mentioned in 5.7.1904 What’s New, DiagnosticEngineHoursAdjustmentId is now interpolated using trips and DiagnosticIgnitionId values when a search includes a from/toDate value(s) to provide exact values by default.

  • CompanyDetails - Add documentation describing field length limits. Added more specific error messages relating to max field lengths from CreateDatabase method.

  • Device - HardwareId is no longer returned as part of Device object. For more information regarding this change, please refer to this community post.

  • DVIRDefect - Providing RepairUser and RepairDateTime are no longer supported for unrepaired DVIRDefect.

  • DVIRLog - DefectList must be provided with DVIRLog.

  • GetFeed - Fixed corner case where it was possible to miss data in feed due to concurrency issue.

  • GetFeed StatusData - Fix, providing a search to GetFeed StatusData containing a DiagnosticSearch which has no results within the provided limit of records will now return a feed version advanced by the results limit or remaining records when less then results limit.

  • Get Diagnostic - Fix issue searching by DiagnosticType.ProprietaryFault or DiagnosticType.LegacyFault causing error result.

  • GoCurve - Added IsIoxConnectionEnabled. (Adds to GO4v3, GO5, GO6, GO7, GO8, GO9)

  • Group (nuget only) - Removed left and right parameters from constructor and Group.Get method.

  • GroupRelations - Added AddInDatas property. When Group linked AddInData (Feature Preview) is blocking a Group remove, a list blocking AddInData Ids will be returned in the GroupRelations property of GroupRelationViolatedException.

  • HosRuleSet - Added WashingtonIntrastate7Day, WashingtonIntrastate8Day, NoneCanada, HosRuleSetCanadaNorthOf60CycleOne, HosRuleSetCanadaNorthOf60CycleTwo

  • SecurityIdentifier - Added ViewGroups, AdministerWiFiHotspotSettings, ViewWiFiHotspotSettings

  • TextMessage - Proper support of active from/to dates. *Messages that have not been sent by active to date will not be sent.

  • TextMessageSearch - ParentTextMessageId (long) is obsolete. Usage should be replaced with ParentMessageId (Id).

  • User - Added MaxPCDistancePerDay

  • UserSearch - Added “negatable” search of FistName, LastName and Name properties. If the first character of this search property is ‘!’, then the API will know to negate the search logic. For example: field = "!John%", is equivalent to: WHERE NOT LIKE 'John%'.


  • AddInData (Feature Preview) - Groups are now optional for AddInData objects, currently in Feature preview. Previously, groups were a required property for the AddInData object. This limited the potential usage of AddInData as there are situations where data should be available to all users regardless of scope, and some users were not able to access data when they belonged to groups outside the data’s scope. Removing this restriction means any user is now allowed to get an AddInData object if no group is specified for the object.

  • API.cs (nuget only) - Now implements IApi interface. This allows for simpler unit testing of integration code using mocks.

  • BinaryDataType - Added SoftwareVersionFull

  • Calculated Engine Hours Search - With a custom setting (ENABLEENGINEHOURSINTERPOLATION) applied to your database, DiagnosticEngineHoursAdjustmentId will now be interpolated using trips and DiagnosticIgnitionId values when a search includes a from/toDate value(s) to provide exact values. To apply this custom setting to your database, please reach out to Geotab support. This will become the default behavior in v5.7.2001.

  • DatabaseExists fixed to include databases existing in other federations.

  • FuelTransactionProductType - Added Hydrogen and DieselExhaustFluid.

  • FuelTransactionProvider - Added GFN.

  • HosRuleSet - Added HosRuleSetCanadaCycleOneTeam and HosRuleSetCanadaCycleTwoTeam.

  • LoginResult - Removed unsupported legacy property SecurityToken. This property duplicated the supported property Credentials. It was previously maintained for compatibility with MyGeotab Web Server 5.6.1 which is no longer supported.

  • Rule - Fix, don’t allow adding Rules without Conditions.

  • SecurityIdentifier - Added ViewGroups.


  • DutyStatusLog: Added EditRequestedByUser.

  • DutyStatusLog: Locations will not be included with DutyStatusLog by default. To include locations must use dutyStatusLogSearch.IncludeLocations: true.

  • DutyStatusLogType: Added HosEnabled, HosDisabled.

  • DVIRLog: Added RepairDate.

  • IoxAddOn: Added DateTime representing when the channel was set to the given value.

  • Serialization: ISO date time at zero hour will now have full ISO time ex 1986-01-01 -> 1986-01-01T00:00:00.000Z.

  • HosRuleSet: Added AmericaShortHaul14hrWorkday, AmericaShortHaul8Day14hrWorkday, OilTransportShortHaul14hrWorkday, OilTransportShortHaul8Day14hrWorkday, CaliforniaFlammableLiquidWithRestRequirement, CaliforniaSchoolPupilWithRestRequirement, CaliforniaFarmProductWithRestRequirement, OilTransportCaliforniaProperty, OilWellCaliforniaProperty, AmericaSalespersonNonCdlShortHaul

  • User: Active from/to: The user property ActiveTo will automatically be set to max date (2050-01-01) to denote that it is active. To account for differences in Client machine time vs Server machine time, we are allowing users to set the value of ActiveTo to a max window of 24 hours in the future (i.e. Current Time + 24 hours). In this situation we are considering it to be historical.

  • CustomData: Incomplete custom data is no longer returned via GetFeed API.

  • GetFeed: Added feeds for entities that could generate more than 50,000 records in a single request. Please take note of the limits on results.


  • ApplicationVersionInformation: Added beta support

  • BinaryDataType: Added SoftwareVersionSection1, SoftwareVersionSection2, SoftwareVersionSection3

  • DefectRemark: Added beta support

  • DefectSeverity: Added Unregulated

  • Device: Adding a device will now force the ActiveTo property to max date. Setting a device’s ActiveTo property to a future date, but not max date, will force the value to max date.

  • DeviceType: Added GO9

  • DiagnosticType: Added ProprietaryFault, LegacyFault

  • DriverRegulation: Added beta support

  • DtcClass: Added beta support

  • DtcSeverity: Added beta support

  • DutyStatusAvailability: Added properties CycleRest, DutySinceCycleRest, Is16HourExemptionAvailable, IsAdverseDrivingExemptionAvailable, IsOffDutyDeferralExemptionAvailable

  • DutyStatusAvailabilityDuration: Removed from documentionation, will be obsoleted in future

  • DutyStatusViolationType: Added CycleRest and DutySinceCycleRest

  • DVIRDefect: Added beta support

  • ElectricEnergyUnit: Added beta support

  • ElectricEnergyEconomyUnit: Added beta support

  • FaultData: Added ClassCode, Severity and SourceAddress properties

  • GO9: Added support

  • GroupSearch: Added search by Reference

  • HosRuleSet: Added CaliforniaFlammableLiquid, CaliforniaSchoolPupil, CaliforniaFarmProduct, OilTransportCalifornia8day, OilWellCalifornia8day

  • KnownId: Added UnitOfMeasureLitersPerTonneId, DiagnosticStateOfChargeId, DiagnosticTotalLifetimeBatteryEnergyInDuringACChargingId, DiagnosticTotalLifetimeBatteryEnergyInDuringDCChargingId, DiagnosticTotalLifetimeOnBoardChargerEnergyOutDuringACChargingId, DiagnosticTotalLifetimeOnBoardChargerEnergyInDuringACChargingInId, DiagnosticOnBoardChargerAcInputVoltageId, DiagnosticElectricVehicleChargingStateId, DiagnosticElectricVehicleBatteryPowerId, DiagnosticOnBoardChargerACInputPowerId, DiagnosticOnBoardChargerDCOutputPowerId, DiagnosticElectricEnergyInId,DiagnosticElectricEnergyOutId, HosRuleSetCaliforniaFlammableLiquid, HosRuleSetCaliforniaSchoolPupil, HosRuleSetCaliforniaFarmProduct, HosRuleSetOilTransportCalifornia8day, HosRuleSetOilWellCalifornia8day, ControllerProprietaryFaultId, ControllerLegacyFaultId, SourceProprietaryId, SourceLegacyId, DiagnosticBluetoothNitricOxideConcentrationId, DiagnosticBluetoothNitrogenDioxideConcentrationId, DiagnosticBluetoothCarbonMonoxideConcentrationId, DiagnosticBluetoothAmmoniaConcentrationId, DiagnosticBluetoothMethaneConcentrationId, DiagnosticBluetoothEthanolConcentrationId, DiagnosticBluetoothHydrogenConcentrationId, DiagnosticBluetoothCarbonDioxideConcentrationId

  • MimeContent: Added ChannelNumber property

  • RepairStatusType: Added beta support

  • SecurityIdentifier: Added InspectDVIR, CertifyDVIR - Removed DailyUsageReport

  • User: Added ElectricEnergyEconomyUnit and isEmailReportEnabled properties

  • User: Fixed bug where isDriver property would be included with id in nested driver entities. This property is removed from nested entities. It will remain in non-nested users.

  • VersionInformation: Server is obsolete and replaced with more detailed Application property (see ApplicationVersionInformation)

  • .Net nuget package: Group constructor with only ID has been removed.

Result and Rate Limits

For an in-depth description of the result in rate limit changes in 5.7.1902 and future releases see this blog post

  • Concepts section updated to reflect new result and rate limits.

  • Result Limits: Maximum result limit of 50,000 has been added to generic Get (including Get using search) requests of entity types: AnnotationLog, DVIRLog, TrailerAttachment, IoxAddOn, CustomData, BinaryData. Results limits will be added to more entity types in future releases.

  • Rate Limits: Rate limits of 1 RPS (request-per-second) has been added to all GetFeed APIs.


  • Sun-setting support for SendEmail API. No longer available in API documentation.

  • Device: Active from/to:
    • The device property ActiveTo will automatically be set to max date (2050-01-01) to denote that it is active.
    • To account for differences in Client machine time vs Server machine time, we are allowing users to set the value of ActiveTo to a max window of 24 hours in the future (i.e. Current Time + 24 hours). In this situation we are considering it to be historical.
  • DVIRLog: Added Location property.

  • SecurityIdentifier: Added ViewBusinessIntelligence, ActiveTrackingClearance.

  • SecurityRole: Added EmailSent, SkipHosVerify, SkipHosClaimUnassigned, SkipDvirInspect.


  • API.cs (.Net only): Fix bug, Windows 10 using IIS Express possible hanging synchronous requests using nuget package 5.7.1803\5.7.1804.


  • Add/Set Device: ParameterVersion will auto increment server side when device parameters property changed. Server must see that ParameterVersion has incremented to send parameters to an installed GO device (ex device beeping instructions). Previously, ParameterVersion required manual increment.

  • API.cs (.Net only): Fix bug, in certian senario changing Timeout property could abort the action on timeout and not cancel underlying request.

  • CustomVehicleDevice: Support of vehicle specific custom devices which provide vehicle specific properties and functionality. Custom device product ID must be of CustomVehicleDevice type. Contact your reseller for more information.

    • Improved support for calculated odometer and raw odometer with third-party diagnostic KnownId DiagnosticThirdPartyOdometerId and OdometerAdjusmentId

    • Improved support for calculated engine hours with third-party diagnostic KnownId DiagnosticThirdPartyEngineRunTimeId and EngineHoursAdjusmentId

    • VehicleIdentificationNumber property moved from CustomDevice to CustomVehicleDevice

    • Added LicencePlate and LicenceState properties

  • DutyStatusAvailability: Added BETA support for Recap and CycleAvailabilities properties

  • DutyStatusAvailability: Replaced Availabilities list with separate properties: Driving, Cycle, Rest, Duty, Workday

  • DeviceType: Added CustomVehicleDevice.

  • DriverChange: DriverChange object Id property is no longer backed by integer type. It is now backed by GUID type. When update 1804 is applied to the database, all previous numeric entity Id’s will be invalidated and assigned a new GUID Id’s. This could pose an issue if your integration stores driver change Id and you then reference the DriverChange by that Id. Note: JSON representation of Id was previously string and remains string type.

  • DutyStatusLogType: Added ExemptionOffDutyDeferral.

  • DutyStatusViolationType: Added DailyDriving, DailyRest, DailyDuty, DailyOff.

  • KnownId: Added DiagnosticThirdPartyEngineRunTimeId, DiagnosticThirdPartyOdometerId.

  • GetFeed LogRecord: Fixed bug with inconstant results limit.

  • SecurityIdentifier: Added DirectSupportAdmin, UserLoginStatusRead, UserLoginStatusSet.

  • SecurityIdentifier: Values AlarmSoundList, Tracking, CreateNewSqlDatabase, EngineControllerList, PurgeSettings, SendImmobilizationInstruction are obsolete and will be removed in version 1806+.

  • SecurityRole: Added SupportTicketInsert, TrainingTicketInser, SupportTicketSet, TrainingTicketSetUser, LoginFailure, UserLockout, UserUnlocked, ShipmentLogInsert, ShipmentLogSet, ShipmentLogRemove, TrailerAttachmentInsert, TrailerAttachmentSet, TrailerAttachmentRemove.

  • ZoneSearch: Added FromDate and ToDate search properties providing ability to filter zones by their active dates.

API.cs (.Net only): There is a known issue on Windows 10 using IIS Express with possible hanging synchronous requests using nuget package 5.7.1803\5.7.1804. This issue is solved in 5.7.1804.1 or greater.


  • SecurityRole: Added CertificateSet permission

  • DriverChangeSearch: Added property Type indicating the DriverChangeType to search for exclusively.

API.cs (.Net only): There is a known issue on Windows 10 using IIS Express with possible hanging synchronous requests using nuget package 5.7.1803\5.7.1804. This issue is solved in 5.7.1804.1 or greater.


  • DutyStatusLog: Added properties Odometer, EngineHours, EventRecordStatus, EventCode, EventType

  • DutyStatusLogType: Added SituationalDrivingClear

  • FuelTaxDetail: Added properties HourlyIsOdometerInterpolated, IsEnterOdometerInterpolated, IsExitOdometerInterpolated

  • FuelTaxDetail: Obsolete IsClusterOdometer - Superseded by the IsEnterOdometerInterpolated, HourlyIsOdometerInterpolated, and IsExitOdometerInterpolated properties. Will be removed in future version.

  • FuelTaxDetailSearch: Added properties IncludeBoundaries, IncludeHourlyData

  • SecurityIdentifier: Added ViewTripTypeChangeData, EditTripTypeChangeData


An issue was discovered which could cause integrations using the Geotab.Checkmate.Objectmodel nuget package v5.7.1801 and lower to encounter a serailizaion failure when a new DiagnosticType is introduced. The issue has been addressed in nuget package v5.7.1802. To ensure compatibility, it is strongly recommended that all integrations referencing the nuget package v5.7.1801 and lower update to version v5.7.1802 as soon as possible. (this issue is only relevant to .Net nuget package users)


  • KnownId - Removed: UnitOfMeasureLitersPer100KilometersId. Diagnostics associated with this unit of measure now use UnitOfMeasureKilometersPerLiterId. This will not affect any previously recorded data.

  • KnownId - Added: DiagnosticGpsLogReasonId, DiagnosticEngineRoadSpeedId

  • ConditionType - Added: DVIRDefect - Currently works with Devices not Trailers

  • SecurityIdentifier - Added: DriverIdentificationClearance, AccelerometerDataClearance, ServicePlansClearance, AuxiliaryClearance, EngineStatusDataClearance, ResellerControlClearance, GoTalkClearance, StatusGroupsClearance, ProductGuideClearance, FeaturePreviewClearance, NewsNotificationsClearance, ManageAddinsClearance, DeviceCurrentStatusClearance


In early 2018 the following legacy properties will be removed:

Authenticate: userLogin parameter. This was kept around for compatibility with legacy (5.6.* and lower) integrations. It has not been publicly exposed or documented since version 5.6 of MyGeotab. It is planned to be removed as a valid parameter in version 5.7.1803. The userName parameter is the standard supported property that should be used.

LoginResult: securityToken property. LoginResult is the object returned by the Authenticate method. It’s property securityToken was kept around for compatibility with legacy (5.6.* and lower) integrations. It has not been publicly exposed or documented since version 5.6 of MyGeotab. It is planned to be removed as a valid parameter in version 5.7.1803. The property credentials is the standard supported property that shares the same value.


  • API.cs (.Net only) - Fix: When password and session id are supplied to constructor, session id will be used until no longer valid. Previously, session id would only be used if password was not supplied.

  • FuelTaxDetail - Added properties: ”IsEnterOdometerInterpolated”, “IsExitOdometerInterpolated”, “HourlyIsOdometerInterpolated”

  • User - Removed property: “MenuCollapsedNotified”


  • GetAddresses - Added: “hosAddresses” parameter to optionally search for ELD compliant address

  • UnitOfMeaure - Added: Kilowatt hours (“UnitOfMeasureKiloWattHoursId”)

  • SecurityIdentifier - Added “ViewBinaryData”, “ManageAddInData”, “ViewAddInData”

  • HosRuleSet - Added “CarrierExemption”

  • .Net SDK samples updated to target netcoreapp2.0

  • .Net nuget package now supports framework: netstandard2.0 (removed support for net46)


  • API.cs (.Net only) - Added cancellation token parameter to AuthenticateAsync and CallAsync methods.

  • DutyStatusLog - Added “Malfunction” property - The DutyStatusMalfunctionType of the DutyStatusLog record. As a flag it can be both a diagnostic and malfunction state which is used to mark status based records (e.g. “D”, “SB”) as having a diagnostic or malfunction present at time of recording.

  • DutyStatusLog - Added “Sequence” property - The sequence number, which is used to generate the sequence ID.

  • DutyStatusLogType - Added “EnginePowerup”, “EngineShutdown”, “EnginePowerupPC”, “EngineShutdownPC”, “PowerCompliance”, “EngineSyncCompliance”, “TimingCompliance”, “PositioningCompliance”, “DataRecordingCompliance”, “DataTransferCompliance”, “OtherCompliance”, “MissingElementCompliance”, “UnidentifiedDrivingCompliance”, “INT_PC”, “INT_D”.

  • Controller - Added short integer “CodeId” property, which will replace the “Code” property. New “AnyController” for J1708 engine diagnostics to allow replacing those engine diagnostics identical except for the controller with one diagnostic. J1708 engine diagnostics for 58 separate SIDs were updated.

  • CustomDevice - Added “VehicleIdentificationNumber” property.

  • FuelTaxDetail - Added “Driver” property.

  • DriverChangeSearch - Added “IncludeOverlappedChanges” property - A value indicating whether to include the last driver change before the from date or the most recent driver change (if the from date is not provided).

  • InvalidUserException - Message changed from to “Incorrect MyGeotab login credentials…” to “Incorrect login credentials…”.

New Objects

  • DutyStatusMalfunctionType - Added - Malfunction or Diagnostic type of the DutyStatusLog.

  • DutyStatusState - Added - The record status of DutyStatusLog.


  • Web Request Notifications: fix {zoneId} and {zoneComment} tokens would not get populated unless {zone} or {address} were also included.

  • Documentation: API Reference updated to include default value and max length of object properties in their descriptions. Default values are automatically used when adding an entity and those properties have no value assigned (are null). For example, adding a Group with color = null, will add group with default color “Blue”. If a property has no default value, it is required when calling “Add”.

  • Set operations now retain the value of missing (null) properties. A positive effect of this change is that is remedies a long existing issue that could occur when a server is a newer version (ex 5.7.1704) than client nuget package (ex 5.7.1701) which is making requests to it. The issue could arise when a new Enum value was added and exists only in the server’s code base, not client client nuget package. When the unknown Enum was received by the client, it could not be deserialiezed into an Enum value and would throw an exception. Starting in nuget package version 5.7.1707.x, the unknown Enum value will be deserialiezed to null. This means the object can round trip” on “Set” because the server will now (starting at version 5.7.1707) fill in the null value with the existing saved value of the property.

  • Added: JsonRpcError, JsonRpcErrorData - to better align JSON-RPC errors with the JSON-RPC 2.0 specification. Non-standard (now legacy) error properties have been deprecated. This should not affect nuget package users as the API.cs object serialized the JSON-RPC error results as Exceptions which are thrown. This may affect users consuming the raw JSON-RPC result of requests. It’s recommended to update usages to the official, standardized, properties as outlined in the API Reference. Of note: the new objects exposes “requestIndex” property which is the index at which a “multicall” failed.

  • Added: User/Driver objects now have property “IsDriver” to clearly indicate when a user is a driver. This also makes it easier to save a user who is no longer a driver, set the property to false and save.

  • Added: FuelTaxDetail - A new entity which provides API access to calculated fuel tax data. In the past this data was only available via the IFTA Report in MyGeotab where it was calculated on the fly. Fuel tax details are now processed using live data and stored in the database and they can be access using the API via Get and GetFeed methods. Full documentation coming soon.


  • DatabaseId has been removed from .net package as per the December 2016 post

  • DutyStatusLogType: Added: “Authority” requires update of .net nuget package to ensure compatibility

  • FuelTransaction: Added: “ExternalReference”

  • FuelTransactionSearch: Added: “ExternalReference” and “Provider”

  • User: Added: “AuthorityName” and “AuthorityAddress”

  • GetFeed of Trip now includes stop point (woohoo!) *requires server running 5.7.1706.x

  • API Clients section added to SDK documentation

  • Geotab.Reflection package no longer a dependency of Geotab.Checkmate.Objectmodel nuget package


  • GO8: Added preliminary support for GO8 devices requires update of .net nuget package to correctly read/write GO8 devices

  • IoxAddOn: Added preliminary support for IoxAddOn, IoxAddOnSearch, SerialIoxContent,KnownIoxAddOnType, IoxOutputContent, MimeContent

  • TextMessageSearch: Added search by: “ParentTextMessageId”


  • DutyStatusLog - Added property: State

  • DutyStatusLogSearch - Added search by device groups

  • API.cs is now compatible with System.Net.Http v4.3.1

  • Fix, API.cs proxy support. New constructor that accepts HttpMessageHandler, deprecated constructor that accepts IWebProxy and Proxy property

  • Fix, content type of API response headers changed from “text/html” to “application/json”


  • DevicePlan: Added: D2GODriverChallengeStandard requires update of .net nuget package to ensure compatibility

  • HosRuleSet.cs Added: America7DayNo34h, America8DayNo34h, AmericaShortHaulNo34h, AmericaShortHaul8DayNo34h, BrazilShortHaul requires update of .net nuget package to ensure compatibility

  • SecurityRole.cs Added: ReassignData requires update of .net nuget package to ensure compatibility

  • TimeZoneId: it was possible to add a user or device with “Unknown” time zone ID. This was only possible using the API and “Unknown” is not returned via the GetTimeZones method or a valid Olson time zone. The ability to add users and devices with “Unknown” as been removed and all users and devices with this time zone ID have been changed to “Etc/GMT”


  • FuelTransactionProvider: Added - “Voyager”, “UltramarCST”

  • SecurityIdentifier: Added - “PurchaseMarketplacePaidItems” requires update of .net nuget package to ensure compatibility

  • SecurityRole: Added: “TripTypeChangeInsert”, “TripTypeChangeRemove”, “CustomReportSendError” requires update of .net nuget package to ensure compatibility

  • Fix: nuget package issue making API requests from Azure WebJob

  • Fix: TimeZoneInfoAdjustmentRule serialization (result of GetDaylightSavingRules)


  • Added “Hardware” section to SDK

  • Nuget: Replace usage of Microsoft.Net.Http with System.Net.Http (WebRequest => HttpClient)

  • DiagnosticSearch: Added DiagnosticType property to search by the type of diagnostic. Ex, only GoFault diagnostics.

  • Added “ExpiredPasswordException” object. This exception can be thrown if a user makes a request while their ChangePassword flag is true. The user must change their password before they are able to successfully make further requests

  • SecurityRole: Added “ReportHosAvailability” requires update of .net nuget package to ensure compatibility

  • If you are using the .net nuget package and plan to use the new “HOS Only” device plan you must update to nuget package version 5.7.1701 or greater to ensure compatibility.


  • Id refactoring - The ID object has been refactored in the .NET SDK. See this forum post for details.

  • Updated description of GoCurveAuxiliary (GO4v3, GO6, GO7) properties: ImmobilizeUnit: With ImmobilizeUnit being true, it is used to define the delay before the driver identification reminder is sent out if the driver key has not been not swiped. The maximum value of this property is 255. When it is less or equal to 180, it indicates the number of seconds of the delay. When it is greater than 180, the delay increases 30 seconds for every increment of one of this property. For example, 180 indicates 180 seconds, 181 indicates 210 seconds, and 182 indicates 240 seconds. ImmobilizeArming: A value mainly used for enable or disable driver identification reminder. If it is used in conjunction with vehicle relay circuits, it can force the driver to swipe the driver key before starting the vehicle.


  • Authentication rate limiting being phased in. See this Blog Post for more details. Added “Rate Limiting” section to SDK Concepts.

  • KnownId - Added: “DiagnosticDieselExhaustFluidId”, ”DiagnosticDieselParticulateFilterLampId”, “DiagnosticPowerTakeoffEngagedId”, “DiagnosticPowerTakeoffTotalFuelUsedId”

  • KnownId - Removed: “DiagnosticBluetoothBeaconOutOfRangeId”

  • Trailer - Added “Groups” property. Trailers can now be added to groups.

  • TrailerSearch - Added property groups. Search for Trailers that are members of these GroupSearch(s) one of it’s children or one of it’s parents.

  • *SecurityIdentifier - Added: “RepairDVIR”

*Important: Update .Net nuget package to ensure compatibility


  • KnownId - Added: “DiagnosticDieselExhaustFluidId”, “DiagnosticDieselParticulateFilterLampId”, “DiagnosticPowerTakeoffEngagedId”, “DiagnosticPowerTakeoffTotalFuelUsedId”

  • HosRuleSet - Added: “Florida7Day”, “Florida8Day”, “FloridaShortHaul7Day”, “FloridaShortHaul8Day”

New Objects

  • OverLimitException: Thrown when a user has exceeded the query limit of an API (currently only applies to authentication). Previously, if a user reached this limit, an InvalidUserException would have been thrown.


  • KnownId - “DiagnosticRamFailure” name fixed to be “DiagnosticRamFailureId”


  • MessageContentType - Added: “DriverWhiteList”

  • DutyStatusLogType - Added: “PC” (Personal conveyance driver status), “YM” (Yard move driver status), “WT” (Wait time oil well driver status).

  • FuelTransaction - Added “ProductType” property.

  • FuelTransactionProvider - Added “WexLegacy”, “Fuelman” and “Comdata”.

  • GoDevice - Added “GoTalkLanguage” property.

  • User - Added “IsYardMoveEnabled” and “IsPersonalConveyanceEnabled” properties.

  • HosRuleSet - Added “OilWell7Day”, “OilWell7DayBig”, “OilWell8Day”, “OilWell8DayBig”, “AmericaTexas”, “AmericaTexasShortHaul”, “OilTransportTexas”, “OilWellTexas”, “AmericaShortHaul8Day”, “AmericaShortHaulPassenger8Day”, “OilTransportShortHaul8Day”, “AmericaTexasShortHaul8Day”

  • KnownId - Added “DiagnosticSystemAlertId”

  • TimeZoneInfo - Adjusted to support recently updated Windows times zones and the latest version of IANA/Windows maped time zones. Click here for more info

New Objects

  • DriverWhiteListContent

  • GoTalkLanguage

  • FuelTransactionProductType

For detailed information on new features please review the API Reference.

*.Net users will require a dll update


  • Performance and maintenance enhancements.


  • DiagnosticTypes - Added “GoFault”

  • FuelTransactionProvider - Added “WexCustomer”, “Drive” and “FuelTracker”

  • SecurityIdentifier - Added “EventOccurrenceList”,”ViewCertificates”,”ManageCertificates”

  • HosRuleSet - Added “AmericaSalesperson”

  • .Net: MachineSettings - Fix to work with ASP.Net Web API projects

  • .Net: DataToComponenet - Updated “Equals” method to compare payloads for equality

  • .Net: DutyStatusOrigin - removed unused “Serializable” attribute

  • .Net - Changes in API.cs to use HttpClient instead of HttpWebRequest in order to support .Net core in the future.

  • dll requires .Net Framework version v4.6+

New APIs

  • GetDirections

  • OptimizeWaypoints

New Objects

  • Directions

  • Leg

  • Step

  • Waypoint

*.Net users will require a dll update


  • Added new Units of Measure (km/L, kg/km, L/lane km, L/ton and g/m^2) ** .Net users will require a dll update*


  • For security reasons, TLS 1.2 is being enforced on all servers. To fix the integration, please update to at least .NET 4.5 and use the latest nuget package. For more information, please visit the forum discussion.

  • Driver has a new property: viewDriversOwnDataOnly. When set to true, a driver gains the ability to view their own driving data. ** .Net users will require a dll update*


  • TextToSpeechContent has been renamed to GoTalkContent and RelayContent has been renamed to IoxOutputContent ** .Net users will require a dll update*


  • New recipient types added that will send even if there is a delay in data. (BeepTenTimesRapidlyAllowDelay, BeepThreeTimesAllowDelay, BeepThreeTimesRapidlyAllowDelay , TextToSpeechAllowDelay) ** .Net users will require a dll update*

  • Access to third party messages via API. ** .Net users will require a dll update*

New Objects

  • IoxAddOn

  • KnownIoxAddOnType

  • IoxAddOnSearch

  • IoxOutputContent

  • GoTalkContent


  • Fixed operator overloading for Id object in .Net dll (id1 == id2 is the same as id1.Equals(id2)) - *If you are using dll version 5.7.1508-1511 this will require a dll update.

  • New addin: Trips Streetview added to GitHub


  • Added new security clearances for:

    • ViewMarketplacePaidItems: Allow user to see paid Marketplace items

    • DeviceAdminDeleteUnplugReplace: Access to removing vehicle, unpluging device, and replacing device.

*If you are using dll version 5.7.1508-1510 this will require a dll update.


  • New SDK. Featuring the new SDK Runner, new methods and objects (click here to see the preview items)

  • Code snippets in the reference documentation. Now you can see working examples of the methods as they are used in the runner.

  • .Net users will require a .DLL update to access the latest features.

New Methods

  • CreateDatabase

  • DatabaseExists

  • GenerateCaptcha

  • GetVersionInformation

New Objects

  • AnnotationLog

  • AnnotationLogSearch

  • CaptchaAnswer

  • CaptchaException

  • Color

  • CompanyDetails

  • DVIRLog

  • DVIRLogSearch

  • DiagnosticCategory

  • DistributionList

  • DuplicateException

  • DutyStatusAvailability

  • DutyStatusAvailabilityDuration

  • DutyStatusAvailablitySearch

  • DutyStatusLog

  • DutyStatusLogSearch

  • DutyStatusLogType

  • DutyStatusViolation

  • DutyStatusViolationSearch

  • DutyStatusViolationType

  • EntityWithVersion

  • FuelEconomyUnit

  • FuelEvent

  • FuelTransaction

  • FuelTransactionProvider

  • HosRuleSet

  • IncludeGroups

  • InvalidMyAdminUserException

  • MapView

  • NameEntity

  • NameEntityWithVersion

  • RadioDownloaderSearch

  • Recipient

  • RecipientType

  • RegistrationException

  • Search

  • ShipmentLog

  • ShipmentLogSearch

  • TextMessageContentType

  • Trailer

  • TrailerAttachment

  • TrailerAttachmentSearch

  • TrailerSearch

  • VersionInformation

  • VolumeUnit


  • BingMapStyle

  • EngineType

  • EngineTypeSearch

  • StatusDataRequestContent


  • DriverChangeSearch received new search points including: DeviceSearch, DriverSearch, FromDate and ToDate. Checkout the API Reference for more details

  • DistributionList is now supported by the API. Checkout the API Reference for more details. Some related objects are still pending support (Notification, NotificationTemplate, BinaryData)

  • Add-In examples have been added to SDK documentation

  • When searching for Zones you can now specify a traversal method of the group tree. You can choose to include just the specified element, just the ancestors, just the descendents, or both ancestors and descendents. See the ZoneSearch object in the API Reference for more details

  • Fix documentation for object properties

  • Added KnownIds: DiagnosticDeviceTotalIdleFuel

  • Added FuelTransaction API (Beta)

  • HOS/DVIR objects supported in API. Key objects are AnnotationLog, DVIRLog, DutyStatusAvailability, DutyStatusLog, DutyStatusViolation, and ShipmentLog. Check out the API Reference for more details

  • Added Groups property to StatusDataSearch. This allows searching for status data for devices in the supplied groups. This does not return interpolated results

  • Added from/to date search to UserSearch object. Checkout the API Reference for more details

  • API Reference, objects now show properties from inherited classes. For example GoDevice extends Device and will show properties of GoDevice and Device in the documentation

  • Geotab Announces New DEV Channel for Developers


  • New condition types added - .Net will require dll update


  • Add KnownId for DiagnosticDeviceTotalIdleFuelId - .Net will require dll update


  • Get all zones now populating points correctly (see forum post)

  • Fixed TimeZoneInfo isDaylightSavingsSupported always false using .Net API client

  • Units of measure have been converted to use Known Id’s (see forum post)

  • Adding, setting and removing of some entities has been disabled via the API. Exception Event, Trip, Status Data, Fault Data, Log Record with exceptions for adding odometer and engine hours adjustments and dismissing faults

  • Clearer documentation of date and long values in API Reference

  • Data Feed section added to Guides portion of SDK (see document)