Protocol Documentation

This page provides documentation for all of the protobuf message fields.

Protobuf Files

live_streaming.proto

NotifyLiveStreamStatus

Field Type Label Description
live_stream_status EnumLiveStreamStatus optional Live stream status
live_stream_error EnumLiveStreamError optional Live stream error
live_stream_encode bool optional Is live stream encoding?
live_stream_bitrate int32 optional Live stream bitrate (Kbps)
live_stream_window_size_supported_array EnumWindowSize repeated Live stream resolution capabilities
live_stream_encode_supported bool optional Does the camera support encoding while live streaming?
live_stream_max_lens_unsupported bool optional Is the Max Lens feature NOT supported?
live_stream_minimum_stream_bitrate int32 optional Camera-defined minimum bitrate (static) (Kbps)
live_stream_maximum_stream_bitrate int32 optional Camera-defined maximum bitrate (static) (Kbps)
live_stream_lens_supported bool optional Does camera support setting lens for live streaming?
live_stream_lens_supported_array EnumLens repeated Array of supported lenses for live streaming
deprecated bool optional Deprecated

RequestGetLiveStreamStatus

Field Type Label Description
register_live_stream_status EnumRegisterLiveStreamStatus repeated Array of live stream statuses to be notified about
unregister_live_stream_status EnumRegisterLiveStreamStatus repeated Array of live stream statuses to stop being notified about

RequestSetLiveStreamMode

