Authenticate by POSTing a JSON-RPC Authenticate call to the Geotab API endpoint (my.geotab.com/apiv1) with your username, password, and database name; store the returned credentials object (session token + server)
Use the returned server and session credentials for all subsequent calls; always POST to the server URL returned by Authenticate, not the generic my.geotab.com, as accounts may be on regional servers
To pull historical data, call Get with the entity type (e.g., LogRecord for GPS positions, StatusData for engine data) and a search object specifying device IDs and a date range
For streaming new data efficiently, call GetFeed with the entity type and a fromVersion token returned by a prior GetFeed call; this returns only records added since the last call and updates the version token
Store the fromVersion token between polling cycles; use it to resume from exactly where you left off and avoid duplicate records
Known gotchas
Result sets are capped per call; if the response indicates more results are available (or the result count equals the limit), paginate by adjusting the search or using the version token — never assume a single call returns all data
The Geotab API uses JSON-RPC over HTTPS POST, not REST; the endpoint path is fixed (/apiv1) and the method name (Get, GetFeed, etc.) is inside the JSON body — treating it as REST will fail
Session tokens expire after a period of inactivity; implement re-authentication on 401 or InvalidUserException errors rather than caching credentials indefinitely
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp