API | Access your Dride programmatically


API

The webservices described below will help you build your own application based on your Dride or dride-core enabled device. Let's dive in.

Base URL

http://192.168.10.1

Or

https://<SERIAL_NUMBER>.dride.cloud

You can either access this endpoint locally by using the base URL or by using the dride.cloud proxy server by using the DNS SERIAL_NUMBER.dride.cloud. Replace <SERIAL_NUMBER> with your device's actual serial number.



Authentication

In order to communicate with your units, you will need a valid access token. You can acquire it via this API:



https://us-central1-dride-2384f.cloudfunctions.net/getToken?apiKey=**API_KEY**

Response

{
  "idToken": "TOKEN_STRING_HERE",
  "expiresIn": "3600"
}

Add your access token to each API request you make as an authorization header. For example, you should add this field to each request header:



Authorization TOKEN_STRING_HERE

Routes

URL Params Type Description
/getClips limit: int (optional, default 200)
page: int (optional, default 0)
fromTimestamp: int (optional)
untilTimestamp: int (optional)
withEMR: boolean (optional, default true)
GET A list of video clips. Pagination is available via page and limit. Time range filtering via fromTimestamp and untilTimestamp. withEMR controls inclusion of Emergency/Event clips.

Response

{
  "videos": [
    {
      "id": "10510",
      "timestamp": "10510",
      "clips": [
        {
          "name": "front", // Camera name/identifier
          "videoSrc": "http://192.168.10.1/recordings/10510/videos/0.mp4",
          "thumbSrc": "http://192.168.10.1/recordings/10510/thumbs/0.jpg",
          "checksum": "5f039b4ef0058a1d652f13d612375a5b"
        }
      ],
      "gpx": "http://192.168.10.1/recordings/10510/route.geojson",
      "haveEmergencyEvent": true,
      "event": [
        {
          "name": "buttonPress",
          "date": 1629730257
        }
      ],
      "onSubDir": false // Indicates if stored on primary or secondary storage
    }
  ]
}

URL Params Type Description
/getEMRClips limit: int (optional, default 200)
page: int (optional, default 0)
fromTimestamp: int (optional)
untilTimestamp: int (optional)
GET A list of all emergency/event video clips. Pagination and time range filtering are available.

Response

// Same as /getClips response structure
{
  "videos": [
    // ... array of video objects
  ]
}

URL Params Type Description
/getRoute videoId: string (optional)
rideId: string (optional)
fromTimestamp: int (optional)
untilTimestamp: int (optional)
isEMR: boolean (optional, for use with videoId)
isSUB: boolean (optional, for use with videoId)
GET Get GPS route. Priority: rideId, then videoId, then fromTimestamp & untilTimestamp. If no params, latest route is fetched. isEMR and isSUB specify storage for videoId.

Response

{
  "Route": [ // Note: Field name in actual response is "Route" (capital R)
    {
      "timestamp": "1636446515",
      "latitude": 34.443334,
      "longitude": 32.548484,
      "speed": 44,
      "heading": 184
    }
    // ... more points
  ]
}

URL Params Type Description
/triggerEvent eventName: string (e.g., "crash", "GPIO_event") GET Will save an emergency event under the category provided. Event videos can be retrieved via /getEMRClips.

Response

{
  "done": true 
}

URL Params Type Description
/getSettings None GET A list of device settings.

Response

// Example (actual response contains many more fields):
{
  "videoRecord": {
    "value": true, // Booleans are actual booleans, not strings
    "readOnly": false,
    "type": "bool"
  },
  "resolution": {
    "value": "1080p60fps",
    "readOnly": false,
    "type": "select",
    "options": ["720p60fps", "1080p60fps", "3840p30fps"]
  },
  // ... other settings like flipVideo, gps, speaker, mic, etc.
  "networkSSID": {
    "value": "Dride4K",
    "readOnly": true,
    "type": "string"
  },
  "serial": {
    "value": "YOUR_SERIAL_NUMBER",
    "readOnly": true,
    "type": "string"
  },
  "hooks": {
    "type": "hooks",
    "value": [
      {
        "id": "48a13dcd-8d7a-4bce-b39d-3daf671de38c",
        "inputType": "gpio",
        // ... other hook properties
      }
    ],
    // ... hook options
  }
}