Field Type Label Description
url string optional RTMP(S) URL used for live stream
encode bool optional Save media to sdcard while streaming?
window_size EnumWindowSize optional Live stream resolution
reserved1 string optional Reserved
reserved2 string optional Reserved
cert bytes optional Certificate for servers that require it
minimum_bitrate int32 optional Minimum desired bitrate (may or may not be honored)
maximum_bitrate int32 optional Maximum desired bitrate (may or may not be honored)
starting_bitrate int32 optional Starting bitrate
lens EnumLens optional Lens to use for live stream (see
reserved3 int32 optional Reserved

EnumLens

Name Number Description
LENS_WIDE 0  
LENS_LINEAR 4  
LENS_SUPERVIEW 3  

EnumLiveStreamError

Name Number Description
LIVE_STREAM_ERROR_NONE 0  
LIVE_STREAM_ERROR_NETWORK 1  
LIVE_STREAM_ERROR_CREATESTREAM 2  
LIVE_STREAM_ERROR_OUTOFMEMORY 3  
LIVE_STREAM_ERROR_INPUTSTREAM 4  
LIVE_STREAM_ERROR_INTERNET 5  
LIVE_STREAM_ERROR_OSNETWORK 6  
LIVE_STREAM_ERROR_SELECTEDNETWORKTIMEOUT 7  
LIVE_STREAM_ERROR_SSL_HANDSHAKE 8  
LIVE_STREAM_ERROR_CAMERA_BLOCKED 9  
LIVE_STREAM_ERROR_UNKNOWN 10  
LIVE_STREAM_ERROR_SD_CARD_FULL 40  
LIVE_STREAM_ERROR_SD_CARD_REMOVED 41  

EnumLiveStreamStatus

Name Number Description
LIVE_STREAM_STATE_IDLE 0  
LIVE_STREAM_STATE_CONFIG 1  
LIVE_STREAM_STATE_READY 2  
LIVE_STREAM_STATE_STREAMING 3  
LIVE_STREAM_STATE_COMPLETE_STAY_ON 4  
LIVE_STREAM_STATE_FAILED_STAY_ON 5  
LIVE_STREAM_STATE_RECONNECTING 6  

EnumRegisterLiveStreamStatus

Name Number Description
REGISTER_LIVE_STREAM_STATUS_STATUS 1  
REGISTER_LIVE_STREAM_STATUS_ERROR 2  
REGISTER_LIVE_STREAM_STATUS_MODE 3  
REGISTER_LIVE_STREAM_STATUS_BITRATE 4  

EnumWindowSize

Name Number Description
WINDOW_SIZE_480 4  
WINDOW_SIZE_720 7  
WINDOW_SIZE_1080 12  

network_management.proto

NotifProvisioningState

Field Type Label Description
provisioning_state EnumProvisioning required Provisioning/connection state

NotifStartScanning

Field Type Label Description
scanning_state EnumScanning required Scanning state
scan_id int32 optional ID associated with scan results (included if scan was successful)
total_entries int32 optional Number of APs found during scan (included if scan was successful)
total_configured_ssid int32 required Total count of camera’s provisioned SSIDs

RequestConnect

Field Type Label Description
ssid string required AP SSID
owner_purpose EnumNetworkOwner optional Deprecated

RequestConnectNew

Field Type Label Description
ssid string required AP SSID
password string required AP password
static_ip bytes optional Static IP address
gateway bytes optional Gateway IP address
subnet bytes optional Subnet mask
dns_primary bytes optional Primary DNS
dns_secondary bytes optional Secondary DNS
set_to_least_preferred_ap bool optional Deprecated
owner_purpose EnumNetworkOwner optional Deprecated

RequestGetApEntries

Field Type Label Description
start_index int32 required Used for paging. 0 <= start_index < NotifStartScanning.total_entries
max_entries int32 required Used for paging. Value must be < NotifStartScanning.total_entries
scan_id int32 required ID corresponding to a set of scan results (i.e.

RequestReleaseNetwork

RequestStartScan

ResponseConnect

Field Type Label Description
result EnumResultGeneric required Generic pass/fail/error info
provisioning_state EnumProvisioning required Provisioning/connection state
timeout_seconds int32 required Network connection timeout (seconds)

ResponseConnectNew

Field Type Label Description
result EnumResultGeneric required Status of Connect New request
provisioning_state EnumProvisioning required Current provisioning state of the network
timeout_seconds int32 required  

ResponseGetApEntries

Field Type Label Description
result EnumResultGeneric required Generic pass/fail/error info
scan_id int32 required ID associated with this batch of results
entries ScanEntry repeated Array containing details about discovered APs

ResponseStartScanning

Field Type Label Description
result EnumResultGeneric required Generic pass/fail/error info
scanning_state EnumScanning required Scanning state

ScanEntry

Field Type Label Description
ssid string required AP SSID
signal_strength_bars int32 required Signal strength (3 bars: >-70 dBm; 2 bars: >-85 dBm; 1 bar: <=-85
signal_frequency_mhz int32 required Signal frequency (MHz)
scan_entry_flags int32 required Bitmasked value from EnumScanEntryFlags
owner_purpose EnumNetworkOwner optional Deprecated

EnumNetworkOwner

Name Number Description
DEPRECATED_1 0  
DEPRECATED_2 1  
DEPRECATED_3 2  
DEPRECATED_4 3  
DEPRECATED_5 4  
DEPRECATED_6 8  
DEPRECATED_7 16  

EnumProvisioning

Name Number Description
PROVISIONING_UNKNOWN 0  
PROVISIONING_NEVER_STARTED 1  
PROVISIONING_STARTED 2  
PROVISIONING_ABORTED_BY_SYSTEM 3  
PROVISIONING_CANCELLED_BY_USER 4  
PROVISIONING_SUCCESS_NEW_AP 5  
PROVISIONING_SUCCESS_OLD_AP 6  
PROVISIONING_ERROR_FAILED_TO_ASSOCIATE 7  
PROVISIONING_ERROR_PASSWORD_AUTH 8  
PROVISIONING_ERROR_EULA_BLOCKING 9  
PROVISIONING_ERROR_NO_INTERNET 10  
PROVISIONING_ERROR_UNSUPPORTED_TYPE 11  

EnumScanEntryFlags

Name Number Description
SCAN_FLAG_OPEN 0  
SCAN_FLAG_AUTHENTICATED 1  
SCAN_FLAG_CONFIGURED 2  
SCAN_FLAG_BEST_SSID 4  
SCAN_FLAG_ASSOCIATED 8  
SCAN_FLAG_UNSUPPORTED_TYPE 16  
DEPRECATED 32  

EnumScanning

Name Number Description
SCANNING_UNKNOWN 0  
SCANNING_NEVER_STARTED 1  
SCANNING_STARTED 2  
SCANNING_ABORTED_BY_SYSTEM 3  
SCANNING_CANCELLED_BY_USER 4  
SCANNING_SUCCESS 5  

preset_status.proto

NotifyPresetStatus

Field Type Label Description
preset_group_array PresetGroup repeated Array of Preset Groups

Preset

Field Type Label Description
id int32 optional Preset ID
mode EnumFlatMode optional Preset flatmode ID
title_id EnumPresetTitle optional Preset Title ID
title_number int32 optional Preset Title Number (e.g. 1/2/3 in Custom1, Custom2, Custom3)
user_defined bool optional Is the Preset custom/user-defined?
icon EnumPresetIcon optional Preset Icon ID
setting_array PresetSetting repeated Array of settings associated with this Preset
is_modified bool optional Has Preset been modified from factory
is_fixed bool optional Is this Preset mutable?

PresetGroup

Field Type Label Description
id EnumPresetGroup optional Preset Group ID
preset_array Preset repeated Array of Presets contained in this Preset Group
can_add_preset bool optional Is there room in the group to add additional Presets?
icon EnumPresetGroupIcon optional The icon to display for this preset group

PresetSetting

Field Type Label Description
id int32 optional Setting ID
value int32 optional Setting value
is_caption bool optional Does this setting appear on the Preset “pill” in the camera UI?

EnumFlatMode

Name Number Description
FLAT_MODE_UNKNOWN -1  
FLAT_MODE_PLAYBACK 4  
FLAT_MODE_SETUP 5  
FLAT_MODE_VIDEO 12  
FLAT_MODE_TIME_LAPSE_VIDEO 13  
FLAT_MODE_LOOPING 15  
FLAT_MODE_PHOTO_SINGLE 16  
FLAT_MODE_PHOTO 17  
FLAT_MODE_PHOTO_NIGHT 18  
FLAT_MODE_PHOTO_BURST 19  
FLAT_MODE_TIME_LAPSE_PHOTO 20  
FLAT_MODE_NIGHT_LAPSE_PHOTO 21  
FLAT_MODE_BROADCAST_RECORD 22  
FLAT_MODE_BROADCAST_BROADCAST 23  
FLAT_MODE_TIME_WARP_VIDEO 24  
FLAT_MODE_LIVE_BURST 25  
FLAT_MODE_NIGHT_LAPSE_VIDEO 26  
FLAT_MODE_SLOMO 27  
FLAT_MODE_IDLE 28  
FLAT_MODE_VIDEO_STAR_TRAIL 29  
FLAT_MODE_VIDEO_LIGHT_PAINTING 30  
FLAT_MODE_VIDEO_LIGHT_TRAIL 31  

EnumPresetGroup

Name Number Description
PRESET_GROUP_ID_VIDEO 1000  
PRESET_GROUP_ID_PHOTO 1001  
PRESET_GROUP_ID_TIMELAPSE 1002  
PRESET_GROUP_ID_VIDEO_DUAL_LENS 1003  
PRESET_GROUP_ID_PHOTO_DUAL_LENS 1004  
PRESET_GROUP_ID_TIMELAPSE_DUAL_LENS 1005  
PRESET_GROUP_ID_SPECIAL 1006  

EnumPresetGroupIcon

Name Number Description
PRESET_GROUP_VIDEO_ICON_ID 0  
PRESET_GROUP_PHOTO_ICON_ID 1  
PRESET_GROUP_TIMELAPSE_ICON_ID 2  
PRESET_GROUP_LONG_BAT_VIDEO_ICON_ID 3  
PRESET_GROUP_ENDURANCE_VIDEO_ICON_ID 4  
PRESET_GROUP_MAX_VIDEO_ICON_ID 5  
PRESET_GROUP_MAX_PHOTO_ICON_ID 6  
PRESET_GROUP_MAX_TIMELAPSE_ICON_ID 7  

EnumPresetIcon

Name Number Description
PRESET_ICON_VIDEO 0  
PRESET_ICON_ACTIVITY 1  
PRESET_ICON_CINEMATIC 2  
PRESET_ICON_PHOTO 3  
PRESET_ICON_LIVE_BURST 4  
PRESET_ICON_BURST 5  
PRESET_ICON_PHOTO_NIGHT 6  
PRESET_ICON_TIMEWARP 7  
PRESET_ICON_TIMELAPSE 8  
PRESET_ICON_NIGHTLAPSE 9  
PRESET_ICON_SNAIL 10  
PRESET_ICON_VIDEO_2 11  
PRESET_ICON_360_VIDEO 12  
PRESET_ICON_PHOTO_2 13  
PRESET_ICON_PANORAMA 14  
PRESET_ICON_BURST_2 15  
PRESET_ICON_TIMEWARP_2 16  
PRESET_ICON_TIMELAPSE_2 17  
PRESET_ICON_CUSTOM 18  
PRESET_ICON_AIR 19  
PRESET_ICON_BIKE 20  
PRESET_ICON_EPIC 21  
PRESET_ICON_INDOOR 22  
PRESET_ICON_MOTOR 23  
PRESET_ICON_MOUNTED 24  
PRESET_ICON_OUTDOOR 25  
PRESET_ICON_POV 26  
PRESET_ICON_SELFIE 27  
PRESET_ICON_SKATE 28  
PRESET_ICON_SNOW 29  
PRESET_ICON_TRAIL 30  
PRESET_ICON_TRAVEL 31  
PRESET_ICON_WATER 32  
PRESET_ICON_LOOPING 33  
PRESET_ICON_MAX_VIDEO 55 Reserved 34 - 50 for Custom presets
PRESET_ICON_MAX_PHOTO 56  
PRESET_ICON_MAX_TIMEWARP 57  
PRESET_ICON_BASIC 58  
PRESET_ICON_ULTRA_SLO_MO 59  
PRESET_ICON_STANDARD_ENDURANCE 60  
PRESET_ICON_ACTIVITY_ENDURANCE 61  
PRESET_ICON_CINEMATIC_ENDURANCE 62  
PRESET_ICON_SLOMO_ENDURANCE 63  
PRESET_ICON_STATIONARY_1 64  
PRESET_ICON_STATIONARY_2 65  
PRESET_ICON_STATIONARY_3 66  
PRESET_ICON_STATIONARY_4 67  
PRESET_ICON_STAR_TRAIL 76  
PRESET_ICON_LIGHT_PAINTING 77  
PRESET_ICON_LIGHT_TRAIL 78  
PRESET_ICON_FULL_FRAME 79  
PRESET_ICON_TIMELAPSE_PHOTO 1000  
PRESET_ICON_NIGHTLAPSE_PHOTO 1001  
PRESET_ICON_MAX 1002  

EnumPresetTitle

Name Number Description
PRESET_TITLE_ACTIVITY 0  
PRESET_TITLE_STANDARD 1  
PRESET_TITLE_CINEMATIC 2  
PRESET_TITLE_PHOTO 3  
PRESET_TITLE_LIVE_BURST 4  
PRESET_TITLE_BURST 5  
PRESET_TITLE_NIGHT 6  
PRESET_TITLE_TIME_WARP 7  
PRESET_TITLE_TIME_LAPSE 8  
PRESET_TITLE_NIGHT_LAPSE 9  
PRESET_TITLE_VIDEO 10  
PRESET_TITLE_SLOMO 11  
PRESET_TITLE_360_VIDEO 12  
PRESET_TITLE_PHOTO_2 13  
PRESET_TITLE_PANORAMA 14  
PRESET_TITLE_360_PHOTO 15  
PRESET_TITLE_TIME_WARP_2 16  
PRESET_TITLE_360_TIME_WARP 17  
PRESET_TITLE_CUSTOM 18  
PRESET_TITLE_AIR 19  
PRESET_TITLE_BIKE 20  
PRESET_TITLE_EPIC 21  
PRESET_TITLE_INDOOR 22  
PRESET_TITLE_MOTOR 23  
PRESET_TITLE_MOUNTED 24  
PRESET_TITLE_OUTDOOR 25  
PRESET_TITLE_POV 26  
PRESET_TITLE_SELFIE 27  
PRESET_TITLE_SKATE 28  
PRESET_TITLE_SNOW 29  
PRESET_TITLE_TRAIL 30  
PRESET_TITLE_TRAVEL 31  
PRESET_TITLE_WATER 32  
PRESET_TITLE_LOOPING 33  
PRESET_TITLE_360_TIMELAPSE 51 Reserved 34 - 50 for custom presets.
PRESET_TITLE_360_NIGHT_LAPSE 52  
PRESET_TITLE_360_NIGHT_PHOTO 53  
PRESET_TITLE_PANO_TIME_LAPSE 54  
PRESET_TITLE_MAX_VIDEO 55  
PRESET_TITLE_MAX_PHOTO 56  
PRESET_TITLE_MAX_TIMEWARP 57  
PRESET_TITLE_BASIC 58  
PRESET_TITLE_ULTRA_SLO_MO 59  
PRESET_TITLE_STANDARD_ENDURANCE 60  
PRESET_TITLE_ACTIVITY_ENDURANCE 61  
PRESET_TITLE_CINEMATIC_ENDURANCE 62  
PRESET_TITLE_SLOMO_ENDURANCE 63  
PRESET_TITLE_STATIONARY_1 64  
PRESET_TITLE_STATIONARY_2 65  
PRESET_TITLE_STATIONARY_3 66  
PRESET_TITLE_STATIONARY_4 67  
PRESET_TITLE_SIMPLE_VIDEO 68  
PRESET_TITLE_SIMPLE_TIME_WARP 69  
PRESET_TITLE_SIMPLE_SUPER_PHOTO 70  
PRESET_TITLE_SIMPLE_NIGHT_PHOTO 71  
PRESET_TITLE_SIMPLE_VIDEO_ENDURANCE 72  
PRESET_TITLE_HIGHEST_QUALITY 73  
PRESET_TITLE_EXTENDED_BATTERY 74  
PRESET_TITLE_LONGEST_BATTERY 75  
PRESET_TITLE_STAR_TRAIL 76  
PRESET_TITLE_LIGHT_PAINTING 77  
PRESET_TITLE_LIGHT_TRAIL 78  
PRESET_TITLE_FULL_FRAME 79  
PRESET_TITLE_MAX 80  

request_get_preset_status.proto

RequestGetPresetStatus

Field Type Label Description
register_preset_status EnumRegisterPresetStatus repeated Array of Preset statuses to be notified about
unregister_preset_status EnumRegisterPresetStatus repeated Array of Preset statuses to stop being notified about

EnumRegisterPresetStatus

Name Number Description
REGISTER_PRESET_STATUS_PRESET 1  
REGISTER_PRESET_STATUS_PRESET_GROUP_ARRAY 2  

response_generic.proto

ResponseGeneric

Field Type Label Description
result EnumResultGeneric required Generic pass/fail/error info

EnumResultGeneric

Name Number Description
RESULT_UNKNOWN 0  
RESULT_SUCCESS 1  
RESULT_ILL_FORMED 2  
RESULT_NOT_SUPPORTED 3  
RESULT_ARGUMENT_OUT_OF_BOUNDS 4  
RESULT_ARGUMENT_INVALID 5  

set_camera_control_status.proto

RequestSetCameraControlStatus

Field Type Label Description
camera_control_status EnumCameraControlStatus required Declare who is taking control of the camera

EnumCameraControlStatus

Name Number Description
CAMERA_IDLE 0  
CAMERA_CONTROL 1 Can only be set by camera, not by third-party
CAMERA_EXTERNAL_CONTROL 2  

turbo_transfer.proto

RequestSetTurboActive

Field Type Label Description
active bool required Enable or disable Turbo Transfer feature

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double   double double float float64 double float Float
float   float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool   bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)