Hello @kjin-7291
Thank you for sharing such a detailed and well-structured question in our community. It makes it much easier to give you a precise answer! Welcome, and I'm glad you found us. I am not a developer so I used an AI tool to help me with this answer. If there are any issues or anything that does not make sense pease let me know and I will reach out to our SDK team to support further here.
Short answer: MediaFile is the correct endpoint for GO Focus Plus video clips. The reason your queries are returning zero records is almost certainly a SolutionId mismatch this is the most common pitfall with this API.
How the MediaFile API Works
The MediaFile entity is Geotab's standard way to store and retrieve binary media (video, images) attached to a device or driver. It supports the standard JSON-RPC methods: Get, GetFeed, Add, Set, Remove, and GetCountOf.
The critical thing to understand is that every MediaFile record is scoped to a SolutionId. This is a GUID-style string that acts as a namespace multiple integrations can coexist in the same database without their files mixing. When you call Get on MediaFile, you only see records whose SolutionId matches what you supply.
Why your MediaFile query returns zero records:
The video clips created by the GO Focus Plus camera hardware are stored under Geotab's own internal SolutionId. When you query the API without that SolutionId (or with your own integration's SolutionId), you get an empty result the data is there, but filtered out.
The Correct Workflow
Step 1 — Query MediaFile by device and date range:
// JavaScript example (Geotab API)
const results = await api.call("Get", {
typeName: "MediaFile",
search: {
deviceSearch: { id: "b1234" }, // your device Id
fromDate: "2024-01-01T00:00:00Z",
toDate: "2024-01-02T00:00:00Z"
// solutionId: "<see note below>"
}
});
Step 2 — Download the binary:
Once you have MediaFile records with Status: "Ready", use the DownloadMediaFile method (a separate HTTP call) to retrieve the actual MP4 binary.
Getting the GO Focus Plus SolutionId
This is the key step you'll need to unblock the integration. There are two ways to find it:
1. Try a broad query first — query MediaFile by deviceSearch and a date range without specifying a SolutionId to see if any records come back. Some environments allow this as a discovery step.
2. Contact Geotab Support — ask for the SolutionId used by the GO Focus Plus camera system in your database. This is the most reliable path. Reference the MediaFile API and the Video > Events page where you can already see the clips.
Why ExceptionEvent Has No Video Link
This is expected behaviour. ExceptionEvent captures rule violations (speeding, harsh braking, etc.) and can trigger a camera clip recording, but the video itself is stored as a separate MediaFile entity. The link between an ExceptionEvent and its associated MediaFile record is through the device ID and overlapping timestamps there is no direct foreign key in the
ExceptionEvent payload.
Useful References
- MediaFile object reference(https://developers.geotab.com/myGeotab/apiReference/objects/MediaFile)
- mg-media-files sample repository on GitHub (https://github.com/Geotab/mg-media-files) — contains .NET and JavaScript code samples for the full upload/download workflow
- Rate limits to be aware of: Get — 350 req/min; GetFeed — 60 req/min (180s timeout per request); downloads — 240/min
Please let us know if you have any other questions. We are here to help.
Have a great day!
Eishi FUN