URL Params Type Description
/setSetting fieldName: string
fieldValue: any
withReset: boolean (optional)
GET Update a device setting. withReset (if true) may trigger a device reset.

Response

{
  "done": true, // Note: Field name in actual response is "done"
  "Info": "NO_CHANGE" // Optional field, present if setting was already the same
}

URL Params Type Description
/deleteClip videoId: string GET Delete a video by videoId.

Response

{
  "done": true // or false if error. Note: Field name is "done"
}

URL Params Type Description
/deleteAllClips None GET Delete all video clips on the device.

Response

{
  "done": true // or false if error. Note: Field name is "done"
}

URL Params Type Description
/getSerialNumber None GET Return device serial number and CPU info.

Response

{
  "serialNumber": "4da5860e7144f4386940668a26d29ec8", // Note: Field name casing
  "CPU": "sun8iw16"
}

URL Params Type Description
/setTimestamp timestamp: int (UNIX timestamp, 10 digits) GET Set device time.

Response

{
  "done": true // Note: Field name is "done"
}

URL Params Type Description
/setLiveMode mode: string ("on" or "off")
resolution: string (e.g., "4k", "1080", "640")
streamType: string (optional, "all" or "mjpeg")
withSlaves: boolean (optional, default true)
GET Enter or exit live mode. streamType dictates HLS/RTSP ("all") or MJPEG. withSlaves applies mode to connected slave cameras. resolution sets stream resolution.

Response

{
  "done": true, // Note: Field name is "done"
  "dashboard": "http://192.168.10.1/live/dashboard", // Dashboard URL
  "cameras": [ // Array of available camera streams
      {
        "name":  "cam1",
        "iframe": "http://192.168.10.1/live/camera?camId=1", // URL for iframe embedding
        "hls":    "http://192.168.10.1:8080/stream/camera1/index.m3u8" // HLS stream URL
      }
      // ... other cameras if applicable
    ]
}

URL Params Type Description
/isOnline None GET Check if the dashcam is online (has internet connectivity).

Response

{
  "isOnline": true // boolean
}

URL Params Type Description
/haveErrors None GET Check if the dashcam has any operational errors/issues.

Response

{
  "issues": ["no_sd", "another_issue"] // Array of issue strings. 
}

URL Params Type Description
/doFOTA withFile: boolean (optional) GET Update device firmware. If withFile is true, expects a file upload. Otherwise, downloads from cloud if internet is available.

Response

{
  "done": true // Note: Field name is "done"
}

URL Params Type Description
/getCellularDetails None GET Get cellular connection status and info.

Response

{
  "provider": "Partner",
  "providerStatus": "registered",
  "dataService": "1",
  "selectedNetwork": "3gpp",
  "imei": "000000000000000",
  "iccid": "00000000000000000000",
  "rssi": "-68 dBm",
  "rsrq": "-13 dB",
  "rsrp": "-100 dBm",
  "snr": "-2.4 dB",
  "Model": "EC25EFAR06A21M4G",
  "cellNetworkType": "lte",
  "phoneNumber": "+1000000000",
  "simLocked": false,
  "simPresent": true,
  "LTEDataUsageReceived": 22166559,
  "LTEDataUsageSent": 146308417,
  "fwVersion": "EC25EFAR06A21M4G_20.200.20.200"
}

URL Params Type Description
/ping None GET Simple ping to check if the API is responsive, this can be used to detect if the device is a drideOS powered unit

Response

{
  "done": true
}

URL Params Type Description
/getRides page: int (opt)
limit: int (opt)
fromTimestamp: int (opt)
untilTimestamp: int (opt)
GET Fetches a list of rides with pagination and time filtering.

Response

{
  "rides": [
    {
      "id": "1a87755c",
      "startTimestamp": 1749978375,
      "endTimestamp": 1749978675,
      "thumbnail": "http://192.168.10.1/recordings/1749978375/thumbs/0.webp",
      "gpx": "http://192.168.10.1/getRoute?rideId=1a87755c",
      "haveEmergencyEvent": false,
      "active": true,
      "inParking": true
    }
  ]
}

