Authenticate with your MyGeotab service account credentials to get a session ID. The session is stored automatically and used for all subsequent API calls on this page.
Both responses return HTTP 200. Check the body for result or error.
Retrieve a list of cameras in your database. The API fetches Geotab native cameras and integrated partner cameras. All search parameters are optional — omit them to return all cameras.
The fields below are sent nested inside cameraStatusSearch in the request body.
The fields below are sent nested inside deviceSearch in the request body.
The fields below are sent nested inside groupFilterCondition in the request body.
Poll for camera additions and changes using a version cursor. Each call returns only the records that changed since your last call, making this efficient for keeping a local camera list in sync. On first call, pass fromVersion: "0000000000000000" to receive all cameras. On subsequent calls, pass the toVersion value returned by the previous response.
Retrieve the connectivity status of cameras in your database. Use the id values returned by the Camera List API as cameraIds.
Retrieve all camera event types available in your database, including associated MyGeotab rules. No search parameters — returns everything.
Retrieve video events from Geotab cameras and partner cameras with Geotab video coaching enabled. Use the GVP Event Tile Grid library to display events and the Video Player library to play them.
Retrieve the media recorded for one or more video events. Pass the id values returned by the Event List API as eventId. Each event returns its recording window, where the media currently lives, and a list of recordings with signed URLs you can play with the Video Player library.
Scope: Supports Geotab cameras only. For third-party cameras, use the vendor's native API.
The Event Capture API lets you request video or snapshots from a Geotab camera. You can capture what the camera sees right now, or pull footage it has already recorded.
Capturing footage takes two steps:
topic.partner.event.capture.request.status webhook topic, and status updates are pushed to you as they happen.When the status reaches COMPLETED, your footage is ready.
A request moves through these statuses:
| Status | Description |
|---|---|
QUEUED |
The request is waiting to be sent to the camera. |
SENT |
The request has reached the camera. |
ONGOING |
The camera is recording or retrieving the footage. |
COMPLETED |
The footage is ready to use. |
FAIL |
Something went wrong. Check failureReason in the response for details. |
DUPLICATE |
You already have an identical request for this camera and timestamp. |
EXPIRED |
The camera did not pick up the request in time, so it was discarded. |
REJECTED |
The request was not accepted — see Queue limits below. When this happens, eventCaptureRequestId is empty. |
Each camera has its own request queue. When your request is delivered depends on the camera's state:
queueTimeMinutes). If the camera does not come online in time, the request expires.A camera's queue holds up to 16 pending requests. A new request is rejected right away (status REJECTED) if:
Submit a request to capture video or a snapshot from a Geotab camera for a specific point in time.
Scope: Works for Geotab cameras only.
After placing a request, poll its status with the Retrieve Request Status endpoint, or subscribe to the topic.partner.event.capture.request.status webhook topic for real-time updates.
Check the current status of one or more previously submitted event capture requests.
Retrieve GPS position records for a device over a time range.
The fields below are sent nested inside deviceSearch in the request body.
Retrieve sensor and CANBus diagnostic data for a device over a time range.
The fields below are sent nested inside deviceSearch in the request body.
The Geotab Video Platform webhook system lets you register an HTTP endpoint and receive real-time notifications via POST requests when events occur.
All webhook POST requests share the same top-level structure:
| Field | Type | Description |
|---|---|---|
uuid |
string | Unique ID for this notification |
timestamp |
string (ISO 8601) | Timestamp when the notification was dispatched |
topic |
string | Topic identifier for the notification type |
data |
object | Payload specific to the topic |
topic.partner.event.capture.request.statusSent when the status of an event capture request changes.
{
"uuid": "2dcb66ba-ff70-93e6-8f66-ac9ea28df949",
"timestamp": "2025-06-11T15:12:18.124Z",
"topic": "topic.partner.event.capture.request.status",
"data": {
"requestId": "11a0512e-61ad-4937-b270-e02ca5fae9be",
"database": "my_database",
"cameraSerialNumber": "GE02245XNJQ5I",
"deviceSerialNumber": "GA4DM0VP43MY",
"deviceId": "b221",
"status": "COMPLETED",
"failureReason": "",
"fromDate": "2026-06-10T14:30:00Z",
"durationSeconds": 10,
"requestEventName": "Broom Activated",
"mediaType": "VIDEO"
}
}topic.partner.event.synchedSent when a camera event is synced with the MyGeotab driver assignment.
{
"uuid": "2dcb66ba-ff70-93e6-8f66-ac9ea28df949",
"timestamp": "2025-06-11T15:12:18.124Z",
"topic": "topic.partner.event.synched",
"data": {
"id": "1718372943321228",
"exceptionId": "aK7upVD7zbEm5vw179Gk5fw",
"cameraSerialNumber": "GE02245DCXZEM",
"database": "my_database",
"deviceSerialNumber": "GAHF85FP54F",
"deviceId": "b15",
"deviceName": "Ford Ranger - 4512 - California",
"driverId": "b32",
"ruleName": "Harsh Braking",
"eventStart": "2025-06-11T15:12:18.124Z",
"eventEnd": "2025-06-11T15:12:25.781Z",
"recordingStart": "2025-06-11T15:12:15.124Z",
"recordingEnd": "2025-06-11T15:12:26.781Z",
"eventCaptureRequestId": null,
"highMagnitude": false,
"created": "2025-06-11T15:12:19.003Z"
}
}Retrieve all webhook topics available for subscription.
Register an HTTP endpoint to receive real-time notifications for one or more topics.
Retrieve all registered webhook endpoints for your database.
Update the URL, token, or subscribed topics for an existing webhook endpoint.
Remove a registered webhook endpoint and stop receiving notifications.