REST APIs

Authentication

POST{YOUR_MYG_HOST}/apiv1

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.

Parameters

methodstringrequired

Always "Authenticate"

params.databasestringrequired

Your MyGeotab database name

params.userNamestringrequired

Service account email address

params.passwordstringrequired

Service account password

Response

Both responses return HTTP 200. Check the body for result or error.

MyGeotab Host
Database
Username
Password
cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
    "method": "Authenticate",
    "params": {
      "database": "my_database",
      "userName": "sa@company.com",
      "password": "your_password"
    }
  }'

Camera List

POST{YOUR_MYG_HOST}/apiv1

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.

Body Params

idstring

Camera ID to search for. When specified, all other parameters are ignored.

fromDateISO 8601 date

Start of the date range to search for active cameras — e.g. 2026-06-01T00:00:00Z

toDateISO 8601 date

End of the date range to search for active cameras — e.g. 2026-06-10T00:00:00Z

vendorsstring

Filter by camera vendor(s). Select one or more.

cameraSerialNumbersstring

Filter by camera serial number(s). Separate multiple values with commas.

deviceSerialNumbersstring

Filter by GO device serial number(s). Separate multiple values with commas.

deviceActivityFilterstring

Filter by asset tracker status. Default: Active (only cameras paired to active devices).

cameraStatusSearchobject

The fields below are sent nested inside cameraStatusSearch in the request body.

statusesstring

Filter by camera connectivity status. Select one or more.

deviceSearchobject

The fields below are sent nested inside deviceSearch in the request body.

namestring

Filter by asset name (partial match supported).

vehicleIdentificationNumberstring

Filter by asset VIN.

deviceIdsstring

Filter by asset IDs. Separate multiple values with commas.

groupFilterConditionobject

The fields below are sent nested inside groupFilterCondition in the request body.

groupIdsstring

Company group ID(s) — matches cameras whose paired devices belong to these groups. Separate multiple values with commas. A single ID is sent as { groupId }; multiple IDs become one { groupId } condition each in groupFilterConditions.

relationstring