URL Params Type Description
/getRideClips page: int (opt)
limit: int (opt)
rideId: string
GET Fetches clips associated with a specific ride ID.

Response

// Similar to /getClips response
{
  "videos": [
    {
      "id": "1749978375",
      "timestamp": 1749978375,
      "clips": [
        {
          "name": "cam0",
          "videoSrc": "http://192.168.10.1/recordings/1749978375/videos/0.mp4",
          "thumbSrc": "http://192.168.10.1/recordings/1749978375/thumbs/0.webp",
          "duration": 60.288
        },
        {
          "name": "cam1",
          "videoSrc": "http://192.168.10.1/recordings/1749978375/videos/1.mp4",
          "thumbSrc": "http://192.168.10.1/recordings/1749978375/thumbs/1.webp",
          "duration": 60.736
        }
      ],
      "gpx": "http://192.168.10.1/getRoute?videoId=1749978375&isEMR=false&isSUB=false",
      "haveEmergencyEvent": false,
      "onSubDir": false
    }
  ]
}

URL Params Type Description
/getCurrentLocation None GET Gets the current GPS location of the device.

Response

{
  "route": [
    {
      "timestamp": 1678886400,
      "latitude": 34.123,
      "longitude": -118.456,
      "speed": 50,
      "heading": 180,
      "seq": 154
    }
  ]
}

URL Params Type Description
/getSearchRange None GET Gets the available search range for clips (e.g., days ago).

Response

{
"daysAgo": [
    0,
    1,
    2,
    3
  ]
}

URL Params Type Description
/formatSubStorage None GET Formats the sub-storage (e.g., SD card).

Response

{
  "done": true // or error if failed
}

URL Params Type Description
/getOdometer None GET Gets the total odometer reading and history.

Response

{
    "totalOdometer": 3663,
    "history": [
        {
            "week": 24,
            "year": 2025,
            "odometer": 3659
        },
        {
            "week": 23,
            "year": 2025,
            "odometer": 70707
        }
    ]
}

URL Params Type Description
/reorderCameras order: [{cameraId: 0, positionIndex 1},{cameraId: 1, positionIndex 0} ] GET Updates the display order of cameras.

Response

{
  "done": true 
}

URL Params Type Description
/startRecording None GET Starts video recording.

Response

{
  "done": true 
}

URL Params Type Description
/stopRecording None GET Stops video recording.

Response

{
  "done": false
}

URL Params Type Description
/getLiveState None GET Checks if the live streaming process is running.

Response

{
  "done": true 
}

URL Params Type Description
/getCellularReception None GET Gets detailed cellular reception quality (strength, type, scores).

Response

{
  "done": true, // boolean indicating if LTE is available
  "reception": "good", // e.g., "excellent", "good", "fair", "poor", "error"
  "networkType": "LTE", // e.g., "3G", "LTE"
  "info": {
    "rssiScore": 3, 
    "rsrqScore": 2,
    "rsrpScore": 3,
    "snrScore": 1
  }
}

URL Params Type Description
/stopWiFi None GET Stops the Wi-Fi interface(s).

Response

{
  "done": true 
}

URL Params Type Description
/restartWiFi None GET Restarts the Wi-Fi interface(s).

Response

{
  "done": true 
}

URL Params Type Description
/restartCellular None GET Restarts the cellular connection.

Response

{
  "done": true 
}

URL Params Type Description
/getNetworkInfo None GET Gets basic network information (e.g., SSID).

Response

{
  "SSID": "Dride4K-cd04" // Example SSID
}

URL Params Type Description
/getCurrentSTANetwork None GET Gets the SSID and BSSID of the currently connected Wi-Fi network (STA mode).

Response

{
  "SSID": "MyHomeWiFi",
  "BSSID": "00:11:22:33:44:55"
}

URL Params Type Description
/listKnownSTANetworks None GET Lists known/configured Wi-Fi networks (STA mode).

Response

{
  "Networks": [
    {
      "ssid": "MyHomeWiFi",
      "password": "xxxxxx", 
    }
  ]
}

