Blueye HTTP API (1.1.0)

Download OpenAPI specification:

API for Blueye drone diagnostics and system management

Pictures

Picture processing and download

Get MD5 checksum of uploaded logo

Get the MD5 checksum of the currently uploaded logo, can be used to verify that the logo was uploaded correctly.

Responses

Response samples

Content type
application/json
{
  • "md5sum": "10194c9eb82fd0237342ce80a2747ed2"
}

Download a picture

Get a picture file or list all pictures if no file specified

query Parameters
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.

  • 0 - No logo
  • 1 - Drone default logo
  • 2 - User uploaded logo
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

Responses

Response samples

Content type
No sample

Download pictures with metadata overlay

Generate picture with telemetry data overlay

query Parameters
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.

  • 1 - Enable
  • 0 - Disable
field-depth
integer
Default: 1
Enum: 0 1

Display water depth in the image overlay.

  • 1 - Enable
  • 0 - Disable
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.

  • 1 - Enable
  • 0 - Disable
field-guestport
integer
Default: 1
Enum: 0 1

Display data from connected guestport sensors in the image overlay.

  • 1 - Enable
  • 0 - Disable
field-heading
integer
Default: 1
Enum: 0 1

Display compass heading in the image overlay.

  • 1 - Enable
  • 0 - Disable
field-temp
integer
Default: 1
Enum: 0 1

Display water temperature in the image overlay.

  • 1 - Enable
  • 0 - Disable
field-tilt
integer
Default: 0
Enum: 0 1

Display camera tilt angle in the image overlay.

  • 1 - Enable
  • 0 - Disable
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 title and subtitle is not specified, the title and/or subtitle selected for the video overlay will be written unless this parameter is enabled.

  • 1 - Ignore exif titles
  • 0 - Use title from exif
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 mm or inches will be used accordingly.

  • meter - Metric unit
  • feet - Imperial unit
logo
integer
Default: 0
Enum: 0 1 2

Which logo to overlay.

  • 0 - No logo
  • 1 - Drone default logo
  • 2 - User uploaded logo
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.

  • celsius - Metric unit
  • fahrenheit - Imperial unit
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.

Responses

Download a thumbnail of a picture Deprecated

Deprecated.

Downloads a picture (jpg) with EXIF metadata from when the photo was captured.

query Parameters
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.

Responses

Logos

Download logo

Download the original user uploaded logo (PNG or JPG)

Responses

Upload logo

Upload user selectable logo for watermarking videos and pictures. Allowed filetype: JPG or PNG. Max resolution: 2000px. Max file size: 5MB.

Request Body schema: multipart/form-data
required
image
required
string <binary>

The logo image file to upload (PNG, JPG). <5MB, <2000px Will be converted to PNG.

Responses

Delete logo

Delete the uploaded logo

Responses

Subtitles

Video subtitle generation

Download subtitle file

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.

query Parameters
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.

Responses

Media

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.

Logs

Binary log file operations

Array of binary logs

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.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download protobuf binary log file

Returns the binary content of the requested log

path Parameters
logname
required
string
Example: BYEDP070018_ea9add4d0c1961d4_00386

Name of the log to download

Responses

Get dive info for binlog

Returns extended meta data for the requested log.

path Parameters
logname
required
string
Example: BYEDP070018_ea9add4d0c1961d4_00386

Name of the log to download info for

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "pictures": [
    ],
  • "multibeam_recordings": [
    ],
  • "error_flags": [
    ],
  • "gp_info": {
    }
}

Legacy logs

CSV log file operations

Array of logs

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.

query Parameters
all
string

Add all to the parameter list to show logs that are not classified as dives (no auto functions enabled, and max depth < 0.25m). All logs will be shown regardless of the content of the all parameter (even false, 0, etc).

filter_depth_min_mm
integer
Default: 250

Filter the minimum depth of the listed logs. Will be ignored if all is included in parameter list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

CSV log-file

Downloads a comma-separated-value (CSV) log-file with the requested name.

path Parameters
filename
required
string
Example: ea9ac92e1817a1d4-00090

Filename of log to download (format: {machineid}-{logid})

query Parameters
divisor
integer
Default: 10

Divisor to use when downsampling CSV before downloading. Set to 1 to get max resolution.

Responses

Zipped CSV log files

Download all CSV log files as a zlib compressed zip file

Responses

Photogrammetry

Dive-specific data extraction

Download CSV file with data for creating scaled 3D models

Download CSV file with data for creating scaled 3D models in Agisoft

query Parameters
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.

Responses

Diagnostics

System diagnostics and health monitoring

Drone information

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.

Responses

Response samples

Content type
application/json
Example

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": [
    ],
  • "persistent_storage": {
    },
  • "required_app_version": {
    },
  • "guest_port_info": {
    }
}

Tether bandwidth test Deprecated

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.

Responses

Response samples

Content type
application/json
{
  • "received_Mbps": 79.55458795899487,
  • "sent_Mbps": 80.37122746322603,
  • "success": true
}

Tether bandwidth test

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.

Request Body schema: application/x-www-form-urlencoded
duration
integer >= 0
Default: 10

Test duration

Responses

Response samples

Content type
application/json
{
  • "received_Mbps": 79.55458795899487,
  • "sent_Mbps": 80.37122746322603,
  • "success": true
}

Licenses

License information