Download OpenAPI specification:
API for Blueye drone diagnostics and system management
Get a picture file or list all pictures if no file specified
| file | string Example: file=picture_BYEDP123456_2019-01-01_000001.001.jpg Picture filename (optional - if not provided, returns list) |
| logo | integer Default: 0 Enum: 0 1 2 Add logo to picture.
|
| tz-offset | integer Add timezone offset to the picture EXIF data in minutes, can also be a negative number. For example in Norway during summer time the correct value would be 60, while it would be -180 in Chile |
Generate picture with telemetry data overlay
| date-format | string Default: "%Y-%m-%d %H:%M:%S" Format of the date/time. |
| field-date | integer Default: 1 Enum: 0 1 Enable or disable the date field.
|
| field-depth | integer Default: 1 Enum: 0 1 Display water depth in the image overlay.
|
| field-gps | integer Default: 0 Enum: 0 1 Display GPS coordinates (decimal degrees) in the image overlay. Requires Blunux 3.0 or newer. If a positioning system is used, the coordinates of the drone is shown, else the operator position reported by the app is shown.
|
| field-guestport | integer Default: 1 Enum: 0 1 Display data from connected guestport sensors in the image overlay.
|
| field-heading | integer Default: 1 Enum: 0 1 Display compass heading in the image overlay.
|
| field-temp | integer Default: 1 Enum: 0 1 Display water temperature in the image overlay.
|
| field-tilt | integer Default: 0 Enum: 0 1 Display camera tilt angle in the image overlay.
|
| file required | string Example: file=picture_BYEDP123456_2019-01-01_000001.001.jpg Name of the image file to download. |
| ignore-exif-titles | integer Default: 0 Enum: 0 1 Ignore title and subtitle set by the app during the dive. If
|
| length-units | string Default: "meter" Enum: "feet" "meter" Unit to use for all distance/length measurements such as depth, altitude,
distance etc. For shorter lengths
|
| logo | integer Default: 0 Enum: 0 1 2 Which logo to overlay.
|
| subtitle | string Default: "" Subtitle of the image. Maximum 72 characters. |
| temp-units | string Default: "celsius" Enum: "celsius" "fahrenheit" Unit to use for the temperature field and any temperature related measurements.
|
| title | string Default: "" Example: title=My title Title of the image. Maximum 24 characters. |
| tz-offset | integer Default: 0 The drone stores all time in UTC+0, so if you were diving in another timezone and want to correct for that in the displayed time you can add a timezone offset here. The unit is minutes and both positive and negative values are supported. |
Deprecated.
Downloads a picture (jpg) with EXIF metadata from when the photo was captured.
| file required | string Example: file=picture_BYEDP123456_2019-01-01_000001.001.jpg Name of the image file to download |
| height | integer Default: 576 Height of the thumbnail in pixels. |
| quality | integer Default: 85 JPG compression level, 0-100. 100 is best quality, 0 is worst quality. |
| width | integer Default: 1024 Width of the thumbnail in pixels. |
Upload user selectable logo for watermarking videos and pictures. Allowed filetype: JPG or PNG. Max resolution: 2000px. Max file size: 5MB.
| image required | string <binary> The logo image file to upload (PNG, JPG). <5MB, <2000px Will be converted to PNG. |
Downloads a subtitle file (srt) for a video file containing log data from the dive. The data is gathered from the videos accompanying logfile. By passing in varius queries it is possible to select which data one wants displayed, and where to display it.
| date-format | string Default: "%Y-%m-%d %H:%M:%S" Format of the date/time. |
| field-date | integer Default: 0 Enable or disable the date field. "1" to enable, "0" to disable. |
| field-depth | integer Default: 1 Enable or disable the depth field. "1" to enable, "0" to disable. |
| field-heading | integer Default: 1 Enable or disable the heading field. "1" to enable, "0" to disable. |
| field-temp | integer Default: 1 Enable or disable the temperature field. "1" to enable, "0" to disable. |
| field-tilt | integer Default: 0 Enable or disable the tilt field. "1" to enable, "0" to disable. |
| file required | string Example: file=video_BYEDP123456_2019-01-01_000001.mp4 Name of the videofile to download subtitle file for. |
| format | string Default: "srt" Subtitles can also be retrived in the WEBVTT format. Use format=vtt to get a .vtt file instead of a .srt file. |
| length-units | string Default: "meter" Unit to use for length. Use "meter" for metric units, and "feet" for imperial. |
| placement | string Default: "top" Where to place the subtitle. Use "top" for placing on the top, "bottom" for placing on the bottom, and "" for using the player default. |
| temp-units | string Default: "celsius" Unit to use for temperature. Use "celsius" for metric units, and "fahrenheit" for imperial. |
| title | string Default: "" Example: title=My title Title of the video. |
| tz-offset | integer Default: 0 The drone stores all time in UTC+0, so if you were diving in another timezone and want to correct for that in the displayed time you can add a timezone offset here. The unit is minutes and both positive and negative values are supported. |
The drone includes a WebDav server for media file access, and that should be used for management of media files where possible. See the SDK documentation for details.
Returns an array of binary logs from the drone. Each array item represents an available log file on the drone. Use the /logs/{filename}/binlog endpoint to get the full log.
[- {
- "name": "BYEDP070018_ea9add4d0c1961d4_00386",
- "log_number": 0,
- "is_open": true,
- "has_binlog": true,
- "is_dive": true,
- "videos": [
- "/videos/video_BYEDP070018_2023-07-31_125743.mp4",
- "/videos/video_BYEDP070018_2023-07-31_125743_cam2.mp4"
], - "pictures": [
- "/videos/picture_BYEDP070018_2023-07-31_125743.mp4",
- "/videos/picture_BYEDP070018_2023-07-31_125743_cam2.mp4"
], - "multibeam_recordings": [
- "/videos/multibeam_BYEDP070018_2023-07-31_123743.mbez",
- "/videos/multibeam_BYEDP070018_2023-07-31_125743.mbez"
], - "binlog_size": 1099448,
- "has_dive_info": true,
- "start_time": 1692002908,
- "blunux_version": "3.0.47-honister-master",
- "model_name": "Pioneer",
- "max_depth_magnitude": 0
}
]Returns extended meta data for the requested log.
| logname required | string Example: BYEDP070018_ea9add4d0c1961d4_00386 Name of the log to download info for |
{- "blunux_version": "3.0.47-honister-master",
- "is_dive": true,
- "is_valid": true,
- "log_name": "BYEDP070018_ea9add4d0c1961d4_00386",
- "max_depth_magnitude": 0,
- "model_name": "Pioneer",
- "start_time": 1692002908,
- "videos": [
- "/videos/video_BYEDP070018_2023-07-31_125743.mp4",
- "/videos/video_BYEDP070018_2023-07-31_125743_cam2.mp4"
], - "pictures": [
- "/videos/picture_BYEDP070027_2025-10-13_155525.759.jpg",
- "/videos/picture_BYEDP070027_2025-10-13_155527.231.jpg"
], - "multibeam_recordings": [
- "/videos/multibeam_BYEDP070027_2025-10-15_140613.mbez",
- "/videos/multibeam_BYEDP070027_2025-10-15_141043.mbez"
], - "error_flags": [
- "string"
], - "gp_info": {
- "gp1": {
- "device_list": {
- "devices": [
- {
- "depth_rating": "700",
- "name": "Blueye Blind Plug",
- "manufacturer": "Blueye Robotics",
- "serial_number": "BP00-00000"
}
]
}, - "guest_port_number": "GUEST_PORT_NUMBER_PORT_1"
}, - "gp2": {
- "device_list": {
- "devices": [
- {
- "depth_rating": "700",
- "name": "Blueye Blind Plug",
- "manufacturer": "Blueye Robotics",
- "serial_number": "BP00-00000"
}
]
}, - "guest_port_number": "GUEST_PORT_NUMBER_PORT_2"
}, - "gp3": {
- "device_list": {
- "devices": [
- {
- "depth_rating": "700",
- "name": "Blueye Blind Plug",
- "manufacturer": "Blueye Robotics",
- "serial_number": "BP00-00000"
}
]
}, - "guest_port_number": "GUEST_PORT_NUMBER_PORT_3"
}
}
}Returns an array of logs from the drone. Each array item represents an available log file on the drone. Use the /logcsv/{filename} endpoint to get the full log.
| all | string Add |
| filter_depth_min_mm | integer Default: 250 Filter the minimum depth of the listed logs. Will be ignored if |
[- {
- "name": "ea9ac92e1817a1d4-00073.csv",
- "binsize": 1099448,
- "timestamp": "2019-01-01T00:00:00.000001",
- "maxdepth": 21050
}
]Downloads a comma-separated-value (CSV) log-file with the requested name.
| filename required | string Example: ea9ac92e1817a1d4-00090 Filename of log to download (format: {machineid}-{logid}) |
| divisor | integer Default: 10 Divisor to use when downsampling CSV before downloading. Set to 1 to get max resolution. |
Download CSV file with data for creating scaled 3D models in Agisoft
| file required | string Example: file=video_BYEDP123456_2019-01-01_000001.mp4 Name of the video file to download data for |
| frame-step | integer Default: 1 Amount of steps between each frame grab |
| mag-dist | integer Default: 180 Expected compass variance induced from magnetic disturbance in degrees. The most important data for an accurate 3D model are roll and pitch, which are not affected by magnetic disturbance, so the default is set quite high (180). If you trust that the data has not been skewed by magnetic interference you can set this to a medium (60) or even low (10) value. |
| no-file-check | boolean Skip video file existence check |
| title | string Default: "frame" Prefix title for each frame. Frame number and .png will be appended. |
Returns a JSON string of drone information. Using this endpoint is the easiest way to check if there is a drone connected to your network.
Complete drone information with all available fields
{- "commit_id_csys": "299238949a",
- "depth_sensor": "MS5837_30BA26",
- "features": "tilt,gpdrone",
- "hardware_id": "ea9ac92e1817a1d4",
- "manufacturer": "Blueye Robotics",
- "model_description": "X3 Underwater Drone",
- "model_name": "Blueye X3",
- "operating_system": "blunux",
- "serial_number": "BYEDP123456",
- "sw_version": "1.4.7-warrior-master",
- "services": [
- {
- "type": "videostream",
- "options": {
- "primary": true,
- "url": "rtsp://192.168.1.101:8554/test"
}
}
], - "persistent_storage": {
- "acc_calibration": true,
- "binlog": true,
- "compass_calibration": true,
- "control_system_log": true,
- "gyro_calibration": true,
- "images": true,
- "multibeam": true,
- "videos": true,
- "webserver_log": true
}, - "required_app_version": {
- "android": "3.10",
- "ios": "3.10"
}, - "guest_port_info": {
- "gp1": {
- "device_list": {
- "devices": [
- {
- "depth_rating": 700,
- "name": "Blueye Blind Plug",
- "manufacturer": "Blueye Robotics",
- "serial_number": "BP00-00000"
}
]
}, - "guest_port_number": "GUEST_PORT_NUMBER_PORT_1"
}, - "gp2": {
- "error": "GUEST_PORT_ERROR_NOT_FLASHED"
}, - "gp3": {
- "error": "GUEST_PORT_ERROR_NOT_FLASHED"
}
}
}Use POST method instead.
Performs a bandwidth test on the connection between the surface unit and the drone. Always uses a fixed duration of 10 seconds.
{- "received_Mbps": 79.55458795899487,
- "sent_Mbps": 80.37122746322603,
- "success": true
}Performs a bandwidth test on the connection between the surface unit and the drone. Set the test duration with the "duration"-parameter. A longer duration should yield a more accurate result.
| duration | integer >= 0 Default: 10 Test duration |
{- "received_Mbps": 79.55458795899487,
- "sent_Mbps": 80.37122746322603,
- "success": true
}