URL Params Type Description
/addOrEditKnownWiFiCredential ssid: string
password: string
GET Adds or edits credentials for a known Wi-Fi network (STA mode). Password must be >= 8 chars.

Response

{
  "done": true 
}

URL Params Type Description
/shutdown None GET Shuts down the device. Response sent before actual shutdown.

Response

{
  "done": true
}

URL Params Type Description
/restart onlyMCU: boolean (optional) GET Restarts the device, or only the MCU if onlyMCU is true. Response sent before restart.

Response

{
  "done": true
}

URL Params Type Description
/resetBLE None GET Resets the BLE module via an MCU command.

Response

{
  "done": true
}

URL Params Type Description
/isInIgnition None GET Checks if the device is in ignition state.

Response

{
  "inIgnition": true
}

URL Params Type Description
/takePicture selectedCams: JSON string array (e.g., ["0","1"])
format: string ("jpg" or "webp", default "webp")
quality: int (opt, default 100)
redirect: boolean (default false)
GET Takes a picture with specified cameras. If redirect is true, redirects to image; otherwise, returns JSON with URL.

Response

{
  "done": true,
  "url": "http://192.168.10.1/snapshots/1678886400/0.webp"
}

URL Params Type Description
/uploadVideo accessToken: string
videoId: string
fleets: string (opt)
isEMR: boolean (opt)
isSUB: boolean (opt)
GET Uploads a video to the cloud.

Response

{
  "done": true,
  "videoCloudRef": "item ref in bucket"
}

URL Params Type Description
/getLogs list: boolean (opt, default false)
filter: string (opt)
limit: int (opt, default 1000)
page: int (opt, default 0)
fromTimestamp: int (opt)
untilTimestamp: int (opt)
GET Fetches device logs. If list is true, returns plain text; otherwise, JSON. Filtering and pagination are available.

Response

{
  "log": [
    {
      "level": "info",
      "ts": 1749978675,
      "msg": "cellular",
      "logger": "modem configuration completed..."
    }
  ]
}
Thu Jan  1 00:38:21 1970 warn || Unit offline, cannot sync video queue right now
Thu Jan  1 00:38:19 1970 info || [success]✓ connected to slave BLE status: wakeup
Thu Jan  1 00:38:18 1970 info || [success]✓ ring triggered
Thu Jan  1 00:38:12 1970 error || signal: terminated
Thu Jan  1 00:38:06 1970 error || We've lost internet connection, try to reconnect..
Thu Jan  1 00:38:01 1970 info || temp
Thu Jan  1 00:37:56 1970 info || cellular
Thu Jan  1 00:37:52 1970 info || [success]GPS is activated
Thu Jan  1 00:37:52 1970 info || GPS state: +QGPS: 1
Thu Jan  1 00:37:52 1970 info || Activating GPS GPS is not enabled
Thu Jan  1 00:37:52 1970 error || modem resp error +CME ERROR: 504| AT+QGPS?
Thu Jan  1 00:37:50 1970 info || start record GPS
Thu Jan  1 00:37:49 1970 warn || Restart of process Successful 1340
// ... more log entries

URL Params Type Description
/getDiagnostics None GET Gets diagnostic information about the device.

Response

{
  "Device": "Dride4K",
  "cameras": [
    {
      "connected": true,
      "name": "cam0",
      "ip": "",
      "physicalPort": "MIPI1",
      "bleMac": ""
    },
    {
      "connected": true,
      "name": "cam1",
      "ip": "",
      "physicalPort": "MIPI2",
      "bleMac": ""
    },
    {
      "connected": true,
      "name": "cam3",
      "ip": "192.168.10.222",
      "physicalPort": "WLAN0",
      "bleMac": ""
    }
  ],
  "mainStorageCapacity": "116 GB",
  "subStorageCapacity": "14 GB",
  "temperature": 76,
  "isOnline": false,
  "lteSignal": "Good",
  "display": false,
  "gpsFix": true,
  "gpsSNR": "12, 11, 5, 14",
  "gpsSAT": "12",
  "camerasCount": 3,
  "on5V": false,
  "OSVersion": "1.74.0",
  "MCUVersion": "1.11.0",
  "wlan0": true,
  "wlan1": false,
  "batteryVoltage": "1226",
  "ignitionVoltage": "1128"
}