How the group conditions combine. Defaults to Or. Applies when more than one group ID is set.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Get",
      "params": {
          "typeName": "Camera",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Camera Feed

POST{YOUR_MYG_HOST}/apiv1

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.

Body Params

fromVersionstringrequired

Version cursor from the previous call's `toVersion`. Use `"0000000000000000"` for the initial call to retrieve all cameras.

resultsLimitinteger

Maximum number of records to return per call. Default: 50000.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "GetFeed",
      "params": {
          "typeName": "Camera",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Camera Status

POST{YOUR_MYG_HOST}/apiv1

Retrieve the connectivity status of cameras in your database. Use the id values returned by the Camera List API as cameraIds.

Body Params

cameraIdsstring

Camera ID(s) to get status for — the id field from the Camera List API. Separate multiple values with commas.

statusesstring

Filter by connectivity status. Select one or more.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Get",
      "params": {
          "typeName": "CameraStatus",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Camera Event Types

POST{YOUR_MYG_HOST}/apiv1

Retrieve all camera event types available in your database, including associated MyGeotab rules. No search parameters — returns everything.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Get",
      "params": {
          "typeName": "CameraEventType",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Event List

POST{YOUR_MYG_HOST}/apiv1

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.

Body Params

fromDateISO 8601 daterequired

Start of the time range — e.g. 2026-06-01T00:00:00Z

toDateISO 8601 daterequired

End of the time range — e.g. 2026-06-10T00:00:00Z

cameraSerialNumbersstring

Filter by camera serial number(s). Separate multiple values with commas.

highMagnitudeOnlyboolean

Set to true to return only high-magnitude events. Default: false

pageinteger

Page number, starting at 0. Default: 0

sizeinteger

Number of results per page. Default: 100

sortstring

Sort order: BY_TIMESTAMP_DESC (default) or BY_MAGNITUDE_DESC

eventTypeFilterarray

Filter by event type. Optionally add a magnitude filter: a label plus an aggregator (avg, max, min, countByThreshold or total) with greaterThanEqual and/or lessThanEqual bounds — available for built-in video rules only.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Get",
      "params": {
          "typeName": "CameraEvent",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Event Recordings

POST{YOUR_MYG_HOST}/apiv1

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.

Body Params

eventIdstringrequired

Event ID(s) to retrieve recordings for — the `id` field from the Event List API. Separate multiple values with commas. Maximum 100 per request.

includeUnblurredboolean

Set to true to include unblurred media alongside the blurred versions. Default: false

mediaTypestring

Filter by media type. Select one or more. Returns all types by default.

sourcestring

Filter by camera source — e.g. road, cabin, rear, auxiliary_1. Separate multiple values with commas. Returns media from all sources by default.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Get",
      "params": {
          "typeName": "CameraEventRecording",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Trip Thumbnails

POST{YOUR_MYG_HOST}/apiv1

Retrieve the periodic thumbnail packs a camera uploaded during a time window. Each pack is a .thm archive of snapshots, returned with a short-lived signed download URL. See Reading Thumbnail Packs for how to extract them.

Scope: Supports Geotab cameras only.

The window cannot exceed 6 hours. Packs that overlap the window are included, so the first and last can extend past it. An empty packs array means the camera uploaded no thumbnails in that window. Packs with no downloadable file are left out, and failureReason then says how many. Requires the View recorded video permission.

Body Params

cameraSerialNumberstringrequired

Serial number of the Geotab camera

fromDateISO 8601 daterequired

Start of the time window — e.g. 2026-09-18T13:00:00.000Z

toDateISO 8601 daterequired

End of the time window. Must be later than fromDate, and no more than 6 hours after it — e.g. 2026-09-18T14:00:00.000Z

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Get",
      "params": {
          "typeName": "CameraThumbnailPack",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Reading Thumbnail Packs

Reading Thumbnail Packs

The Trip Thumbnails API returns a signed download URL for each thumbnail pack. Each pack is a .thm file: an uncompressed tar archive of JPEG snapshots. While on a trip, the camera takes a snapshot about once a minute, and each pack covers a few minutes.

Contents

Entry name Content
<timestamp>.vid_1 Road-facing snapshot (JPEG). <timestamp> is the capture time in epoch milliseconds.
<timestamp>.vid_2 Cabin-facing snapshot (JPEG), present when the camera captures the cabin.
<timestamp>.<source>.meta Internal metadata. Skip these entries.

Snapshot entries have no .jpg extension, so add one when you save them. Some packs contain an empty 512-byte block between entries; tell your tar reader to skip empty blocks rather than stop at the first one.

Extract the snapshots

packs is the packs array from the Trip Thumbnails response.

import io, os, tarfile
from urllib.request import urlopen

for pack in packs:
    data = urlopen(pack["url"], timeout=30).read()
    # Some packs have empty blocks between entries
    tar = tarfile.open(fileobj=io.BytesIO(data),
                       ignore_zeros=True)
    for entry in tar:
        # e.g. 1758200983736.vid_1
        name = os.path.basename(entry.name)
        if not entry.isfile() or name.endswith(".meta"):
            continue
        ms, source = name.rsplit(".", 1)
        with open(f"{ms}_{source}.jpg", "wb") as f:
            f.write(tar.extractfile(entry).read())

To read packs in the browser without a tar library, see the View Trip Thumbnails recipe.

Overview

Event Capture

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.

How It Works

Capturing footage takes two steps:

  1. Place a request. Call Place a Capture Request with the camera and the time window you want. The API queues your request and returns a request ID. Save this ID — you need it to track the request.
  2. Track the request. Do one of the following:
    • Poll — call Retrieve Request Status with the request ID at an interval that suits you.
    • Webhook — subscribe to the 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.

Request lifecycle

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.

Queue Behavior

Each camera has its own request queue. When your request is delivered depends on the camera's state:

  • Online and on a trip — the request is delivered right away.
  • In light nap mode — the camera wakes up to handle the request.
  • Offline or not on a trip — the request waits in the queue for up to 24 hours (adjustable with queueTimeMinutes). If the camera does not come online in time, the request expires.
Queue limits

A camera's queue holds up to 16 pending requests. A new request is rejected right away (status REJECTED) if:

  • the queue is already full, or
  • the camera has been offline for more than 5 days.

Capturing from Multiple Cameras

To request footage from many cameras at once, use Place Bulk Capture Requests instead of calling Place a Capture Request once per camera. It accepts up to 100 requests per call and counts as a single API call against your rate limit.

Each request is handled independently, so one rejected request does not affect the others. Track each accepted request with its eventCaptureRequestId exactly as you would for a single request.

  • Matching results to requests. Results are not returned in the same order as your request. Match each one using cameraSerialNumber, fromDate, durationSeconds, mediaType and requestEventName.
  • Retrying. If the call fails with a server error or times out, the outcome is unknown. If you send the entries again, requests that were already accepted come back as DUPLICATE with the original eventCaptureRequestId.
  • Whole-call errors. An empty list, more than 100 entries, or a null entry fails the whole call.

Place a Capture Request

POST{YOUR_MYG_HOST}/apiv1

Submit a request to capture video or a snapshot from a Geotab camera for a specific point in time.

Scope: Supports 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.

Body Params

cameraSerialNumberstringrequired

Serial number of the target Geotab camera

fromDateISO 8601 daterequired

Start of the capture window — e.g. 2026-06-10T14:30:00Z

durationSecondsintegerrequired

Duration of the capture in seconds

requestEventNamestringrequired

Label for this capture request

mediaTypestringrequired

VIDEO — captures video and snapshot; SNAPSHOT — captures snapshot only

queueTimeMinutesinteger

How long to queue the request when the camera is offline or sleeping. Default: 1440 (24 hours)

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Add",
      "params": {
          "typeName": "CameraEventCaptureRequest",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Place Bulk Capture Requests

POST{YOUR_MYG_HOST}/apiv1

Submit capture requests for up to 100 cameras in a single call. Each entry works like Place a Capture Request, with its own camera, time window and media type.

Scope: Supports Geotab cameras only.

Entries are processed independently. A rejected entry returns status: "REJECTED" and a failureReason without affecting the others. Track each accepted request with Retrieve Request Status using its eventCaptureRequestId.

Body Params

entitiesarray

Fill in the fields below and click + Add request to queue each request. Queued requests and the one being filled in are all sent in entities.

cameraSerialNumberstringrequired

Serial number of the target Geotab camera

fromDateISO 8601 daterequired

Start of the capture window — e.g. 2026-09-18T13:16:00.000Z

durationSecondsintegerrequired

Duration of the capture in seconds

requestEventNamestringrequired

Label for this capture request

mediaTypestringrequired

VIDEO — captures video and snapshot; SNAPSHOT — captures snapshot only. Not case-sensitive.

queueTimeMinutesinteger

How long to queue the request when the camera is offline or sleeping. Default: 1440 (24 hours)

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "AddBatch",
      "params": {
          "typeName": "CameraEventCaptureRequest",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Retrieve Request Status

POST{YOUR_MYG_HOST}/apiv1

Check the current status of one or more previously submitted event capture requests.

Body Params

eventCaptureRequestIdstringrequired

One or more capture request IDs to look up. Separate multiple values with commas.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Get",
      "params": {
          "typeName": "CameraEventCaptureRequest",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

GPS

POST{YOUR_MYG_HOST}/apiv1

Retrieve GPS position records for a device over a time range.

Body Params

deviceSearchobject

The fields below are sent nested inside deviceSearch in the request body.

idstringrequired

MyGeotab device ID — e.g. b4

fromDateISO 8601 daterequired

Start of the time range — e.g. 2026-02-04T22:54:00.000Z

toDateISO 8601 daterequired

End of the time range — e.g. 2026-02-04T23:54:00.000Z

resultsLimitinteger

Maximum number of records to return. Default: 2500

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Get",
      "params": {
          "typeName": "LogRecord",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Other Sensors and CANBus

POST{YOUR_MYG_HOST}/apiv1

Retrieve sensor and CANBus diagnostic data for a device over a time range.

Body Params

deviceSearchobject

The fields below are sent nested inside deviceSearch in the request body.

idstringrequired

MyGeotab device ID — e.g. b1E93

fromDateISO 8601 daterequired

Start of the time range — e.g. 2026-06-17T04:00:00.000Z

toDateISO 8601 daterequired

End of the time range — e.g. 2026-06-18T04:00:00.000Z

resultsLimitinteger

Maximum number of records to return.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Get",
      "params": {
          "typeName": "StatusData",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Overview

Webhooks

The Geotab Video Platform webhook system lets you register an HTTP endpoint and receive real-time notifications via POST requests when events occur.

How It Works

  1. Use the List Available Topics API to see all available topics.
  2. Register your endpoint using the Register a Webhook API and subscribe to the topics you need.
  3. Update your subscription at any time using the Update a Webhook API.
  4. Remove your endpoint using the Delete a Webhook API.

Notification Format

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

Available Topics

topic.partner.event.capture.request.status

Sent 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.synched

Sent 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"
  }
}

List Available Topics

POST{YOUR_MYG_HOST}/apiv1

Retrieve all webhook topics available for subscription.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Get",
      "params": {
          "typeName": "CameraWebhookTopic",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Register a Webhook

POST{YOUR_MYG_HOST}/apiv1

Register an HTTP endpoint to receive real-time notifications for one or more topics.

Body Params

namestringrequired

Display name for this webhook endpoint.

urlstringrequired

HTTPS URL that will receive POST notifications.

tokenstring

Optional validation token included in each notification for verification.

topicsstringrequired

Topics to subscribe to. Separate multiple with commas — e.g. topic.partner.event.capture.request.status, topic.partner.event.synched

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Add",
      "params": {
          "typeName": "CameraWebhook",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Get Registered Webhooks

POST{YOUR_MYG_HOST}/apiv1

Retrieve all registered webhook endpoints for your database.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Get",
      "params": {
          "typeName": "CameraWebhook",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Update a Webhook

POST{YOUR_MYG_HOST}/apiv1

Update the URL, token, or subscribed topics for an existing webhook endpoint.

Body Params

idintegerrequired

ID of the webhook registration to update.

namestringrequired

Display name for this webhook endpoint.

urlstringrequired

HTTPS URL that will receive POST notifications.

tokenstring

Optional validation token.

topicsstringrequired

Updated list of topics — replaces the existing list. Separate multiple with commas.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Set",
      "params": {
          "typeName": "CameraWebhook",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!

Delete a Webhook

POST{YOUR_MYG_HOST}/apiv1

Remove a registered webhook endpoint and stop receiving notifications.

Body Params

idintegerrequired

ID of the webhook registration to delete.

Response

CredentialsNot authenticated

Use the Authentication section at the top of this page to sign in. Your session fills in automatically.

cURL Request
curl --request POST \
  --url {YOUR_MYG_HOST}/apiv1 \
  --header 'Content-Type: application/json' \
  --data '{
      "method": "Remove",
      "params": {
          "typeName": "CameraWebhook",
          "credentials": {
              "database": "YOUR_DATABASE",
              "userName": "YOUR_USERNAME",
              "sessionId": "YOUR_SESSION_ID"
          }
      }
  }'
Response

Authenticate in the sidebar, then click Try It!