URL Params Type Description
/qr None GET Generates and returns a QR code image for easy device linking via mobile app.

Response

image/png content (binary data for QR code)

URL Params Type Description
/canBeSlaveCam None GET Checks if the device is capable and configured to act as a slave camera in a multicam setup.

Response

{
  "canBeSlave": false,
}

URL Params Type Description
/entangleCamera masterCameraMAC: string
waitLongerForAP: boolean (opt)
GET Entangles this device as a slave to a master camera using its MAC address.

Response

{
  "done": true,
  "ip": "192.168.10.114" // IP address assigned
}

URL Params Type Description
/entangleSlaveViaBLE slaveBLName: string
masterWiFiMac: string
slaveWiFiMac: string (opt)
GET Master unit entangles a slave camera via a BLE connection handshake.

Response

{
  "done": true 
}

URL Params Type Description
/getSlaveCandidates None GET (Master unit) Finds potential slave cameras on the local network (ARP scan).

Response

{
"candidates": [
    {
      "SSID": "DrideMini-f48e",
      "BSSID": "B8:13:32:B4:29:16",
      "signal": -33,
      "signalTotal": 5,
      "signalQuality": 5,
      "channel": 36,
      "security": "wep",
      "frequency": "5.18 GHz",
      "entangled": false
    }
  ]
}

URL Params Type Description
/getEntangledCameras None GET (Master unit) Gets a list of currently entangled slave cameras.

Response

{
  "candidates": [ 
    { "SSID": "DrideMini-f48e", "BSSID": "AA:BB:CC:DD:EE:FF",  }
  ] 
}

URL Params Type Description
/haveConnectedCameras None GET (Master unit) Checks and lists IPs of connected slave cameras.

Response

{
"slaves": [
    "192.168.10.222"
  ]
}

URL Params Type Description
/notifyMasterUnitIsAlive None GET (Slave unit) Notifies the master unit that this slave is alive (used for ARP registration).

Response

{
  "done": true
}

URL Params Type Description
/getMulticamInfo None GET Gets information about the multicam setup (role, master/slave IPs, etc.).

Response

{
  "done": true,
  "data": {
  "slaveCameras": [
      {
        "ip": "192.168.10.222",
        "osVersion": "1.74.0",
        "mcuVersion": "1.11.0",
        "deviceType": "Mini",
        "serial": "00000000000000000000000000000000",
        "bleStatus": "bleDisconnected",
        "mainStorageCapacity": "7 GB",
        "subStorageCapacity": "",
        "temperature": 47,
        "isOnline": true,
        "batteryVoltage": "",
        "ignitionVoltage": "",
        "dfuOnBoot": true,
        "flip": false,
        "mirror": false,
        "wiFiSignal": "-38 dBm",
        "wiFiBars": 4
      }
    ]
  }
}

URL Params Type Description
/getWiFiSignal None GET (Slave unit, if in STA mode) Gets Wi-Fi signal strength to the master AP.

Response

{
  "done": true,
  "signal": {
    "signal": -39,
    "signalBars": 4
  }
}

URL Params Type Description
/scanForSTACandidates interface: string (opt, e.g. "wlan0", "wlan1") GET Scans for available Wi-Fi networks (STA mode candidates) on the specified interface.

Response

[
  {
    "SSID": "Home1",
    "BSSID": "00:11:22:33:44:55",
    "signal": -41,
    "signalTotal": 5,
    "signalQuality": 5,
    "channel": 36,
    "security": "wep",
    "frequency": "5.18 GHz",
    "entangled": false
    },
  {
    "SSID": "HOME2",
    "BSSID": "01:12:23:34:45:56",
    "signal": -79,
    "signalTotal": 5,
    "signalQuality": 2,
    "channel": 36,
    "security": "wep",
    "frequency": "5.18 GHz",
    "entangled": false
  },
]

URL Params Type Description
/removeExternalNetworks ssid: string GET Removes a Wi-Fi network credential.

Response

{
  "done": true
}

URL Params Type Description
/speedTest None GET Performs an internet speed test (upload/download).

Response

{
  "done": true,
  "data": {
    "latency": 73,
    "dl_speed": 1.616168707472649,
    "ul_speed": 0.2354488927200212,
    "server": "Server 1 north",
    "country": "United States",
    "distance": 144.03496987543417,
    "sponsor": "ATT"
  }
}

URL Params Type Description
/upTime None GET Gets the system uptime.

Response

{
  "done": true,
  "Uptime": 3600.5 // System uptime in seconds
}

Settings Parameters

This table lists common parameters that can be read via /getSettings and, for many, updated via /setSetting. Refer to the /getSettings response for a comprehensive list of all available settings and their current values, types, and read-only status.

Param Type Settable Description
debugLevel select (string) Yes Set debug log level.
videoRecord bool Yes Turn video recording on/off.
radar bool Yes Enable/disable radar.
disableRadarOnIGN bool Yes Disable radar when ignition is on.
radarInIgnition bool Yes Enable radar only when ignition is on.
virtualCamerasEnabled bool Yes Enable/disable virtual cameras.
shareVideosPublicly bool Yes Share videos publicly by default.
shareButton bool Yes Enable/disable share button.
parkingModeOffloading bool Yes Enable/disable offloading in parking mode.
shareWithCellular bool Yes Allow sharing videos over cellular.
internalCamera bool Yes Enable/disable internal camera.
gps bool Yes Turn GPS on/off.
suspendGPSInParking bool Yes Suspend GPS in parking mode.
speaker bool Yes Enable/disable speaker.
evergreen bool Yes Enable/disable evergreen mode.
mic bool Yes Enable/disable microphone.
resolution select (string) Yes Set video resolution (e.g., '720p60fps', '1080p60fps', '3840p30fps').
gSensorSensitivity int/range Yes Set G-sensor sensitivity (impact detection).
maxLedBrightness int/range Yes Set maximum LED brightness.
networkSSID string Yes Set Wi-Fi network SSID (AP mode).
use24wifi bool Yes Use 2.4GHz Wi-Fi band.
pauseRemoteLiveAfterTimeout bool Yes Pause remote live after timeout.
recordLiveStream bool Yes Record live stream.
bootInLive bool Yes Boot device in live mode.
useInternalStorageForVideos bool Yes Use internal storage for videos.
useFATFileSystem bool Yes Use FAT filesystem for storage.
dfuOnBoot bool Yes Enable DFU (Device Firmware Update) on boot.
preferWiFiSTAOverAP bool Yes Prefer Wi-Fi STA (client) mode over AP (access point) mode.
parkingReminder bool Yes Enable/disable parking reminder.
fastNotificationAlert bool Yes Enable/disable fast notification alerts.
flip bool Yes Flip video 180 degrees.
mirror bool Yes Mirror video horizontally.
networkPassword string Yes Set Wi-Fi network password (AP mode, min 8 chars, WPA3 validated).
hideSSID bool Yes Hide Wi-Fi SSID (AP mode).
apn string Yes Set cellular APN (Access Point Name).
apnUsername string Yes Set cellular APN username.
apnPassword string Yes Set cellular APN password.
nightMode bool Yes Enable/disable night mode.
parkingMode bool Yes Enable/disable parking mode.
depletionLevel float (string, 1 decimal) Yes Set battery depletion level (e.g., "11.5").
waitBeforeSleep string Yes Set wait time before sleep.
smartTrimConcat bool Yes Enable/disable smart trim concat.
thumbnails bool Yes Enable/disable thumbnail generation.
shareHotspot bool Yes Enable/disable hotspot sharing.
utcOffset string Yes Set UTC offset.
timezone string Yes Set timezone.
country string Yes Set country.
language string Yes Set language.
showWatermark bool Yes Show/hide video watermark.
nickname string Yes Set device nickname.
speedUnit select (string) Yes Set speed unit (e.g., "km/h", "mph").
soundType select (string) Yes Set sound type ("classic", "cowboy", etc).
dateFormat select (string) Yes Set date format.
serial string No Device serial number (read-only).
osVersion string No Device OS version (read-only).
fwVersion string No Device firmware version (read-only).
hooks array/object

Example for `/setSetting`:
http://192.168.10.1/setSetting?fieldName=videoRecord&fieldValue=false

Static Routes

Static routes offer direct access to media files like thumbnails, videos, and GPS data. When accessing via a cloud URL (https://<SERIAL_NUMBER>.dride.cloud/...), a valid token query parameter is required (see /getAssetToken). The download=true query parameter can be added to force a browser download with a filename.

Base paths for static assets:

  • /recordings/: Main storage for video clips, thumbnails, and route data.
  • /recordingsSub/: Secondary storage (e.g., internal eMMC) for video clips, thumbnails, and route data.
  • /recordingsEMR/: Storage for emergency event clips.
  • /snapshots/: Storage for still images taken via /takePicture or other events.
  • /logs/: Access to system and application log files.

Examples:

  • Video: http://192.168.10.1/recordings/<VIDEO_ID>/videos/<CAMERA_NAME_OR_INDEX>.mp4
    • e.g., http://192.168.10.1/recordings/1515036499325/videos/0.mp4
  • Thumbnail: http://192.168.10.1/recordings/<VIDEO_ID>/thumbs/<CAMERA_NAME_OR_INDEX>.jpg
    • e.g., http://192.168.10.1/recordings/1515036499325/thumbs/0.jpg
  • Route Data: http://192.168.10.1/recordings/<VIDEO_ID>/route.geojson
    • e.g., http://192.168.10.1/recordings/1515036499325/route.geojson
  • Snapshot: http://192.168.10.1/snapshots/<TIMESTAMP>/<CAMERA_INDEX>.<FORMAT>
    • e.g., http://192.168.10.1/snapshots/1678886400/0.webp
  • Latest Snapshot: http://192.168.10.1/snapshots/latest?camIndex=0 (redirects, add &token= if cloud)
  • Latest Clip Video: http://192.168.10.1/recordings/latest?camIndex=0 (redirects, add &token= if cloud)
  • Latest Clip Thumbnail: http://192.168.10.1/recordings/latest?thumb=true&camIndex=0 (redirects, add &token= if cloud)
  • Log file: http://192.168.10.1/logs/dride.log (actual log filenames may vary)

Accessing the API

First, establish a Wi-Fi connection with your device (it usually creates an Access Point) or ensure your workstation and the device are on the same local network. The device's local IP is typically 192.168.10.1.


An Example:

This request will return the device serial number:

http://192.168.10.1/getSerialNumber

And output (example):

{"SerialNumber":"00000000445acdb3", "CPU":"sun8iw16"}

Live stream

You can live stream video from the device using HLS or MJPEG. First, ensure live mode is active using the /setLiveMode endpoint.

1. HLS (HTTP Live Streaming):

  • After calling /setLiveMode?mode=on (with streamType="all" or default), the response will contain HLS URLs for each camera.
  • Example HLS URL (from /setLiveMode response): http://192.168.10.1:8080/stream/camera1/index.m3u8
  • This stream can be played in browsers with HLS support (e.g., Safari, or others with libraries like hls.js).

2. MJPEG Stream:

  • After calling /setLiveMode?mode=on&streamType=mjpeg, an MJPEG stream is available.
  • Endpoint: /live/stream
  • Parameter: devNum=[0 or 1] (selects the camera, typically 0 for primary).
  • Example MJPEG URL: http://192.168.10.1/live/stream?devNum=0
  • This stream can be embedded in web pages (e.g., in an <img> tag) or opened in media players like VLC.

3. RTSP (Real Time Streaming Protocol):

  • The documentation previously mentioned rtsp://192.168.10.1:8554/ch0.
  • If /setLiveMode (with streamType="all") enables an RTSP server, this URL might still be valid. Configuration of the RTSP server is handled internally by setLiveMode.
  • RTSP streams are typically viewed with media players like VLC, mplayer, or FFMPEG.

4. Live View HTML Pages:

  • /live/dashboard: Provides an HTML dashboard page (content defined by index.tmpl).
  • /live/camera?camId=<ID>: Provides an HTML page for a specific camera's live view (content defined by camera.tmpl), often embedding one of the stream types above.