OpenGoPro HTTP API

OpenGoPro HTTP API (2.0)

Download OpenAPI specification:Download

The GoPro API allows developers to create apps and utilities that interact with and control a GoPro camera.

Overview

The GoPro API allows you to control and query the camera to:

  • Capture photo/video media
  • Get media list
  • Change settings
  • Get and set the date/time
  • Get camera status
  • Get media metadata (file size, width, height, duration, tags, etc)
  • and more!

Supported Cameras

Model ID Model Code Marketing Name Minimal Firmware Version
62 H23.01 HERO12 Black v01.10.00
60 H22.03 HERO11 Black Mini v01.10.00
58 H22.01 HERO11 Black v01.10.00
57 H21.01 HERO10 Black v01.10.00
55 HD9.01 HERO9 Black v01.70.00

While the version listed above are minimum versions needed to support the Open GoPro API, the documentation assumes that the GoPro is always updated to the most recent version. This is relevant in cases where functionality changes between versions.

Setup

Connection

WiFi

Connection to the camera via WiFi requires that the camera's WiFi Access Point be enabled. This can be done by connecting to the camera via Bluetooth Low Energy and sending a command to enable AP Mode.

USB

Open GoPro systems that utilize USB must support the Network Control Model (NCM) protocol. Connecting via USB requires the following steps:

  1. Physically connect the camera's USB-C port to your system
  2. Send HTTP command to enable wired USB control

Authentication

WiFi

Once the WiFi Access Point has been turned on, authentication with the camera simply requires connecting with the correct SSID and password. This information can be obtained in two ways:

USB

No authentication is necessary.

Socket Address

WiFi

The socket address for WiFi connections is 10.5.5.9:8080.

USB

The socket address for USB connections is 172.2X.1YZ.51:8080 where XYZ are the last three digits of the camera's serial number.

The camera's serial number can be obtained in any of the following ways:

  • Reading the sticker inside the camera's battery enclosure
  • Camera UI: Preferences >> About >> Camera Info
  • Bluetooth Low Energy: By reading directly from Hardware Info

For example, if the camera's serial number is C0000123456789, the IP address for USB connections would be 172.27.189.51.

Alternatively, the IP address can be discovered via mDNS as the camera registers the _gopro-web service.

General Usage

Commands

Using the Open GoPro API, a client can perform various command, control, and query operations.

Depending on the camera's state, it may not be ready to accept specific commands. This ready state is dependent on the System Busy and the Encoding Active status flags. For example:

  • System Busy flag is set while loading presets, changing settings, formatting sdcard
  • Encoding Active flag is set while capturing photo/video media

If the system is not ready, it should reject an incoming command; however, best practice is to always wait for the System Busy and Encode Active flags to be unset before sending messages other than camera status queries. For details regarding camera state, see the Get State Operation

Keep Alive

It is necessary to periodically send a keep-alive signal to maintain the connection.

Camera Control

In order to prevent undefined behavior between the camera and a connected app, simultaneous use of the camera and a connected app is discouraged. A third party client should use the Set Camera Control Status command to tell the camera that the client wishes to claim control of the camera.

Limitations

General

  • The camera will reject requests to change settings while encoding; for example, if Hindsight feature is active, the user can not change settings
  • Querying the value for a setting that is not associated with the current preset/core mode results in an undefined value. For example, the user should not try to query the current Photo Digital Lenses (FOV) value while in a video-based Preset.

Analytics

Query / Configure Analytics

Set Client as Third Party

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/camera/analytics/set_client_info

Response samples

Content type
application/json
{ }

COHN

The Camera On the Home Network (COHN) capability allows the client to perform command and control with the camera indirectly through an access point such as a router at home.

For security purposes, all communications are performed over HTTPS.

The following cameras support COHN:

Camera Supported
HERO
HERO12 Black
HERO11 Black Mini
HERO11 Black
HERO10 Black
HERO9 Black

Provisioning COHN

In order to use the COHN capability, the camera must first be provisioned for COHN. For instructions on how to do this, see the Open GoPro BLE spec.

Send Messages via HTTPS

Once the camera is provisioned, the client can issue commands and set settings via HTTPS using the COHN certificate and Basic authorization (username/password) credentials obtained during provisioning or subsequently by querying for COHN status.

HTTPS Headers

All HTTPS messages must contain Basic access authentication headers, using the username and password from the COHN status obtained during or after provisioning.

Configure COHN Settings

HERO12 Black

Supported Protocols:

  • USB
  • WIFI

Request Body schema: application/json
cohn_active
integer
Enum: 0 1

1 to enable, 0 to disable

When cohn_active == 1, STA Mode connection will be dropped and camera will not automatically re-connect for COHN.

Responses

Response Schema: application/json
object

Request samples

Content type
application/json
{
  • "cohn_active": 0
}

Response samples

Content type
application/json
{ }

Create the COHN SSL/TLS certificates

HERO12 Black

Supported Protocols:

  • USB
  • WIFI

This creates the Camera On the Home Network SSL/TLS certs certs. The created certificate(s) can be obtained via Get COHN Certificate and used for SSL/TLS communications

Request Body schema: application/json
override
integer
Enum: 0 1

If 1, replace existing Root CA cert with a newly-generated one.

Responses

Response Schema: application/json
object

Request samples

Content type
application/json
{
  • "override": 0
}

Response samples

Content type
application/json
{ }

Delete COHN Certificates

HERO12 Black

Supported Protocols:

  • USB
  • WIFI

Responses

Response Schema: application/json
object

Request samples

curl --request POST \
  --url http://10.5.5.9:8080/gopro/cohn/cert/clear

Response samples

Content type
application/json
{ }

Get COHN Certificate

HERO12 Black

Supported Protocols:

  • USB
  • WIFI

Responses

Response Schema: text/plain
string

Request samples

curl --request POST \
  --url http://10.5.5.9:8080/GoProRootCA.crt

Response samples

Content type
text/plain
-----BEGIN CERTIFICATE-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END CERTIFICATE----

Get COHN Status

HERO12 Black

Supported Protocols:

  • USB
  • WIFI

Responses

Response Schema: application/json
enabled
integer
Enum: 0 1

Is COHN currently enabled?

ipaddress
string
Example: "123.45.67.890"

Camera's IP address on the local network

macaddress
string

MAC address of the wifi adapter

password
string

Password used for http basic auth header

ssid
string

Currently connected SSID

state
integer (EnumCOHNNetworkState)
Enum: 0 1 2 5 27 28 29 30
ID Name Summary
0 COHN_STATE_Init
1 COHN_STATE_Error
2 COHN_STATE_Exit
5 COHN_STATE_Idle
27 COHN_STATE_NetworkConnected
28 COHN_STATE_NetworkDisconnected
29 COHN_STATE_ConnectingToNetwork
30 COHN_STATE_Invalid
status
integer (EnumCOHNStatus)
Enum: 0 1
ID Name Summary
0 COHN_UNPROVISIONED
1 COHN_PROVISIONED
username
string

Username used for http basic auth header

Request samples

curl --request POST \
  --url http://10.5.5.9:8080/gopro/cohn/status

Response samples

Content type
application/json
{
  • "enabled": 0,
  • "ipaddress": "123.45.67.890",
  • "macaddress": "string",
  • "password": "string",
  • "ssid": "string",
  • "state": 0,
  • "status": 0,
  • "username": "string"
}

Control

Command and control of the camera

Configure Turbo Transfer

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Some cameras support Turbo Transfer mode, which allows media to be downloaded over WiFi more rapidly.

This special mode should only be used during media offload.

It is recommended that the user check for and, if necessary, disable Turbo Transfer on connection.

Note that Disabling / enabling turbo mode willa lso enable / disable the transferring media camera UI.

query Parameters
p<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

0 to disable, 1 to enable

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/media/turbo_transfer?p=0'

Response samples

Content type
application/json
{ }

Enable Wired camera control over USB

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

Supported Protocols:

  • USB
  • WIFI

query Parameters
p<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

If 1, enable wired usb control; If 0, disable usb control

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/control/wired_usb?p=0'

Response samples

Content type
application/json
{ }

Keep Alive

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

In order to maximize battery life, GoPro cameras automatically go to sleep after some time. This logic is handled by a combination of the Auto Power Down setting which most (but not all) cameras support and a Keep Alive message that the user can regularly send to the camera.

The camera will automatically go to sleep if both timers reach zero.

The Auto Power Down timer is reset when the user taps the LCD screen, presses a button on the camera, programmatically (un)sets the shutter, sets a setting, or loads a Preset.

The Keep Alive timer is reset when the user sends a keep alive message.

The best practice to prevent the camera from inadvertently going to sleep is to start sending Keep Alive messages every 3.0 seconds after a connection is established.

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/camera/keep_alive

Response samples

Content type
application/json
{ }

Set Camera Control Status

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

Supported Protocols:

  • USB
  • WIFI

This command is used to tell the camera that a client (i.e. External Control) wishes to claim control of the camera. This causes the camera to immediately exit most contextual menus and return to the idle screen. Any interaction with the camera's physical buttons will cause the camera to reclaim control and update control status accordingly. If the user returns the camera UI to the idle screen, the camera updates control status to Idle.

Note:

  • The entity currently claiming control of the camera is advertised in camera status 114
  • Information about whether the camera is in a contextual menu or not is advertised in camera status 63.

See the below diagram for a state diagram of Camera Control:

global behaviors state diagram

query Parameters
p<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2
ID Name Summary
0 CAMERA_IDLE
1 CAMERA_CONTROL Can only be set by camera, not by app or third party
2 CAMERA_EXTERNAL_CONTROL

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/control/set_ui_controller?p=0'

Response samples

Content type
application/json
{ }

Set Date / Time

HERO12 Black HERO11 Black Mini HERO11 Black

Supported Protocols:

  • USB
  • WIFI

query Parameters
date<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: date=2023_12_31

current date in format YYYY_MM_DD

time<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: time=21_12_13

current time in format HH_MM_SS in 24 hour format

tzone<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> integer Example: tzone=-480Timezone offset in minutes. See here for a listing of all UTC offsets. Not supported on Hero 10 Black Hero 9 Black
dst<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div> integer Enum: 0 1 Is daylight savings time active? Not supported on Hero 10 Black Hero 9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/set_date_time?date=2023_12_31&time=21_12_13&tzone=-480&dst=0'

Response samples

Content type
application/json
{ }

Set Digital Zoom

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

query Parameters
percent<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer [ 0 .. 100 ]
Example: percent=50

Zoom Level (0-100)

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/digital_zoom?percent=50'

Response samples

Content type
application/json
{ }

Set Shutter

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

Supported Protocols:

  • USB
  • WIFI

path Parameters
mode<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Enum: "start" "stop"
Example: start

Start / stop encoding.

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/camera/shutter/start

Response samples

Content type
application/json
{ }

Hilights

The HiLight Tags feature allows the user to tag moments of interest either during video capture or on existing media.

Once HiLight tags have been added, they can be queried via Media Info

Hilight a Media File

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Add a hilight / tag to an existing photo or media file.

query Parameters
path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: path=100GOPRO/GOPR0002.MP4

The path to a file on the camera to HiLight

ms
integer
Example: ms=1

The offset from the beginning of a video file, in milliseconds

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/media/hilight/file?path=100GOPRO/GOPR0002.MP4&ms=1'

Response samples

Content type
application/json
{ }

Hilight While Recording

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

Supported Protocols:

  • USB
  • WIFI

Add hilight at current time while recording video

This can only be used during recording.

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/media/hilight/moment

Response samples

Content type
application/json
{ }

Remove Hilight

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Remove an existing hilight from a photo or video file.

query Parameters
path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: path=100GOPRO/GOPR0002.MP4

The path to a file on the camera to remove a HiLight from

ms
integer
Example: ms=1

The offset from the beginning of a video file, in milliseconds

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/media/hilight/remove?path=100GOPRO/GOPR0002.MP4&ms=1'

Response samples

Content type
application/json
{ }

Media

This section describes the operations to query basic details about media captured on the sdcard.

Chapters

All GoPro cameras break longer videos into chapters. GoPro cameras currently limit file sizes on sdcards to 4GB for both FAT32 and exFAT file systems. This limitation is most commonly seen when recording longer (10+ minute) videos. In practice, the camera will split video media into chapters named Gqccmmmm.MP4 (and ones for THM/LRV) such that:

  • q: Quality Level (X: Extreme, H: High, M: Medium, L: Low)
  • cc: Chapter Number (01-99)
  • mmmm: Media ID (0001-9999)

When media becomes chaptered, the camera increments subsequent Chapter Numbers while leaving the Media ID unchanged. For example, if the user records a long High-quality video that results in 4 chapters, the files on the sdcard may look like the following:

-rwxrwxrwx@ 1 gopro  123456789  4006413091 Jan  1 00:00 GH010078.MP4
-rwxrwxrwx@ 1 gopro  123456789       17663 Jan  1 00:00 GH010078.THM
-rwxrwxrwx@ 1 gopro  123456789  4006001541 Jan  1 00:00 GH020078.MP4
-rwxrwxrwx@ 1 gopro  123456789       17357 Jan  1 00:00 GH020078.THM
-rwxrwxrwx@ 1 gopro  123456789  4006041985 Jan  1 00:00 GH030078.MP4
-rwxrwxrwx@ 1 gopro  123456789       17204 Jan  1 00:00 GH030078.THM
-rwxrwxrwx@ 1 gopro  123456789   756706872 Jan  1 00:00 GH040078.MP4
-rwxrwxrwx@ 1 gopro  123456789       17420 Jan  1 00:00 GH040078.THM
-rwxrwxrwx@ 1 gopro  123456789   184526939 Jan  1 00:00 GL010078.LRV
-rwxrwxrwx@ 1 gopro  123456789   184519787 Jan  1 00:00 GL020078.LRV
-rwxrwxrwx@ 1 gopro  123456789   184517614 Jan  1 00:00 GL030078.LRV
-rwxrwxrwx@ 1 gopro  123456789    34877660 Jan  1 00:00 GL040078.LRV

Delete All Files

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gp/gpControl/command/storage/delete/all

Response samples

Content type
application/json
{ }

Delete Grouped Media Item

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Delete an entire group of media files such as in a burst, timelapse, or chaptered video. This API should not be used to delete single files. Instead use Delete Single File

query Parameters
p<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: p=105GOPRO/G0016880.JPG

The path to the group on the camera to delete. This path must be the first file in the group.

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gp/gpControl/command/storage/delete/group?p=105GOPRO/G0016880.JPG'

Response samples

Content type
application/json
{ }

Delete Single Media File

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

When operating on a file that is part of a group, only the individual file will be deleted. To delete the entire group, use Delete Grouped Media Item

query Parameters
p<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: p=105GOPRO/GOPR6879.JPG

path to media file to delete

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/media/delete/file?p=105GOPRO/GOPR6879.JPG'

Response samples

Content type
application/json
{ }

Download a Media File

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Note that this is the same endpoint for all media (photos, video, etc.).

path Parameters
directory<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: 100GOPRO

Case sensitive directory that media resides in

filename<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Examples:
  • GOPR0001.JPG - Sample photo file
  • GH010397.MP4 - Sample video file

Case sensitive media filename

Responses

Response Schema: application/octet-stream
string <binary>

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/videos/DCIM/100GOPRO/%7Bfilename%7D

Get Last Captured Media

HERO12 Black

Supported Protocols:

  • USB
  • WIFI

This will return the complete path of the last captured media. Depending on the type of media captured, it will return:

  • single photo / video: The single media path
  • any grouped media: The path to the first captured media in the group

Responses

Response Schema: application/json
file
string
Example: "GOPR0002.JPG"

Filename of media

folder
string
Example: "100GOPRO"

Directory in which the media is contained in

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/media/last_captured

Response samples

Content type
application/json
{
  • "file": "GOPR0002.JPG",
  • "folder": "100GOPRO"
}

Get Media File GPMF

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

None

query Parameters
path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: path=100GOPRO/GOPR0002.JPG

media file name

Responses

Response Schema: application/octet-stream
string <binary>

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/media/gpmf?path=100GOPRO/GOPR0002.JPG'

Get Media File Info

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

query Parameters
path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: path=100GOPRO/GOPR0002.JPG

media file name

Responses

Response Schema: application/json
Any of
ct<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2 3 4 5 6 8 9 10 11 12

Media content type

ID Mode
Video 0
Looping 1
Chaptered Video 2
Time Lapse 3
Single Photo 4
Burst Photo 5
Time Lapse Photo 6
Night Lapse Photo 8
Night Photo 9
Continuous Photo 10
Raw Photo 11
Live Burst 12
cre<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1692992748"

Creation time in seconds since epoch

s<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1234567890"

File size in bytes

gumi<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: "12345678998765443211234567899875"

Globally Unique Media ID

h<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1080"

Height of media in pixels

w<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1920"

Width of media in pixels

hc<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer [ 0 .. 99 ]

Number of hilights in media

eis<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if stabilized, 0 otherwise

mp<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if metadata is present, 0 otherwise

rot<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string

Deprecated

tr<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if file is transcoded, 0 otherwise

us<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

Has the file been uploaded? 0 if no, 1 if yes

ao<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Enum: "auto" "wind" "stereo" "off"
Example: "auto"

Audio option

profile<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer [ 0 .. 255 ]

Advanced Video Codec Level

avc_profile<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer [ 0 .. 255 ]
Example: "0"

Advanced Video Code Profile

cl<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if clipped, 0 otherwise

dur<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "42"

Video duration in seconds

fps<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1001"

Video frame rate numerator

fps_denom<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "30000"

Video frame rate denominator

ls<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer [ -1 .. 1234567890 ]

Low Resolution Video file size in bytes. -1 if there is no LRV file

pta<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if protune audio is present, 0 otherwise

subsample<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if subsampled from other video, 0 otherwise

fov
string

Field of View

hi
Array of integers
Example: "1500,4700"

List of hilights in ms offset from start of video

lc
integer
Enum: 0 1

Lens configuration ==> 0 for front, 1 for rear

mos
Array of strings
Items Enum: "app" "pc" "other"
Example: "app,pc"

List of offload states

prjn
integer
Enum: 0 1 2 3 4 5 6 7 8

Lens projection

ID Mode
EAC 0
ERP 1
EAC, split horizontally in the middle for 2 output 2
ERP, cropped for panorama 3
Bypass stitch algorithm, side by side circles 4
Stitch is disabled, stitch algorithm is enabled for offline stitch 5
Stitch is disabled 6
Bypass stitch algorithm for EAC split 7
Hemisheric 8
progr
integer
Enum: 0 1

Is video progressive? 1 if progressive, 0 if interlaced

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/media/info?path=100GOPRO/GOPR0002.JPG'

Response samples

Content type
application/json
Example
{
  • "ao": "auto",
  • "avc_profile": 0,
  • "cl": 0,
  • "cre": 1692992748,
  • "ct": 0,
  • "dur": 42,
  • "eis": 0,
  • "fov": "string",
  • "fps": 1001,
  • "fps_denom": 30000,
  • "gumi": "12345678998765443211234567899875",
  • "h": 1080,
  • "hc": 99,
  • "hi": [
    ],
  • "lc": 0,
  • "ls": -1,
  • "mos": [
    ],
  • "mp": 0,
  • "prjn": 0,
  • "profile": 255,
  • "progr": 0,
  • "pta": 0,
  • "rot": "string",
  • "s": 1234567890,
  • "subsample": 0,
  • "tr": 0,
  • "us": 0,
  • "w": 1920
}

Get Media File Screennail

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

A screennail is a low-res preview image that is higher resolution than a thumbnail.

query Parameters
path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: path=100GOPRO/GOPR0002.JPG

media file name

Responses

Response Schema: application/octet-stream
string <binary>

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/media/screennail?path=100GOPRO/GOPR0002.JPG'

Get Media File Telemetry

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Get Media File Telemetry track data

query Parameters
path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: path=100GOPRO/GOPR0002.JPG

media file name

Responses

Response Schema: application/octet-stream
string <binary>

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/media/telemetry?path=100GOPRO/GOPR0002.JPG'

Get Media File Thumbnail

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

query Parameters
path<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: path=100GOPRO/GOPR0002.JPG

media file name

Responses

Response Schema: application/octet-stream
string <binary>

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/media/thumbnail?path=100GOPRO/GOPR0002.JPG'

Get Media List

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

To minimize the size of the JSON transmitted by the camera, grouped media items such as Burst Photos, Time Lapse Photos, Night Lapse Photos, etc are represented with a single item in the media list with additional keys that allow the user to extrapolate individual filenames for each member of the group.

Filenames for group media items have the form "GXXXYYYY.ZZZ" where XXX is the group ID, YYY is the group member ID and ZZZ is the file extension.

For example, take the media list below, which contains a Time Lapse Photo group media item:

{
    "id": "2530266050123724003",
    "media": [
        {
            "d": "100GOPRO",
            "fs" : [
                {
                    "b": "8",
                    "cre": "1613669353",
                    "g": "1",
                    "l": "396",
                    "m": ["75", "139"],
                    "mod": "1613669353",
                    "n": "G0010008.JPG",
                    "s": "773977407",
                    "t": "t"
                }
            ]
        }
    ]
}

The first filename in the group is G0010008.JP (key: n).

The ID of the first group member in this case is 008 (key: b).

The ID of the last group member in this case is 396 (key: l).

The IDs of deleted members in this case are 75 and 139 (key: m)

Given this information, the user can extrapolate that the group currently contains

G0010008.JPG, G0010009.JPG, G0010010.JPG,
...,
G0010074.JPG, G0010076.JPG,
...,
G0010138.JPG, G0010140.JPG,
...,
G0010394.JPG, G0010395.JPG. G0010396.JPG

Responses

Response Schema: application/json
id<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: "1554375628411872255"

media list identifier

<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
Array of objects
Array
d
required
string
Example: "100GOPRO"

directory that the media files reside in

required
Array of SingleMediaListItem (object) or GroupedMediaListItem (object)

list of files

Array
Any of
n
required
string
Example: "GOPR0001.JPG"

Media filename

cre
required
integer
Example: "1696600109"

Creation time in seconds since epoch

mod
required
integer
Example: "1696600109"

Time file was last modified in seconds since epoch

s
required
integer
Example: "2806303"

Size of media in bytes

glrv
integer
Example: "817767"

Low resolution video size

ls
integer
Example: "-1"

Low resolution file size. -1 if there is no LRV file

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/media/list

Response samples

Content type
application/json
{
  • "id": "1554375628411872255",
  • "media": [
    ]
}

Models

Common data models used across operations

GroupedMediaListItem

n<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: "G0010011.MP4"

Media filename

cre<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1696600109"

Creation time in seconds since epoch

mod<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1696600109"

Time file was last modified in seconds since epoch

g<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1"

Group Identifier

s<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "5"

Number of files in the group

b<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1"

ID of first member in the group

l<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "6"

ID of last member in the group

m<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
Array of integers
Example: "1,2"

File ID's that are missing or deleted

t<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Enum: "b" "c" "n" "t"

Group Type (b -> burst, c -> continuous shot, n -> night lapse, t -> time lapse)

glrv
integer
Example: "817767"

Low resolution video size

id
string

Media list session identifier

ls
integer
Example: "-1"

Low resolution file size. -1 if there is no LRV file

{
  • "b": 1,
  • "cre": 1696600109,
  • "g": 1,
  • "glrv": 817767,
  • "id": "string",
  • "l": 6,
  • "ls": -1,
  • "m": [
    ],
  • "mod": 1696600109,
  • "n": "G0010011.MP4",
  • "s": 5,
  • "t": "b"
}

MediaList

id<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: "1554375628411872255"

media list identifier

<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
Array of objects
Array
d
required
string
Example: "100GOPRO"

directory that the media files reside in

required
Array of SingleMediaListItem (object) or GroupedMediaListItem (object)

list of files

Array
Any of
n
required
string
Example: "GOPR0001.JPG"

Media filename

cre
required
integer
Example: "1696600109"

Creation time in seconds since epoch

mod
required
integer
Example: "1696600109"

Time file was last modified in seconds since epoch

s
required
integer
Example: "2806303"

Size of media in bytes

glrv
integer
Example: "817767"

Low resolution video size

ls
integer
Example: "-1"

Low resolution file size. -1 if there is no LRV file

{
  • "id": "1554375628411872255",
  • "media": [
    ]
}

PhotoMetadata

ct<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2 3 4 5 6 8 9 10 11 12

Media content type

ID Mode
Video 0
Looping 1
Chaptered Video 2
Time Lapse 3
Single Photo 4
Burst Photo 5
Time Lapse Photo 6
Night Lapse Photo 8
Night Photo 9
Continuous Photo 10
Raw Photo 11
Live Burst 12
cre<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1692992748"

Creation time in seconds since epoch

s<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1234567890"

File size in bytes

gumi<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: "12345678998765443211234567899875"

Globally Unique Media ID

h<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1080"

Height of media in pixels

w<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1920"

Width of media in pixels

hc<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer [ 0 .. 99 ]

Number of hilights in media

eis<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if stabilized, 0 otherwise

mp<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if metadata is present, 0 otherwise

rot<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string

Deprecated

tr<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if file is transcoded, 0 otherwise

us<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

Has the file been uploaded? 0 if no, 1 if yes

fov
string

Field of View

hdr
integer
Enum: 0 1

1 if photo taken with high dynamic range, 0 otherwise

lc
integer
Enum: 0 1

Lens configuration ==> 0 for front, 1 for rear

mos
Array of strings
Items Enum: "app" "pc" "other"
Example: "app,pc"

List of offload states

prjn
integer
Enum: 0 1 2 3 4 5 6 7 8

Lens projection

ID Mode
EAC 0
ERP 1
EAC, split horizontally in the middle for 2 output 2
ERP, cropped for panorama 3
Bypass stitch algorithm, side by side circles 4
Stitch is disabled, stitch algorithm is enabled for offline stitch 5
Stitch is disabled 6
Bypass stitch algorithm for EAC split 7
Hemisheric 8
raw
integer
Enum: 0 1

1 if photo has raw version, 0 otherwise

wdr
integer
Enum: 0 1

1 if photo taken with wide dynamic range, 0 otherwise

{
  • "cre": 1692992748,
  • "ct": 0,
  • "eis": 0,
  • "fov": "string",
  • "gumi": "12345678998765443211234567899875",
  • "h": 1080,
  • "hc": 99,
  • "hdr": 0,
  • "lc": 0,
  • "mos": [
    ],
  • "mp": 0,
  • "prjn": 0,
  • "raw": 0,
  • "rot": "string",
  • "s": 1234567890,
  • "tr": 0,
  • "us": 0,
  • "w": 1920,
  • "wdr": 0
}

Preset

icon
integer (EnumPresetIcon)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 1000 1001
ID Name Summary
0 PRESET_ICON_VIDEO
1 PRESET_ICON_ACTIVITY
2 PRESET_ICON_CINEMATIC
3 PRESET_ICON_PHOTO
4 PRESET_ICON_LIVE_BURST
5 PRESET_ICON_BURST
6 PRESET_ICON_PHOTO_NIGHT
7 PRESET_ICON_TIMEWARP
8 PRESET_ICON_TIMELAPSE
9 PRESET_ICON_NIGHTLAPSE
10 PRESET_ICON_SNAIL
11 PRESET_ICON_VIDEO_2
13 PRESET_ICON_PHOTO_2
14 PRESET_ICON_PANORAMA
15 PRESET_ICON_BURST_2
16 PRESET_ICON_TIMEWARP_2
17 PRESET_ICON_TIMELAPSE_2
18 PRESET_ICON_CUSTOM
19 PRESET_ICON_AIR
20 PRESET_ICON_BIKE
21 PRESET_ICON_EPIC
22 PRESET_ICON_INDOOR
23 PRESET_ICON_MOTOR
24 PRESET_ICON_MOUNTED
25 PRESET_ICON_OUTDOOR
26 PRESET_ICON_POV
27 PRESET_ICON_SELFIE
28 PRESET_ICON_SKATE
29 PRESET_ICON_SNOW
30 PRESET_ICON_TRAIL
31 PRESET_ICON_TRAVEL
32 PRESET_ICON_WATER
33 PRESET_ICON_LOOPING
34 PRESET_ICON_STARS
35 PRESET_ICON_ACTION
36 PRESET_ICON_FOLLOW_CAM
37 PRESET_ICON_SURF
38 PRESET_ICON_CITY
39 PRESET_ICON_SHAKY
40 PRESET_ICON_CHESTY
41 PRESET_ICON_HELMET
42 PRESET_ICON_BITE
58 PRESET_ICON_BASIC
59 PRESET_ICON_ULTRA_SLO_MO
60 PRESET_ICON_STANDARD_ENDURANCE
61 PRESET_ICON_ACTIVITY_ENDURANCE
62 PRESET_ICON_CINEMATIC_ENDURANCE
63 PRESET_ICON_SLOMO_ENDURANCE
64 PRESET_ICON_STATIONARY_1
65 PRESET_ICON_STATIONARY_2
66 PRESET_ICON_STATIONARY_3
67 PRESET_ICON_STATIONARY_4
70 PRESET_ICON_SIMPLE_SUPER_PHOTO
71 PRESET_ICON_SIMPLE_NIGHT_PHOTO
73 PRESET_ICON_HIGHEST_QUALITY_VIDEO
74 PRESET_ICON_STANDARD_QUALITY_VIDEO
75 PRESET_ICON_BASIC_QUALITY_VIDEO
76 PRESET_ICON_STAR_TRAIL
77 PRESET_ICON_LIGHT_PAINTING
78 PRESET_ICON_LIGHT_TRAIL
79 PRESET_ICON_FULL_FRAME
1000 PRESET_ICON_TIMELAPSE_PHOTO
1001 PRESET_ICON_NIGHTLAPSE_PHOTO
id
integer <int32>

Unique preset identifier

isFixed
boolean

Is this preset mutable?

isModified
boolean

Has the preset been modified from the factory defaults?

mode
integer (EnumFlatMode)
Enum: -1 4 5 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
ID Name Summary
-1 FLAT_MODE_UNKNOWN
4 FLAT_MODE_PLAYBACK
5 FLAT_MODE_SETUP
12 FLAT_MODE_VIDEO
13 FLAT_MODE_TIME_LAPSE_VIDEO
15 FLAT_MODE_LOOPING
16 FLAT_MODE_PHOTO_SINGLE
17 FLAT_MODE_PHOTO
18 FLAT_MODE_PHOTO_NIGHT
19 FLAT_MODE_PHOTO_BURST
20 FLAT_MODE_TIME_LAPSE_PHOTO
21 FLAT_MODE_NIGHT_LAPSE_PHOTO
22 FLAT_MODE_BROADCAST_RECORD
23 FLAT_MODE_BROADCAST_BROADCAST
24 FLAT_MODE_TIME_WARP_VIDEO
25 FLAT_MODE_LIVE_BURST
26 FLAT_MODE_NIGHT_LAPSE_VIDEO
27 FLAT_MODE_SLOMO
28 FLAT_MODE_IDLE
29 FLAT_MODE_VIDEO_STAR_TRAIL
30 FLAT_MODE_VIDEO_LIGHT_PAINTING
31 FLAT_MODE_VIDEO_LIGHT_TRAIL
32 FLAT_MODE_VIDEO_BURST_SLOMO
Array of objects (PresetSetting)
Array
id
integer <int32>

Setting identifier

isCaption
boolean

Does this setting appear on the Preset "pill" in the camera UI?

value
integer <int32>

Setting value

titleId
integer (EnumPresetTitle)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 82 83 93 94
ID Name Summary
0 PRESET_TITLE_ACTIVITY
1 PRESET_TITLE_STANDARD
2 PRESET_TITLE_CINEMATIC
3 PRESET_TITLE_PHOTO
4 PRESET_TITLE_LIVE_BURST
5 PRESET_TITLE_BURST
6 PRESET_TITLE_NIGHT
7 PRESET_TITLE_TIME_WARP
8 PRESET_TITLE_TIME_LAPSE
9 PRESET_TITLE_NIGHT_LAPSE
10 PRESET_TITLE_VIDEO
11 PRESET_TITLE_SLOMO
13 PRESET_TITLE_PHOTO_2
14 PRESET_TITLE_PANORAMA
16 PRESET_TITLE_TIME_WARP_2
18 PRESET_TITLE_CUSTOM
19 PRESET_TITLE_AIR
20 PRESET_TITLE_BIKE
21 PRESET_TITLE_EPIC
22 PRESET_TITLE_INDOOR
23 PRESET_TITLE_MOTOR
24 PRESET_TITLE_MOUNTED
25 PRESET_TITLE_OUTDOOR
26 PRESET_TITLE_POV
27 PRESET_TITLE_SELFIE
28 PRESET_TITLE_SKATE
29 PRESET_TITLE_SNOW
30 PRESET_TITLE_TRAIL
31 PRESET_TITLE_TRAVEL
32 PRESET_TITLE_WATER
33 PRESET_TITLE_LOOPING
34 PRESET_TITLE_STARS
35 PRESET_TITLE_ACTION
36 PRESET_TITLE_FOLLOW_CAM
37 PRESET_TITLE_SURF
38 PRESET_TITLE_CITY
39 PRESET_TITLE_SHAKY
40 PRESET_TITLE_CHESTY
41 PRESET_TITLE_HELMET
42 PRESET_TITLE_BITE
58 PRESET_TITLE_BASIC
59 PRESET_TITLE_ULTRA_SLO_MO
60 PRESET_TITLE_STANDARD_ENDURANCE
61 PRESET_TITLE_ACTIVITY_ENDURANCE
62 PRESET_TITLE_CINEMATIC_ENDURANCE
63 PRESET_TITLE_SLOMO_ENDURANCE
64 PRESET_TITLE_STATIONARY_1
65 PRESET_TITLE_STATIONARY_2
66 PRESET_TITLE_STATIONARY_3
67 PRESET_TITLE_STATIONARY_4
68 PRESET_TITLE_SIMPLE_VIDEO
69 PRESET_TITLE_SIMPLE_TIME_WARP
70 PRESET_TITLE_SIMPLE_SUPER_PHOTO
71 PRESET_TITLE_SIMPLE_NIGHT_PHOTO
72 PRESET_TITLE_SIMPLE_VIDEO_ENDURANCE
73 PRESET_TITLE_HIGHEST_QUALITY
74 PRESET_TITLE_EXTENDED_BATTERY
75 PRESET_TITLE_LONGEST_BATTERY
76 PRESET_TITLE_STAR_TRAIL
77 PRESET_TITLE_LIGHT_PAINTING
78 PRESET_TITLE_LIGHT_TRAIL
79 PRESET_TITLE_FULL_FRAME
82 PRESET_TITLE_STANDARD_QUALITY_VIDEO
83 PRESET_TITLE_BASIC_QUALITY_VIDEO
93 PRESET_TITLE_HIGHEST_QUALITY_VIDEO
94 PRESET_TITLE_USER_DEFINED_CUSTOM_NAME
titleNumber
integer <int32>

Preset title number

userDefined
boolean

Is this preset user defined?

{
  • "icon": 0,
  • "id": 0,
  • "isFixed": true,
  • "isModified": true,
  • "mode": -1,
  • "settingArray": [
    ],
  • "titleId": 0,
  • "titleNumber": 0,
  • "userDefined": true
}

PresetGroup

canAddPreset
boolean

Is there room in the group to add additional Presets?

icon
integer (EnumPresetGroupIcon)
Enum: 0 1 2 3 4 5 6 7
ID Name Summary
0 PRESET_GROUP_VIDEO_ICON_ID
1 PRESET_GROUP_PHOTO_ICON_ID
2 PRESET_GROUP_TIMELAPSE_ICON_ID
3 PRESET_GROUP_LONG_BAT_VIDEO_ICON_ID
4 PRESET_GROUP_ENDURANCE_VIDEO_ICON_ID
5 PRESET_GROUP_MAX_VIDEO_ICON_ID
6 PRESET_GROUP_MAX_PHOTO_ICON_ID
7 PRESET_GROUP_MAX_TIMELAPSE_ICON_ID
id
integer (EnumPresetGroup)
Enum: 1000 1001 1002
ID Name Summary
1000 PRESET_GROUP_ID_VIDEO
1001 PRESET_GROUP_ID_PHOTO
1002 PRESET_GROUP_ID_TIMELAPSE
Array of objects (Preset)

Array of Presets contained in this Preset Group

Array
icon
integer (EnumPresetIcon)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 1000 1001
ID Name Summary
0 PRESET_ICON_VIDEO
1 PRESET_ICON_ACTIVITY
2 PRESET_ICON_CINEMATIC
3 PRESET_ICON_PHOTO
4 PRESET_ICON_LIVE_BURST
5 PRESET_ICON_BURST
6 PRESET_ICON_PHOTO_NIGHT
7 PRESET_ICON_TIMEWARP
8 PRESET_ICON_TIMELAPSE
9 PRESET_ICON_NIGHTLAPSE
10 PRESET_ICON_SNAIL
11 PRESET_ICON_VIDEO_2
13 PRESET_ICON_PHOTO_2
14 PRESET_ICON_PANORAMA
15 PRESET_ICON_BURST_2
16 PRESET_ICON_TIMEWARP_2
17 PRESET_ICON_TIMELAPSE_2
18 PRESET_ICON_CUSTOM
19 PRESET_ICON_AIR
20 PRESET_ICON_BIKE
21 PRESET_ICON_EPIC
22 PRESET_ICON_INDOOR
23 PRESET_ICON_MOTOR
24 PRESET_ICON_MOUNTED
25 PRESET_ICON_OUTDOOR
26 PRESET_ICON_POV
27 PRESET_ICON_SELFIE
28 PRESET_ICON_SKATE
29 PRESET_ICON_SNOW
30 PRESET_ICON_TRAIL
31 PRESET_ICON_TRAVEL
32 PRESET_ICON_WATER
33 PRESET_ICON_LOOPING
34 PRESET_ICON_STARS
35 PRESET_ICON_ACTION
36 PRESET_ICON_FOLLOW_CAM
37 PRESET_ICON_SURF
38 PRESET_ICON_CITY
39 PRESET_ICON_SHAKY
40 PRESET_ICON_CHESTY
41 PRESET_ICON_HELMET
42 PRESET_ICON_BITE
58 PRESET_ICON_BASIC
59 PRESET_ICON_ULTRA_SLO_MO
60 PRESET_ICON_STANDARD_ENDURANCE
61 PRESET_ICON_ACTIVITY_ENDURANCE
62 PRESET_ICON_CINEMATIC_ENDURANCE
63 PRESET_ICON_SLOMO_ENDURANCE
64 PRESET_ICON_STATIONARY_1
65 PRESET_ICON_STATIONARY_2
66 PRESET_ICON_STATIONARY_3
67 PRESET_ICON_STATIONARY_4
70 PRESET_ICON_SIMPLE_SUPER_PHOTO
71 PRESET_ICON_SIMPLE_NIGHT_PHOTO
73 PRESET_ICON_HIGHEST_QUALITY_VIDEO
74 PRESET_ICON_STANDARD_QUALITY_VIDEO
75 PRESET_ICON_BASIC_QUALITY_VIDEO
76 PRESET_ICON_STAR_TRAIL
77 PRESET_ICON_LIGHT_PAINTING
78 PRESET_ICON_LIGHT_TRAIL
79 PRESET_ICON_FULL_FRAME
1000 PRESET_ICON_TIMELAPSE_PHOTO
1001 PRESET_ICON_NIGHTLAPSE_PHOTO
id
integer <int32>

Unique preset identifier

isFixed
boolean

Is this preset mutable?

isModified
boolean

Has the preset been modified from the factory defaults?

mode
integer (EnumFlatMode)
Enum: -1 4 5 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
ID Name Summary
-1 FLAT_MODE_UNKNOWN
4 FLAT_MODE_PLAYBACK
5 FLAT_MODE_SETUP
12 FLAT_MODE_VIDEO
13 FLAT_MODE_TIME_LAPSE_VIDEO
15 FLAT_MODE_LOOPING
16 FLAT_MODE_PHOTO_SINGLE
17 FLAT_MODE_PHOTO
18 FLAT_MODE_PHOTO_NIGHT
19 FLAT_MODE_PHOTO_BURST
20 FLAT_MODE_TIME_LAPSE_PHOTO
21 FLAT_MODE_NIGHT_LAPSE_PHOTO
22 FLAT_MODE_BROADCAST_RECORD
23 FLAT_MODE_BROADCAST_BROADCAST
24 FLAT_MODE_TIME_WARP_VIDEO
25 FLAT_MODE_LIVE_BURST
26 FLAT_MODE_NIGHT_LAPSE_VIDEO
27 FLAT_MODE_SLOMO
28 FLAT_MODE_IDLE
29 FLAT_MODE_VIDEO_STAR_TRAIL
30 FLAT_MODE_VIDEO_LIGHT_PAINTING
31 FLAT_MODE_VIDEO_LIGHT_TRAIL
32 FLAT_MODE_VIDEO_BURST_SLOMO
Array of objects (PresetSetting)
Array
id
integer <int32>

Setting identifier

isCaption
boolean

Does this setting appear on the Preset "pill" in the camera UI?

value
integer <int32>

Setting value

titleId
integer (EnumPresetTitle)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 82 83 93 94
ID Name Summary
0 PRESET_TITLE_ACTIVITY
1 PRESET_TITLE_STANDARD
2 PRESET_TITLE_CINEMATIC
3 PRESET_TITLE_PHOTO
4 PRESET_TITLE_LIVE_BURST
5 PRESET_TITLE_BURST
6 PRESET_TITLE_NIGHT
7 PRESET_TITLE_TIME_WARP
8 PRESET_TITLE_TIME_LAPSE
9 PRESET_TITLE_NIGHT_LAPSE
10 PRESET_TITLE_VIDEO
11 PRESET_TITLE_SLOMO
13 PRESET_TITLE_PHOTO_2
14 PRESET_TITLE_PANORAMA
16 PRESET_TITLE_TIME_WARP_2
18 PRESET_TITLE_CUSTOM
19 PRESET_TITLE_AIR
20 PRESET_TITLE_BIKE
21 PRESET_TITLE_EPIC
22 PRESET_TITLE_INDOOR
23 PRESET_TITLE_MOTOR
24 PRESET_TITLE_MOUNTED
25 PRESET_TITLE_OUTDOOR
26 PRESET_TITLE_POV
27 PRESET_TITLE_SELFIE
28 PRESET_TITLE_SKATE
29 PRESET_TITLE_SNOW
30 PRESET_TITLE_TRAIL
31 PRESET_TITLE_TRAVEL
32 PRESET_TITLE_WATER
33 PRESET_TITLE_LOOPING
34 PRESET_TITLE_STARS
35 PRESET_TITLE_ACTION
36 PRESET_TITLE_FOLLOW_CAM
37 PRESET_TITLE_SURF
38 PRESET_TITLE_CITY
39 PRESET_TITLE_SHAKY
40 PRESET_TITLE_CHESTY
41 PRESET_TITLE_HELMET
42 PRESET_TITLE_BITE
58 PRESET_TITLE_BASIC
59 PRESET_TITLE_ULTRA_SLO_MO
60 PRESET_TITLE_STANDARD_ENDURANCE
61 PRESET_TITLE_ACTIVITY_ENDURANCE
62 PRESET_TITLE_CINEMATIC_ENDURANCE
63 PRESET_TITLE_SLOMO_ENDURANCE
64 PRESET_TITLE_STATIONARY_1
65 PRESET_TITLE_STATIONARY_2
66 PRESET_TITLE_STATIONARY_3
67 PRESET_TITLE_STATIONARY_4
68 PRESET_TITLE_SIMPLE_VIDEO
69 PRESET_TITLE_SIMPLE_TIME_WARP
70 PRESET_TITLE_SIMPLE_SUPER_PHOTO
71 PRESET_TITLE_SIMPLE_NIGHT_PHOTO
72 PRESET_TITLE_SIMPLE_VIDEO_ENDURANCE
73 PRESET_TITLE_HIGHEST_QUALITY
74 PRESET_TITLE_EXTENDED_BATTERY
75 PRESET_TITLE_LONGEST_BATTERY
76 PRESET_TITLE_STAR_TRAIL
77 PRESET_TITLE_LIGHT_PAINTING
78 PRESET_TITLE_LIGHT_TRAIL
79 PRESET_TITLE_FULL_FRAME
82 PRESET_TITLE_STANDARD_QUALITY_VIDEO
83 PRESET_TITLE_BASIC_QUALITY_VIDEO
93 PRESET_TITLE_HIGHEST_QUALITY_VIDEO
94 PRESET_TITLE_USER_DEFINED_CUSTOM_NAME
titleNumber
integer <int32>

Preset title number

userDefined
boolean

Is this preset user defined?

{
  • "canAddPreset": true,
  • "icon": 0,
  • "id": 1000,
  • "presetArray": [
    ]
}

PresetSetting

id
integer <int32>

Setting identifier

isCaption
boolean

Does this setting appear on the Preset "pill" in the camera UI?

value
integer <int32>

Setting value

{
  • "id": 0,
  • "isCaption": true,
  • "value": 0
}

SingleMediaListItem

n<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: "GOPR0001.JPG"

Media filename

cre<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1696600109"

Creation time in seconds since epoch

mod<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1696600109"

Time file was last modified in seconds since epoch

s<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "2806303"

Size of media in bytes

glrv
integer
Example: "817767"

Low resolution video size

ls
integer
Example: "-1"

Low resolution file size. -1 if there is no LRV file

{
  • "cre": 1696600109,
  • "glrv": 817767,
  • "ls": -1,
  • "mod": 1696600109,
  • "n": "GOPR0001.JPG",
  • "s": 2806303
}

State

object

All currently known setting values indexed by setting ID

2
integer
Enum: 1 4 6 7 9 18 24 25 26 27 28 100 107 108 109 110 111

Resolution

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
1 4K HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 2.7K HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
6 2.7K 4:3 HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
7 1440 HERO9 Black
9 1080 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
18 4K 4:3 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
24 5K HERO9 Black
25 5K 4:3 HERO10 Black
26 5.3K 8:7 HERO11 Black MiniHERO11 Black
27 5.3K 4:3 HERO11 Black MiniHERO11 Black
28 4K 8:7 HERO11 Black MiniHERO11 Black
100 5.3K HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 Black
107 5.3K HERO12 Black
108 4K HERO12 Black
109 4K HERO12 Black
110 1080 HERO12 Black
111 2.7K HERO12 Black
3
integer
Enum: 0 1 2 5 6 8 9 10 13

Frames Per Second

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 240 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
1 120 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
2 100 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
5 60 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
6 50 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
8 30 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
9 25 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
10 24 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
13 200 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
43
integer
Enum: 0 2 3 4

Webcam Digital Lenses

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Wide HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
2 Narrow HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
3 Superview HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 Linear HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
59
integer
Enum: 0 1 4 6 7 11 12

Auto Power Down

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Never HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
1 1 Min HERO12 BlackHERO11 Black MiniHERO11 Black
4 5 Min HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
6 15 Min HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
7 30 Min HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
11 8 Seconds HERO11 Black Mini
12 30 Seconds HERO11 Black Mini
83
integer
Enum: 0 1

GPS

HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Off HERO11 BlackHERO10 BlackHERO9 Black
1 On HERO11 BlackHERO10 BlackHERO9 Black
108
integer
Enum: 0 1 3 4

Aspect Ratio

HERO12 Black

Value Meaning Supported Cameras
0 4:3 HERO12 Black
1 16:9 HERO12 Black
3 8:7 HERO12 Black
4 9:16 HERO12 Black
121
integer
Enum: 0 2 3 4 7 8 9 10 11

Lens

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Wide HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
2 Narrow HERO10 BlackHERO9 Black
3 Superview HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 Linear HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
7 Max SuperView HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
8 Linear + Horizon Leveling HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
9 HyperView HERO12 BlackHERO11 Black MiniHERO11 Black
10 Linear + Horizon Lock HERO12 BlackHERO11 Black MiniHERO11 Black
11 Max HyperView HERO12 Black
122
integer
Enum: 19 100 101 102

Lens

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
19 Narrow HERO10 BlackHERO9 Black
100 Max SuperView HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
101 Wide HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
102 Linear HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
123
integer
Enum: 19 100 101 102

Time Lapse Digital Lenses

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
19 Narrow HERO10 BlackHERO9 Black
100 Max SuperView HERO10 Black
101 Wide HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
102 Linear HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
128
integer
Enum: 13 20 21 26

Media Format

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
13 Time Lapse Video HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
20 Time Lapse Photo HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
21 Night Lapse Photo HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
26 Night Lapse Video HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
134
integer
Enum: 2 3

Anti-Flicker

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
2 60Hz HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
3 50Hz HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
135
integer
Enum: 0 1 2 3 4 100

Hypersmooth

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Off HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
1 Low HERO12 BlackHERO11 Black MiniHERO11 BlackHERO9 Black
2 High HERO10 BlackHERO9 Black
3 Boost HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 Auto Boost HERO12 BlackHERO11 Black MiniHERO11 Black
100 Standard HERO10 Black
150
integer
Enum: 0 2

Horizon Leveling

HERO11 Black

Value Meaning Supported Cameras
0 Off HERO11 Black
2 Locked HERO11 Black
151
integer
Enum: 0 2

Horizon Leveling

HERO11 Black

Value Meaning Supported Cameras
0 Off HERO11 Black
2 Locked HERO11 Black
162
integer
Enum: 0 1

Max Lens

HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Off HERO11 BlackHERO10 BlackHERO9 Black
1 On HERO11 BlackHERO10 BlackHERO9 Black
167
integer
Enum: 2 3 4

HindSight

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
2 15 Seconds HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
3 30 Seconds HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
4 Off HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
171
integer
Enum: 0 2 3 4 5 6 7 8 9 10

Interval

HERO12 Black

Value Meaning Supported Cameras
0 Off HERO12 Black
2 0.5s HERO12 Black
3 1s HERO12 Black
4 2s HERO12 Black
5 5s HERO12 Black
6 10s HERO12 Black
7 30s HERO12 Black
8 60s HERO12 Black
9 120s HERO12 Black
10 3s HERO12 Black
172
integer
Enum: 0 1 2 3 4 5 6 7 8 9

Duration

HERO12 Black

Value Meaning Supported Cameras
0 Off HERO12 Black
1 15 Seconds HERO12 Black
2 30 Seconds HERO12 Black
3 1 Minute HERO12 Black
4 5 Minutes HERO12 Black
5 15 Minutes HERO12 Black
6 30 Minutes HERO12 Black
7 1 Hour HERO12 Black
8 2 Hours HERO12 Black
9 3 Hours HERO12 Black
173
integer
Enum: 0 1 2

Video Performance Mode

HERO10 Black

Value Meaning Supported Cameras
0 Maximum Video Performance HERO10 Black
1 Extended Battery HERO10 Black
2 Tripod / Stationary Video HERO10 Black
175
integer
Enum: 0 1

Controls

HERO12 Black HERO11 Black

Value Meaning Supported Cameras
0 Easy HERO12 BlackHERO11 Black
1 Pro HERO12 BlackHERO11 Black
176
integer
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137

Easy Mode Speed

HERO12 Black HERO11 Black

Value Meaning Supported Cameras
0 8X Ultra Slo-Mo HERO11 Black
1 4X Super Slo-Mo HERO11 Black
2 2X Slo-Mo HERO11 Black
3 1X Speed (Low Light) HERO11 Black
4 4X Super Slo-Mo (Ext. Batt.) HERO11 Black
5 2X Slo-Mo (Ext. Batt.) HERO11 Black
6 1X Speed (Ext. Batt.) (Low Light) HERO11 Black
7 8X Ultra Slo-Mo (50Hz) HERO11 Black
8 4X Super Slo-Mo (50Hz) HERO11 Black
9 2X Slo-Mo (50Hz) HERO11 Black
10 1X Speed (50Hz) (Low Light) HERO11 Black
11 4X Super Slo-Mo (50Hz) (Ext. Batt.) HERO11 Black
12 2X Slo-Mo (50Hz) (Ext. Batt.) HERO11 Black
13 1X Speed (50Hz) (Ext. Batt.) (Low Light) HERO11 Black
14 8X Ultra Slo-Mo (Ext. Batt.) HERO11 Black
15 8X Ultra Slo-Mo (50Hz) (Ext. Batt.) HERO11 Black
16 8X Ultra Slo-Mo (Long. Batt.) HERO11 Black
17 4X Super Slo-Mo (Long. Batt.) HERO11 Black
18 2X Slo-Mo (Long. Batt.) HERO11 Black
19 1X Speed (Long. Batt.) (Low Light) HERO11 Black
20 8X Ultra Slo-Mo (50Hz) (Long. Batt.) HERO11 Black
21 4X Super Slo-Mo (50Hz) (Long. Batt.) HERO11 Black
22 2X Slo-Mo (50Hz) (Long. Batt.) HERO11 Black
23 1X Speed (50Hz) (Long. Batt.) (Low Light) HERO11 Black
24 2X Slo-Mo (4K) HERO11 Black
25 4X Super Slo-Mo (2.7K) HERO11 Black
26 2X Slo-Mo (4K) (50Hz) HERO11 Black
27 4X Super Slo-Mo (2.7K) (50Hz) HERO11 Black
100 8X Ultra Slo-Mo (V2) HERO12 Black
101 4X Super Slo-Mo (V2) HERO12 Black
102 2X Slo-Mo (V2) HERO12 Black
103 1X Speed (Low Light) (V2) HERO12 Black
104 8X Ultra Slo-Mo (50Hz) (V2) HERO12 Black
105 4X Super Slo-Mo (50Hz) (V2) HERO12 Black
106 2X Slo-Mo (50Hz) (V2) HERO12 Black
107 1X Speed (50Hz) (Low Light) (V2) HERO12 Black
108 8X Ultra Slo-Mo (Long. Batt.) (V2) HERO12 Black
109 4X Super Slo-Mo (Long. Batt.) (V2) HERO12 Black
110 2X Slo-Mo (Long. Batt.) (V2) HERO12 Black
111 1X Speed (Long. Batt.) (Low Light) (V2) HERO12 Black
112 8X Ultra Slo-Mo (50Hz) (Long. Batt.) (V2) HERO12 Black
113 4X Super Slo-Mo (50Hz) (Long. Batt.) (V2) HERO12 Black
114 2X Slo-Mo (50Hz) (Long. Batt.) (V2) HERO12 Black
115 1X Speed (50Hz) (Long. Batt.) (Low Light) (V2) HERO12 Black
116 2X Slo-Mo (4K) (V2) HERO12 Black
117 2X Slo-Mo (4K) (50Hz) (V2) HERO12 Black
118 1X Speed (Low Light) (V2) (Vertical) HERO12 Black
119 1X Speed (50Hz) (Low Light) (V2) (Vertical) HERO12 Black
120 2X Slo-Mo (V2) (Vertical) HERO12 Black
121 2X Slo-Mo (50Hz) (V2) (Vertical) HERO12 Black
122 1X Speed (Full Frame) (Low Light) (V2) HERO12 Black
123 1X Speed (50Hz) (Full Frame) (Low Light) (V2) HERO12 Black
124 2X Slo-Mo (Full Frame) (V2) HERO12 Black
125 2X Slo-Mo (50Hz) (Full Frame) (V2) HERO12 Black
126 1X Speed (4K) (Low Light) (V2) HERO12 Black
127 1X Speed (4K) (50Hz) (Low Light) (V2) HERO12 Black
128 1X Speed (2.7K) (Low Light) (V2) HERO12 Black
129 1X Speed (2.7K) (50Hz) (Low Light) (V2) HERO12 Black
130 2X Slo-Mo (2.7K) (V2) HERO12 Black
131 2X Slo-Mo (2.7K) (50Hz) (V2) HERO12 Black
132 2X Slo-Mo (Long. Batt.) (V2) (Vertical) HERO12 Black
133 2X Slo-Mo (50Hz) (Long. Batt.) (V2) (Vertical) HERO12 Black
134 1X Speed (Long. Batt.) (Low Light) (V2) (Vertical) HERO12 Black
135 1X Speed (50Hz) (Long. Batt.) (Low Light) (V2) (Vertical) HERO12 Black
136 1X Speed (4K) (Full Frame) (Low Light) (V2) HERO12 Black
137 1X Speed (4K) (50Hz) (Full Frame) (Low Light) (V2) HERO12 Black
177
integer
Enum: 0 1

Enable Night Photo

HERO11 Black

Value Meaning Supported Cameras
0 Off HERO11 Black
1 On HERO11 Black
178
integer
Enum: 0 1

Wireless Band

HERO12 Black HERO11 Black Mini HERO11 Black

Value Meaning Supported Cameras
0 2.4GHz HERO12 BlackHERO11 Black MiniHERO11 Black
1 5GHz HERO12 BlackHERO11 Black MiniHERO11 Black
179
integer
Enum: 1 2 3

Trail Length

HERO12 Black HERO11 Black Mini HERO11 Black

Value Meaning Supported Cameras
1 Short HERO12 BlackHERO11 Black MiniHERO11 Black
2 Long HERO12 BlackHERO11 Black MiniHERO11 Black
3 Max HERO12 BlackHERO11 Black MiniHERO11 Black
180
integer
Enum: 0 101 102

Video Mode

HERO11 Black

Value Meaning Supported Cameras
0 Highest Quality HERO11 Black
101 Extended Battery (Green Icon) HERO11 Black
102 Longest Battery (Green Icon) HERO11 Black
182
integer
Enum: 0 1

Bit Rate

HERO12 Black

Value Meaning Supported Cameras
0 Standard HERO12 Black
1 High HERO12 Black
183
integer
Enum: 0 2

Bit Depth

HERO12 Black

Value Meaning Supported Cameras
0 8-Bit HERO12 Black
2 10-Bit HERO12 Black
184
integer
Enum: 0 1 2

Profiles

HERO12 Black

Value Meaning Supported Cameras
0 Standard HERO12 Black
1 HDR HERO12 Black
2 Log HERO12 Black
186
integer
Enum: 0 1 2

Video Mode

HERO12 Black

Value Meaning Supported Cameras
0 Highest Quality HERO12 Black
1 Standard Quality HERO12 Black
2 Basic Quality HERO12 Black
187
integer
Enum: 0 1 2 3 4 5 6 7

Lapse Mode

HERO12 Black

Value Meaning Supported Cameras
0 TimeWarp HERO12 Black
1 Star Trails HERO12 Black
2 Light Painting HERO12 Black
3 Vehicle Lights HERO12 Black
4 Max TimeWarp HERO12 Black
5 Max Star Trails HERO12 Black
6 Max Light Painting HERO12 Black
7 Max Vehicle Lights HERO12 Black
189
integer
Enum: 0 1 2

Max Lens Mod

HERO12 Black

Value Meaning Supported Cameras
0 None HERO12 Black
1 Max Lens 1.0 HERO12 Black
2 Max Lens 2.0 HERO12 Black
190
integer
Enum: 0 1

Max Lens Mod Enable

HERO12 Black

Value Meaning Supported Cameras
0 Off HERO12 Black
1 On HERO12 Black
191
integer
Enum: 0 1

Photo Mode

HERO12 Black

Value Meaning Supported Cameras
0 Super Photo HERO12 Black
1 Night Photo HERO12 Black
192
integer
Enum: 0 1 3

Aspect Ratio

HERO12 Black

Value Meaning Supported Cameras
0 4:3 HERO12 Black
1 16:9 HERO12 Black
3 8:7 HERO12 Black
193
integer
Enum: 0 1 2

Framing

HERO12 Black

Value Meaning Supported Cameras
0 Widescreen HERO12 Black
1 Vertical HERO12 Black
2 Full Frame HERO12 Black
object

All currently known status values indexed by status ID

1
integer
Enum: 0 1

Is the system's internal battery present?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

2
integer
Enum: 0 1 2 3 4

Rough approximation of internal battery level in bars (or charging)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Zero
1 One
2 Two
3 Three
4 Charging
6
integer
Enum: 0 1

Is the system currently overheating?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

8
integer
Enum: 0 1

Is the camera busy?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

9
integer
Enum: 0 1

Is Quick Capture feature enabled?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

10
integer
Enum: 0 1

Is the system currently encoding?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

11
integer
Enum: 0 1

Is LCD lock active?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

13
integer

When encoding video, this is the duration (seconds) of the video so far; 0 otherwise

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

17
integer
Enum: 0 1

Are Wireless Connections enabled?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

19
integer
Enum: 0 1 2 3 4

The pairing state of the camera

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Never Started
1 Started
2 Aborted
3 Cancelled
4 Completed
20
integer
Enum: 0 1 2 3

The last type of pairing in which the camera was engaged

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Not Pairing
1 Pairing App
2 Pairing Remote Control
3 Pairing Bluetooth Device
21
integer

Time since boot (milliseconds) of last successful pairing complete action

HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

22
integer
Enum: 0 1 2 3 4

State of current scan for WiFi Access Points

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Never started
1 Started
2 Aborted
3 Canceled
4 Completed
23
integer

Time since boot (milliseconds) that the WiFi Access Point scan completed

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

24
integer
Enum: 0 1 2 3 4

WiFi AP provisioning state

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Never started
1 Started
2 Aborted
3 Canceled
4 Completed
26
integer

Wireless remote control version

HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

27
integer
Enum: 0 1

Is a wireless remote control connected?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

28
integer

Wireless Pairing State. Each bit contains state information (see WirelessPairingStateFlags)

HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

29
string

SSID of the AP the camera is currently connected to. On BLE connection, value is big-endian byte-encoded int32

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

30
string

The camera's WiFi SSID. On BLE connection, value is big-endian byte-encoded int32

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

31
integer

The number of wireless devices connected to the camera

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

32
integer
Enum: 0 1

Is Preview Stream enabled?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

33
integer
Enum: -1 0 1 2 3 4 8

Primary Storage Status

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
-1 Unknown
0 OK
1 SD Card Full
2 SD Card Removed
3 SD Card Format Error
4 SD Card Busy
8 SD Card Swapped
34
integer

How many photos can be taken with current settings before sdcard is full

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

35
integer

How many minutes of video can be captured with current settings before sdcard is full

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

38
integer

Total number of photos on sdcard

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

39
integer

Total number of videos on sdcard

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

41
integer
Enum: 0 1 2 3 4 5 6 7 8 9 10

The current status of Over The Air (OTA) update

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Idle
1 Downloading
2 Verifying
3 Download Failed
4 Verify Failed
5 Ready
6 GoPro App: Downloading
7 GoPro App: Verifying
8 GoPro App: Download Failed
9 GoPro App: Verify Failed
10 GoPro App: Ready
42
integer
Enum: 0 1

Is there a pending request to cancel a firmware update download?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

45
integer
Enum: 0 1

Is locate camera feature active?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

49
integer

The current timelapse interval countdown value (e.g. 5...4...3...2...1...)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

54
integer

Remaining space on the sdcard in Kilobytes

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

55
integer
Enum: 0 1

Is preview stream supported in current recording/mode/secondary-stream?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

56
integer

WiFi signal strength in bars

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

58
integer

The number of hilights in currently-encoding video (value is set to 0 when encoding stops)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

59
integer

Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

60
integer

The minimum time between camera status updates (milliseconds). Best practice is to not poll for status more often than this

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

65
integer
Enum: 0 1 2 3

Liveview Exposure Select Mode

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Disabled
1 Auto
2 ISO Lock
3 Hemisphere
66
integer [ 0 .. 100 ]

Liveview Exposure Select: y-coordinate (percent)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

67
integer [ 0 .. 100 ]

Liveview Exposure Select: y-coordinate (percent)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

68
integer
Enum: 0 1

Does the camera currently have a GPS lock?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

69
integer
Enum: 0 1

Is AP mode enabled?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

70
integer [ 0 .. 100 ]

Internal battery level (percent)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

74
integer
Enum: 0 1 2

Microphone Accessory status

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Accessory not connected
1 Accessory connected
2 Accessory connected and a microphone is plugged into the accessory
75
integer [ 0 .. 100 ]

Digital Zoom level (percent)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

76
integer
Enum: 0 1

Wireless Band

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 2.4 GHz
1 5 GHz
77
integer
Enum: 0 1

Is Digital Zoom feature available?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

78
integer
Enum: 0 1

Are current video settings mobile friendly? (related to video compression and frame rate)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

79
integer
Enum: 0 1

Is the camera currently in First Time Use (FTU) UI flow?

HERO10 Black HERO9 Black

81
integer
Enum: 0 1

Is 5GHz wireless band available?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

82
integer
Enum: 0 1

Is the system fully booted and ready to accept commands?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

83
integer
Enum: 0 1

Is the internal battery charged sufficiently to start Over The Air (OTA) update?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

85
integer
Enum: 0 1

Is the camera getting too cold to continue recording?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

86
integer
Enum: 0 1 2 3

Rotational orientation of the camera

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 0 degrees (upright)
1 180 degrees (upside down)
2 90 degrees (laying on right side)
3 270 degrees (laying on left side)
88
integer
Enum: 0 1

Is this camera model capable of zooming while encoding?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

89
integer

Current Flatmode ID

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

93
integer

Current Video Preset (ID)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

94
integer

Current Photo Preset (ID)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

95
integer

Current Time Lapse Preset (ID)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

96
integer

Current Preset Group (ID) (corresponds to ui_mode_groups in settings.json)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

97
integer

Current Preset (ID)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

98
integer

Preset Modified Status, which contains an event ID and a Preset (Group) ID

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

99
integer

The number of Live Bursts can be captured with current settings before sdcard is full

HERO11 Black HERO10 Black HERO9 Black

100
integer

Total number of Live Bursts on sdcard

HERO11 Black HERO10 Black HERO9 Black

101
integer
Enum: 0 1

Is Capture Delay currently active (i.e. counting down)?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

102
integer
Enum: 0 2 3

Media Mod state

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Media Mod microphone removed
2 Media Mod microphone only
3 Media Mod microphone with external microphone
103
integer
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12

Time Warp Speed

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 15x
1 30x
2 60x
3 150x
4 300x
5 900x
6 1800x
7 2x
8 5x
9 10x
10 Auto
11 1x (realtime)
12 1/2x (slow-motion)
104
integer
Enum: 0 1

Is the system's Linux core active?

HERO10 Black HERO9 Black

105
integer
Enum: 0 1 2

Camera lens type (reflects changes to lens settings such as 162, 189, 194, ...)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Default
1 Max Lens
2 Max Lens 2.0
106
integer
Enum: 0 1

Is Video Hindsight Capture Active?

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

107
integer

Scheduled Capture Preset ID

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

108
integer
Enum: 0 1

Is Scheduled Capture set?

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

110
integer
Enum: 0 1 2 3 4 5 6 7

Display Mod Status (bitmasked)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 000 = Display Mod: 0, HDMI: 0, Display Mod Connected: False
1 001 = Display Mod: 0, HDMI: 0, Display Mod Connected: True
2 010 = Display Mod: 0, HDMI: 1, Display Mod Connected: False
3 011 = Display Mod: 0, HDMI: 1, Display Mod Connected: True
4 100 = Display Mod: 1, HDMI: 0, Display Mod Connected: False
5 101 = Display Mod: 1, HDMI: 0, Display Mod Connected: True
6 110 = Display Mod: 1, HDMI: 1, Display Mod Connected: False
7 111 = Display Mod: 1, HDMI: 1, Display Mod Connected: True
111
integer
Enum: 0 1

Does sdcard meet specified minimum write speed?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

112
integer

Number of sdcard write speed errors since device booted

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

113
integer
Enum: 0 1

Is Turbo Transfer active?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

114
integer
Enum: 0 1 2

Camera control status ID

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

Value Meaning
0 Camera Idle: No one is attempting to change camera settings
1 Camera Control: Camera is in a menu or changing settings. To intervene, app must request control
2 Camera External Control: An outside entity (app) has control and is in a menu or modifying settings
115
integer
Enum: 0 1

Is the camera connected to a PC via USB?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

116
integer
Enum: 0 1

Camera control over USB state

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

Value Meaning
0 Disabled
1 Enabled
117
integer

Total SD card capacity in Kilobytes

HERO12 Black HERO11 Black Mini HERO11 Black

118
integer

Photo interval capture count

HERO12 Black

{
  • "settings": {
    },
  • "status": {
    }
}

VideoMetadata

ct<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2 3 4 5 6 8 9 10 11 12

Media content type

ID Mode
Video 0
Looping 1
Chaptered Video 2
Time Lapse 3
Single Photo 4
Burst Photo 5
Time Lapse Photo 6
Night Lapse Photo 8
Night Photo 9
Continuous Photo 10
Raw Photo 11
Live Burst 12
cre<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1692992748"

Creation time in seconds since epoch

s<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1234567890"

File size in bytes

gumi<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: "12345678998765443211234567899875"

Globally Unique Media ID

h<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1080"

Height of media in pixels

w<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1920"

Width of media in pixels

hc<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer [ 0 .. 99 ]

Number of hilights in media

eis<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if stabilized, 0 otherwise

mp<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if metadata is present, 0 otherwise

rot<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string

Deprecated

tr<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if file is transcoded, 0 otherwise

us<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

Has the file been uploaded? 0 if no, 1 if yes

ao<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Enum: "auto" "wind" "stereo" "off"
Example: "auto"

Audio option

profile<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer [ 0 .. 255 ]

Advanced Video Codec Level

avc_profile<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer [ 0 .. 255 ]
Example: "0"

Advanced Video Code Profile

cl<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if clipped, 0 otherwise

dur<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "42"

Video duration in seconds

fps<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "1001"

Video frame rate numerator

fps_denom<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Example: "30000"

Video frame rate denominator

ls<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer [ -1 .. 1234567890 ]

Low Resolution Video file size in bytes. -1 if there is no LRV file

pta<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if protune audio is present, 0 otherwise

subsample<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1

1 if subsampled from other video, 0 otherwise

fov
string

Field of View

hi
Array of integers
Example: "1500,4700"

List of hilights in ms offset from start of video

lc
integer
Enum: 0 1

Lens configuration ==> 0 for front, 1 for rear

mos
Array of strings
Items Enum: "app" "pc" "other"
Example: "app,pc"

List of offload states

prjn
integer
Enum: 0 1 2 3 4 5 6 7 8

Lens projection

ID Mode
EAC 0
ERP 1
EAC, split horizontally in the middle for 2 output 2
ERP, cropped for panorama 3
Bypass stitch algorithm, side by side circles 4
Stitch is disabled, stitch algorithm is enabled for offline stitch 5
Stitch is disabled 6
Bypass stitch algorithm for EAC split 7
Hemisheric 8
progr
integer
Enum: 0 1

Is video progressive? 1 if progressive, 0 if interlaced

{
  • "ao": "auto",
  • "avc_profile": 0,
  • "cl": 0,
  • "cre": 1692992748,
  • "ct": 0,
  • "dur": 42,
  • "eis": 0,
  • "fov": "string",
  • "fps": 1001,
  • "fps_denom": 30000,
  • "gumi": "12345678998765443211234567899875",
  • "h": 1080,
  • "hc": 99,
  • "hi": [
    ],
  • "lc": 0,
  • "ls": -1,
  • "mos": [
    ],
  • "mp": 0,
  • "prjn": 0,
  • "profile": 255,
  • "progr": 0,
  • "pta": 0,
  • "rot": "string",
  • "s": 1234567890,
  • "subsample": 0,
  • "tr": 0,
  • "us": 0,
  • "w": 1920
}

OTA

The Over The Air (OTA) update feature allows the user to update the camera's firmware via HTTP connection. There are two ways to perform OTA updates: Simple OTA Update and Resumable OTA Update.

Firmware update files can be obtained from GoPro's update page or programmatically using the firmware catalog.

In order to complete the firmware update process, the camera will reboot one or more times. This will cause any existing HTTP connections to be lost.

Simple OTA Update

The simple OTA update process is done by sending an entire update file to the camera in a single HTTP/POST. Details can be found in the diagram below.

simple ota state diagram

Resumable OTA Update

The resumable OTA update process involves uploading chunks (or all) of a file, marking the file complete and then telling the camera to begin the update process. Chunks are stored until they are explicitly deleted, allowing the client to stop and resume as needed. Details can be found in the diagram below.

simple ota state diagram

Resumable OTA Update

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Perform Resumable OTA Update

To send a portion of the OTA image as per the requestBody specification, do not use the request parameter.

query Parameters
request
string
Enum: "delete" "showui" "start" "progress" "cancelled"
Example: request=progress

Optional request parameter to control / query OTA functionality.

Parameter Behavior
delete Delete any old / cached OTA data
showui Display the update OSD on the camera UI
start Start updating firmware with received OTA image
progress Get the current firmware update progress
cancelled show canceled/failed ui on the camera
Request Body schema: multipart/form-data

OTA image chunk used when executed with no request parameter

file
string <binary>

Binary file

offset
integer

Offset (in bytes) into the file data to start reading from

sha1
string

SHA of the complete firmware upload zip file

Responses

Response Schema: application/json
bytes_complete
integer
complete
boolean
message
string
sha1
string
status
integer (OtaStatus)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12

OTA Status

ID Status Description
0 OK No errors occurred
1 Unknown Request Server did not recognize the request
2 Bad Params Parameter values not recognized
3 SHA1 Send Mismatch SHA1 for chunk did not match SHA1 of previous chunk(s)
4 SHA1 Calculated Mismatch Calculated SHA1 did not match user-specified SHA1
5 HTTP Boundary Error HTTP Post was malformed
6 HTTP Post Error Unexpected HTTP / Post Content Type
7 Server Busy HTTP server is busy
8 Offset Mismatch Attempt to upload chunk with offset that did not align with previous chunk
9 Bad Post Data Server failed to parse POST data
10 File Incomplete Tried to start update before server finished validating .zip file
11 Update in progress Firmware update is in progress
12 Insufficient Space Insufficient space on the sdcard to hold decompressed update file

Request samples

curl --request POST \
  --url 'http://10.5.5.9:8080/gp/gpSoftUpdate?request=progress' \
  --header 'content-type: multipart/form-data'

Response samples

Content type
application/json
{
  • "bytes_complete": 0,
  • "complete": true,
  • "message": "string",
  • "sha1": "string",
  • "status": 0
}

Simple OTA Update

HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Request Body schema: multipart/form-data
DirectToSD
integer

Always set to 1

file
string <binary>

Binary file

sha1
string

SHA of the complete firmware upload zip file

update
integer

Always set to 1

Responses

Response Schema: application/json
status
integer (OtaStatus)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12

OTA Status

ID Status Description
0 OK No errors occurred
1 Unknown Request Server did not recognize the request
2 Bad Params Parameter values not recognized
3 SHA1 Send Mismatch SHA1 for chunk did not match SHA1 of previous chunk(s)
4 SHA1 Calculated Mismatch Calculated SHA1 did not match user-specified SHA1
5 HTTP Boundary Error HTTP Post was malformed
6 HTTP Post Error Unexpected HTTP / Post Content Type
7 Server Busy HTTP server is busy
8 Offset Mismatch Attempt to upload chunk with offset that did not align with previous chunk
9 Bad Post Data Server failed to parse POST data
10 File Incomplete Tried to start update before server finished validating .zip file
11 Update in progress Firmware update is in progress
12 Insufficient Space Insufficient space on the sdcard to hold decompressed update file

Request samples

curl --request POST \
  --url http://10.5.5.9:8080/gp/gpUpdate \
  --header 'content-type: multipart/form-data'

Response samples

Content type
application/json
{
  • "status": 0
}

Presets

Presets

The camera organizes many modes of operation into Presets.

Note: The Preset ID is required to load a Preset via Load Preset.

Depending on the camera's state, different collections of presets will be available for immediate loading and use. Below is a table of settings that affect the current preset collection and thereby which presets can be loaded:

ID Setting
162 Max Lens
173 Video Performance Mode
175 Controls
177 Enable Night Photo
180 Video Mode
186 Video Mode
187 Lapse Mode
189 Max Lens Mod
190 Max Lens Mod Enable
191 Photo Mode

Preset Groups

Presets are organized into Preset Groups.

To find the currently available Presets / Preset Groups, use Get Preset Status.

Get Available Presets

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Get the currently available Preset Groups and Presets, the set of which depends on the current camera settings.

Responses

Response Schema: application/json
Array of objects

A list of ranges of icon ID's available for custom presets.

Array
length
integer
Example: "10"

number of items in the range

start
integer
Example: "0"

start index of range

Array of objects

A list of ranges of title ID's available for custom presets.

Array
length
integer
Example: "25"

number of items in the range

start
integer
Example: "18"

start index of range

Array of objects (PresetGroup)

Array of Preset Groups

Array
canAddPreset
boolean

Is there room in the group to add additional Presets?

icon
integer (EnumPresetGroupIcon)
Enum: 0 1 2 3 4 5 6 7
ID Name Summary
0 PRESET_GROUP_VIDEO_ICON_ID
1 PRESET_GROUP_PHOTO_ICON_ID
2 PRESET_GROUP_TIMELAPSE_ICON_ID
3 PRESET_GROUP_LONG_BAT_VIDEO_ICON_ID
4 PRESET_GROUP_ENDURANCE_VIDEO_ICON_ID
5 PRESET_GROUP_MAX_VIDEO_ICON_ID
6 PRESET_GROUP_MAX_PHOTO_ICON_ID
7 PRESET_GROUP_MAX_TIMELAPSE_ICON_ID
id
integer (EnumPresetGroup)
Enum: 1000 1001 1002
ID Name Summary
1000 PRESET_GROUP_ID_VIDEO
1001 PRESET_GROUP_ID_PHOTO
1002 PRESET_GROUP_ID_TIMELAPSE
Array of objects (Preset)

Array of Presets contained in this Preset Group

Array
icon
integer (EnumPresetIcon)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 1000 1001
ID Name Summary
0 PRESET_ICON_VIDEO
1 PRESET_ICON_ACTIVITY
2 PRESET_ICON_CINEMATIC
3 PRESET_ICON_PHOTO
4 PRESET_ICON_LIVE_BURST
5 PRESET_ICON_BURST
6 PRESET_ICON_PHOTO_NIGHT
7 PRESET_ICON_TIMEWARP
8 PRESET_ICON_TIMELAPSE
9 PRESET_ICON_NIGHTLAPSE
10 PRESET_ICON_SNAIL
11 PRESET_ICON_VIDEO_2
13 PRESET_ICON_PHOTO_2
14 PRESET_ICON_PANORAMA
15 PRESET_ICON_BURST_2
16 PRESET_ICON_TIMEWARP_2
17 PRESET_ICON_TIMELAPSE_2
18 PRESET_ICON_CUSTOM
19 PRESET_ICON_AIR
20 PRESET_ICON_BIKE
21 PRESET_ICON_EPIC
22 PRESET_ICON_INDOOR
23 PRESET_ICON_MOTOR
24 PRESET_ICON_MOUNTED
25 PRESET_ICON_OUTDOOR
26 PRESET_ICON_POV
27 PRESET_ICON_SELFIE
28 PRESET_ICON_SKATE
29 PRESET_ICON_SNOW
30 PRESET_ICON_TRAIL
31 PRESET_ICON_TRAVEL
32 PRESET_ICON_WATER
33 PRESET_ICON_LOOPING
34 PRESET_ICON_STARS
35 PRESET_ICON_ACTION
36 PRESET_ICON_FOLLOW_CAM
37 PRESET_ICON_SURF
38 PRESET_ICON_CITY
39 PRESET_ICON_SHAKY
40 PRESET_ICON_CHESTY
41 PRESET_ICON_HELMET
42 PRESET_ICON_BITE
58 PRESET_ICON_BASIC
59 PRESET_ICON_ULTRA_SLO_MO
60 PRESET_ICON_STANDARD_ENDURANCE
61 PRESET_ICON_ACTIVITY_ENDURANCE
62 PRESET_ICON_CINEMATIC_ENDURANCE
63 PRESET_ICON_SLOMO_ENDURANCE
64 PRESET_ICON_STATIONARY_1
65 PRESET_ICON_STATIONARY_2
66 PRESET_ICON_STATIONARY_3
67 PRESET_ICON_STATIONARY_4
70 PRESET_ICON_SIMPLE_SUPER_PHOTO
71 PRESET_ICON_SIMPLE_NIGHT_PHOTO
73 PRESET_ICON_HIGHEST_QUALITY_VIDEO
74 PRESET_ICON_STANDARD_QUALITY_VIDEO
75 PRESET_ICON_BASIC_QUALITY_VIDEO
76 PRESET_ICON_STAR_TRAIL
77 PRESET_ICON_LIGHT_PAINTING
78 PRESET_ICON_LIGHT_TRAIL
79 PRESET_ICON_FULL_FRAME
1000 PRESET_ICON_TIMELAPSE_PHOTO
1001 PRESET_ICON_NIGHTLAPSE_PHOTO
id
integer <int32>

Unique preset identifier

isFixed
boolean

Is this preset mutable?

isModified
boolean

Has the preset been modified from the factory defaults?

mode
integer (EnumFlatMode)
Enum: -1 4 5 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
ID Name Summary
-1 FLAT_MODE_UNKNOWN
4 FLAT_MODE_PLAYBACK
5 FLAT_MODE_SETUP
12 FLAT_MODE_VIDEO
13 FLAT_MODE_TIME_LAPSE_VIDEO
15 FLAT_MODE_LOOPING
16 FLAT_MODE_PHOTO_SINGLE
17 FLAT_MODE_PHOTO
18 FLAT_MODE_PHOTO_NIGHT
19 FLAT_MODE_PHOTO_BURST
20 FLAT_MODE_TIME_LAPSE_PHOTO
21 FLAT_MODE_NIGHT_LAPSE_PHOTO
22 FLAT_MODE_BROADCAST_RECORD
23 FLAT_MODE_BROADCAST_BROADCAST
24 FLAT_MODE_TIME_WARP_VIDEO
25 FLAT_MODE_LIVE_BURST
26 FLAT_MODE_NIGHT_LAPSE_VIDEO
27 FLAT_MODE_SLOMO
28 FLAT_MODE_IDLE
29 FLAT_MODE_VIDEO_STAR_TRAIL
30 FLAT_MODE_VIDEO_LIGHT_PAINTING
31 FLAT_MODE_VIDEO_LIGHT_TRAIL
32 FLAT_MODE_VIDEO_BURST_SLOMO
Array of objects (PresetSetting)
Array
id
integer <int32>

Setting identifier

isCaption
boolean

Does this setting appear on the Preset "pill" in the camera UI?

value
integer <int32>

Setting value

titleId
integer (EnumPresetTitle)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 82 83 93 94
ID Name Summary
0 PRESET_TITLE_ACTIVITY
1 PRESET_TITLE_STANDARD
2 PRESET_TITLE_CINEMATIC
3 PRESET_TITLE_PHOTO
4 PRESET_TITLE_LIVE_BURST
5 PRESET_TITLE_BURST
6 PRESET_TITLE_NIGHT
7 PRESET_TITLE_TIME_WARP
8 PRESET_TITLE_TIME_LAPSE
9 PRESET_TITLE_NIGHT_LAPSE
10 PRESET_TITLE_VIDEO
11 PRESET_TITLE_SLOMO
13 PRESET_TITLE_PHOTO_2
14 PRESET_TITLE_PANORAMA
16 PRESET_TITLE_TIME_WARP_2
18 PRESET_TITLE_CUSTOM
19 PRESET_TITLE_AIR
20 PRESET_TITLE_BIKE
21 PRESET_TITLE_EPIC
22 PRESET_TITLE_INDOOR
23 PRESET_TITLE_MOTOR
24 PRESET_TITLE_MOUNTED
25 PRESET_TITLE_OUTDOOR
26 PRESET_TITLE_POV
27 PRESET_TITLE_SELFIE
28 PRESET_TITLE_SKATE
29 PRESET_TITLE_SNOW
30 PRESET_TITLE_TRAIL
31 PRESET_TITLE_TRAVEL
32 PRESET_TITLE_WATER
33 PRESET_TITLE_LOOPING
34 PRESET_TITLE_STARS
35 PRESET_TITLE_ACTION
36 PRESET_TITLE_FOLLOW_CAM
37 PRESET_TITLE_SURF
38 PRESET_TITLE_CITY
39 PRESET_TITLE_SHAKY
40 PRESET_TITLE_CHESTY
41 PRESET_TITLE_HELMET
42 PRESET_TITLE_BITE
58 PRESET_TITLE_BASIC
59 PRESET_TITLE_ULTRA_SLO_MO
60 PRESET_TITLE_STANDARD_ENDURANCE
61 PRESET_TITLE_ACTIVITY_ENDURANCE
62 PRESET_TITLE_CINEMATIC_ENDURANCE
63 PRESET_TITLE_SLOMO_ENDURANCE
64 PRESET_TITLE_STATIONARY_1
65 PRESET_TITLE_STATIONARY_2
66 PRESET_TITLE_STATIONARY_3
67 PRESET_TITLE_STATIONARY_4
68 PRESET_TITLE_SIMPLE_VIDEO
69 PRESET_TITLE_SIMPLE_TIME_WARP
70 PRESET_TITLE_SIMPLE_SUPER_PHOTO
71 PRESET_TITLE_SIMPLE_NIGHT_PHOTO
72 PRESET_TITLE_SIMPLE_VIDEO_ENDURANCE
73 PRESET_TITLE_HIGHEST_QUALITY
74 PRESET_TITLE_EXTENDED_BATTERY
75 PRESET_TITLE_LONGEST_BATTERY
76 PRESET_TITLE_STAR_TRAIL
77 PRESET_TITLE_LIGHT_PAINTING
78 PRESET_TITLE_LIGHT_TRAIL
79 PRESET_TITLE_FULL_FRAME
82 PRESET_TITLE_STANDARD_QUALITY_VIDEO
83 PRESET_TITLE_BASIC_QUALITY_VIDEO
93 PRESET_TITLE_HIGHEST_QUALITY_VIDEO
94 PRESET_TITLE_USER_DEFINED_CUSTOM_NAME
titleNumber
integer <int32>

Preset title number

userDefined
boolean

Is this preset user defined?

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/camera/presets/get

Response samples

Content type
application/json
{
  • "customIconIds": [
    ],
  • "customTitleIds": [
    ],
  • "presetGroupArray": [
    ]
}

Load Preset by ID

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Preset ID's are not constant and must be retrieved via Get Preset Status

query Parameters
id<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer

Preset to load

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/presets/load?id=0'

Response samples

Content type
application/json
{ }

Load Preset Group by ID

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

query Parameters
id<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 1000 1001 1002
Example: id=1000
ID Name Summary
1000 PRESET_GROUP_ID_VIDEO
1001 PRESET_GROUP_ID_PHOTO
1002 PRESET_GROUP_ID_TIMELAPSE

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/presets/set_group?id=1000'

Response samples

Content type
application/json
{ }

Update Custom Preset

HERO12 Black

Supported Protocols:

  • USB
  • WIFI

This only operates on the currently active Preset and will fail if the current Preset is not custom.

The use cases are:

  1. Update the Custom Preset Icon

    • icon_id is always optional and can always be passed

and / or

  1. Update the Custom Preset Title to a...

    • Factory Preset Title: Set title_id to a non-PRESET_TITLE_USER_DEFINED_CUSTOM_NAME (94) value
    • Custom Preset Name: Set title_id to PRESET_TITLE_USER_DEFINED_CUSTOM_NAME (94) and specify a custom_name

Note! The range of acceptable custom title_id's and icon_id's can be found in the Get Preset Status response

Request Body schema: application/json
required
custom_name string UTF-8 encoded target custom preset name which obeys the following must be between 1 and 16 characters (inclusive) No special characters outside of the following languages: English, French, Italian, German, Spanish, Portuguese, Swedish, Russian
icon_id
integer (EnumPresetIcon)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 78 79 1000 1001
ID Name Summary
0 PRESET_ICON_VIDEO
1 PRESET_ICON_ACTIVITY
2 PRESET_ICON_CINEMATIC
3 PRESET_ICON_PHOTO
4 PRESET_ICON_LIVE_BURST
5 PRESET_ICON_BURST
6 PRESET_ICON_PHOTO_NIGHT
7 PRESET_ICON_TIMEWARP
8 PRESET_ICON_TIMELAPSE
9 PRESET_ICON_NIGHTLAPSE
10 PRESET_ICON_SNAIL
11 PRESET_ICON_VIDEO_2
13 PRESET_ICON_PHOTO_2
14 PRESET_ICON_PANORAMA
15 PRESET_ICON_BURST_2
16 PRESET_ICON_TIMEWARP_2
17 PRESET_ICON_TIMELAPSE_2
18 PRESET_ICON_CUSTOM
19 PRESET_ICON_AIR
20 PRESET_ICON_BIKE
21 PRESET_ICON_EPIC
22 PRESET_ICON_INDOOR
23 PRESET_ICON_MOTOR
24 PRESET_ICON_MOUNTED
25 PRESET_ICON_OUTDOOR
26 PRESET_ICON_POV
27 PRESET_ICON_SELFIE
28 PRESET_ICON_SKATE
29 PRESET_ICON_SNOW
30 PRESET_ICON_TRAIL
31 PRESET_ICON_TRAVEL
32 PRESET_ICON_WATER
33 PRESET_ICON_LOOPING
34 PRESET_ICON_STARS
35 PRESET_ICON_ACTION
36 PRESET_ICON_FOLLOW_CAM
37 PRESET_ICON_SURF
38 PRESET_ICON_CITY
39 PRESET_ICON_SHAKY
40 PRESET_ICON_CHESTY
41 PRESET_ICON_HELMET
42 PRESET_ICON_BITE
58 PRESET_ICON_BASIC
59 PRESET_ICON_ULTRA_SLO_MO
60 PRESET_ICON_STANDARD_ENDURANCE
61 PRESET_ICON_ACTIVITY_ENDURANCE
62 PRESET_ICON_CINEMATIC_ENDURANCE
63 PRESET_ICON_SLOMO_ENDURANCE
64 PRESET_ICON_STATIONARY_1
65 PRESET_ICON_STATIONARY_2
66 PRESET_ICON_STATIONARY_3
67 PRESET_ICON_STATIONARY_4
70 PRESET_ICON_SIMPLE_SUPER_PHOTO
71 PRESET_ICON_SIMPLE_NIGHT_PHOTO
73 PRESET_ICON_HIGHEST_QUALITY_VIDEO
74 PRESET_ICON_STANDARD_QUALITY_VIDEO
75 PRESET_ICON_BASIC_QUALITY_VIDEO
76 PRESET_ICON_STAR_TRAIL
77 PRESET_ICON_LIGHT_PAINTING
78 PRESET_ICON_LIGHT_TRAIL
79 PRESET_ICON_FULL_FRAME
1000 PRESET_ICON_TIMELAPSE_PHOTO
1001 PRESET_ICON_NIGHTLAPSE_PHOTO
title_id
integer (EnumPresetTitle)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 82 83 93 94
ID Name Summary
0 PRESET_TITLE_ACTIVITY
1 PRESET_TITLE_STANDARD
2 PRESET_TITLE_CINEMATIC
3 PRESET_TITLE_PHOTO
4 PRESET_TITLE_LIVE_BURST
5 PRESET_TITLE_BURST
6 PRESET_TITLE_NIGHT
7 PRESET_TITLE_TIME_WARP
8 PRESET_TITLE_TIME_LAPSE
9 PRESET_TITLE_NIGHT_LAPSE
10 PRESET_TITLE_VIDEO
11 PRESET_TITLE_SLOMO
13 PRESET_TITLE_PHOTO_2
14 PRESET_TITLE_PANORAMA
16 PRESET_TITLE_TIME_WARP_2
18 PRESET_TITLE_CUSTOM
19 PRESET_TITLE_AIR
20 PRESET_TITLE_BIKE
21 PRESET_TITLE_EPIC
22 PRESET_TITLE_INDOOR
23 PRESET_TITLE_MOTOR
24 PRESET_TITLE_MOUNTED
25 PRESET_TITLE_OUTDOOR
26 PRESET_TITLE_POV
27 PRESET_TITLE_SELFIE
28 PRESET_TITLE_SKATE
29 PRESET_TITLE_SNOW
30 PRESET_TITLE_TRAIL
31 PRESET_TITLE_TRAVEL
32 PRESET_TITLE_WATER
33 PRESET_TITLE_LOOPING
34 PRESET_TITLE_STARS
35 PRESET_TITLE_ACTION
36 PRESET_TITLE_FOLLOW_CAM
37 PRESET_TITLE_SURF
38 PRESET_TITLE_CITY
39 PRESET_TITLE_SHAKY
40 PRESET_TITLE_CHESTY
41 PRESET_TITLE_HELMET
42 PRESET_TITLE_BITE
58 PRESET_TITLE_BASIC
59 PRESET_TITLE_ULTRA_SLO_MO
60 PRESET_TITLE_STANDARD_ENDURANCE
61 PRESET_TITLE_ACTIVITY_ENDURANCE
62 PRESET_TITLE_CINEMATIC_ENDURANCE
63 PRESET_TITLE_SLOMO_ENDURANCE
64 PRESET_TITLE_STATIONARY_1
65 PRESET_TITLE_STATIONARY_2
66 PRESET_TITLE_STATIONARY_3
67 PRESET_TITLE_STATIONARY_4
68 PRESET_TITLE_SIMPLE_VIDEO
69 PRESET_TITLE_SIMPLE_TIME_WARP
70 PRESET_TITLE_SIMPLE_SUPER_PHOTO
71 PRESET_TITLE_SIMPLE_NIGHT_PHOTO
72 PRESET_TITLE_SIMPLE_VIDEO_ENDURANCE
73 PRESET_TITLE_HIGHEST_QUALITY
74 PRESET_TITLE_EXTENDED_BATTERY
75 PRESET_TITLE_LONGEST_BATTERY
76 PRESET_TITLE_STAR_TRAIL
77 PRESET_TITLE_LIGHT_PAINTING
78 PRESET_TITLE_LIGHT_TRAIL
79 PRESET_TITLE_FULL_FRAME
82 PRESET_TITLE_STANDARD_QUALITY_VIDEO
83 PRESET_TITLE_BASIC_QUALITY_VIDEO
93 PRESET_TITLE_HIGHEST_QUALITY_VIDEO
94 PRESET_TITLE_USER_DEFINED_CUSTOM_NAME

Responses

Response Schema: application/json
object

Request samples

Content type
application/json
{
  • "custom_name": "string",
  • "icon_id": 0,
  • "title_id": 0
}

Response samples

Content type
application/json
{ }

Preview Stream

When the preview stream is started, the camera starts up a UDP client and begins writing MPEG Transport Stream data to the client on port 8554. In order to stream this data, the client must implement a UDP connection that binds to the same port and decode the data.

Start Preview Stream

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

query Parameters
port integer Example: port=8556Port to use for Preview Stream. Not supported on Hero 11 Black Mini Hero 11 Black Hero 10 Black Hero 9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/stream/start?port=8556'

Response samples

Content type
application/json
{ }

Stop Preview Stream

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/camera/stream/stop

Response samples

Content type
application/json
{ }

Query

Get information about the camera

Get Camera State

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Get all camera settings and statuses.

Responses

Response Schema: application/json
object

All currently known setting values indexed by setting ID

2
integer
Enum: 1 4 6 7 9 18 24 25 26 27 28 100 107 108 109 110 111

Resolution

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
1 4K HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 2.7K HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
6 2.7K 4:3 HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
7 1440 HERO9 Black
9 1080 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
18 4K 4:3 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
24 5K HERO9 Black
25 5K 4:3 HERO10 Black
26 5.3K 8:7 HERO11 Black MiniHERO11 Black
27 5.3K 4:3 HERO11 Black MiniHERO11 Black
28 4K 8:7 HERO11 Black MiniHERO11 Black
100 5.3K HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 Black
107 5.3K HERO12 Black
108 4K HERO12 Black
109 4K HERO12 Black
110 1080 HERO12 Black
111 2.7K HERO12 Black
3
integer
Enum: 0 1 2 5 6 8 9 10 13

Frames Per Second

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 240 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
1 120 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
2 100 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
5 60 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
6 50 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
8 30 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
9 25 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
10 24 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
13 200 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
43
integer
Enum: 0 2 3 4

Webcam Digital Lenses

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Wide HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
2 Narrow HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
3 Superview HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 Linear HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
59
integer
Enum: 0 1 4 6 7 11 12

Auto Power Down

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Never HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
1 1 Min HERO12 BlackHERO11 Black MiniHERO11 Black
4 5 Min HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
6 15 Min HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
7 30 Min HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
11 8 Seconds HERO11 Black Mini
12 30 Seconds HERO11 Black Mini
83
integer
Enum: 0 1

GPS

HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Off HERO11 BlackHERO10 BlackHERO9 Black
1 On HERO11 BlackHERO10 BlackHERO9 Black
108
integer
Enum: 0 1 3 4

Aspect Ratio

HERO12 Black

Value Meaning Supported Cameras
0 4:3 HERO12 Black
1 16:9 HERO12 Black
3 8:7 HERO12 Black
4 9:16 HERO12 Black
121
integer
Enum: 0 2 3 4 7 8 9 10 11

Lens

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Wide HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
2 Narrow HERO10 BlackHERO9 Black
3 Superview HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 Linear HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
7 Max SuperView HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
8 Linear + Horizon Leveling HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
9 HyperView HERO12 BlackHERO11 Black MiniHERO11 Black
10 Linear + Horizon Lock HERO12 BlackHERO11 Black MiniHERO11 Black
11 Max HyperView HERO12 Black
122
integer
Enum: 19 100 101 102

Lens

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
19 Narrow HERO10 BlackHERO9 Black
100 Max SuperView HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
101 Wide HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
102 Linear HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
123
integer
Enum: 19 100 101 102

Time Lapse Digital Lenses

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
19 Narrow HERO10 BlackHERO9 Black
100 Max SuperView HERO10 Black
101 Wide HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
102 Linear HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
128
integer
Enum: 13 20 21 26

Media Format

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
13 Time Lapse Video HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
20 Time Lapse Photo HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
21 Night Lapse Photo HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
26 Night Lapse Video HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
134
integer
Enum: 2 3

Anti-Flicker

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
2 60Hz HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
3 50Hz HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
135
integer
Enum: 0 1 2 3 4 100

Hypersmooth

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Off HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
1 Low HERO12 BlackHERO11 Black MiniHERO11 BlackHERO9 Black
2 High HERO10 BlackHERO9 Black
3 Boost HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 Auto Boost HERO12 BlackHERO11 Black MiniHERO11 Black
100 Standard HERO10 Black
150
integer
Enum: 0 2

Horizon Leveling

HERO11 Black

Value Meaning Supported Cameras
0 Off HERO11 Black
2 Locked HERO11 Black
151
integer
Enum: 0 2

Horizon Leveling

HERO11 Black

Value Meaning Supported Cameras
0 Off HERO11 Black
2 Locked HERO11 Black
162
integer
Enum: 0 1

Max Lens

HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
0 Off HERO11 BlackHERO10 BlackHERO9 Black
1 On HERO11 BlackHERO10 BlackHERO9 Black
167
integer
Enum: 2 3 4

HindSight

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning Supported Cameras
2 15 Seconds HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
3 30 Seconds HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
4 Off HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
171
integer
Enum: 0 2 3 4 5 6 7 8 9 10

Interval

HERO12 Black

Value Meaning Supported Cameras
0 Off HERO12 Black
2 0.5s HERO12 Black
3 1s HERO12 Black
4 2s HERO12 Black
5 5s HERO12 Black
6 10s HERO12 Black
7 30s HERO12 Black
8 60s HERO12 Black
9 120s HERO12 Black
10 3s HERO12 Black
172
integer
Enum: 0 1 2 3 4 5 6 7 8 9

Duration

HERO12 Black

Value Meaning Supported Cameras
0 Off HERO12 Black
1 15 Seconds HERO12 Black
2 30 Seconds HERO12 Black
3 1 Minute HERO12 Black
4 5 Minutes HERO12 Black
5 15 Minutes HERO12 Black
6 30 Minutes HERO12 Black
7 1 Hour HERO12 Black
8 2 Hours HERO12 Black
9 3 Hours HERO12 Black
173
integer
Enum: 0 1 2

Video Performance Mode

HERO10 Black

Value Meaning Supported Cameras
0 Maximum Video Performance HERO10 Black
1 Extended Battery HERO10 Black
2 Tripod / Stationary Video HERO10 Black
175
integer
Enum: 0 1

Controls

HERO12 Black HERO11 Black

Value Meaning Supported Cameras
0 Easy HERO12 BlackHERO11 Black
1 Pro HERO12 BlackHERO11 Black
176
integer
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137

Easy Mode Speed

HERO12 Black HERO11 Black

Value Meaning Supported Cameras
0 8X Ultra Slo-Mo HERO11 Black
1 4X Super Slo-Mo HERO11 Black
2 2X Slo-Mo HERO11 Black
3 1X Speed (Low Light) HERO11 Black
4 4X Super Slo-Mo (Ext. Batt.) HERO11 Black
5 2X Slo-Mo (Ext. Batt.) HERO11 Black
6 1X Speed (Ext. Batt.) (Low Light) HERO11 Black
7 8X Ultra Slo-Mo (50Hz) HERO11 Black
8 4X Super Slo-Mo (50Hz) HERO11 Black
9 2X Slo-Mo (50Hz) HERO11 Black
10 1X Speed (50Hz) (Low Light) HERO11 Black
11 4X Super Slo-Mo (50Hz) (Ext. Batt.) HERO11 Black
12 2X Slo-Mo (50Hz) (Ext. Batt.) HERO11 Black
13 1X Speed (50Hz) (Ext. Batt.) (Low Light) HERO11 Black
14 8X Ultra Slo-Mo (Ext. Batt.) HERO11 Black
15 8X Ultra Slo-Mo (50Hz) (Ext. Batt.) HERO11 Black
16 8X Ultra Slo-Mo (Long. Batt.) HERO11 Black
17 4X Super Slo-Mo (Long. Batt.) HERO11 Black
18 2X Slo-Mo (Long. Batt.) HERO11 Black
19 1X Speed (Long. Batt.) (Low Light) HERO11 Black
20 8X Ultra Slo-Mo (50Hz) (Long. Batt.) HERO11 Black
21 4X Super Slo-Mo (50Hz) (Long. Batt.) HERO11 Black
22 2X Slo-Mo (50Hz) (Long. Batt.) HERO11 Black
23 1X Speed (50Hz) (Long. Batt.) (Low Light) HERO11 Black
24 2X Slo-Mo (4K) HERO11 Black
25 4X Super Slo-Mo (2.7K) HERO11 Black
26 2X Slo-Mo (4K) (50Hz) HERO11 Black
27 4X Super Slo-Mo (2.7K) (50Hz) HERO11 Black
100 8X Ultra Slo-Mo (V2) HERO12 Black
101 4X Super Slo-Mo (V2) HERO12 Black
102 2X Slo-Mo (V2) HERO12 Black
103 1X Speed (Low Light) (V2) HERO12 Black
104 8X Ultra Slo-Mo (50Hz) (V2) HERO12 Black
105 4X Super Slo-Mo (50Hz) (V2) HERO12 Black
106 2X Slo-Mo (50Hz) (V2) HERO12 Black
107 1X Speed (50Hz) (Low Light) (V2) HERO12 Black
108 8X Ultra Slo-Mo (Long. Batt.) (V2) HERO12 Black
109 4X Super Slo-Mo (Long. Batt.) (V2) HERO12 Black
110 2X Slo-Mo (Long. Batt.) (V2) HERO12 Black
111 1X Speed (Long. Batt.) (Low Light) (V2) HERO12 Black
112 8X Ultra Slo-Mo (50Hz) (Long. Batt.) (V2) HERO12 Black
113 4X Super Slo-Mo (50Hz) (Long. Batt.) (V2) HERO12 Black
114 2X Slo-Mo (50Hz) (Long. Batt.) (V2) HERO12 Black
115 1X Speed (50Hz) (Long. Batt.) (Low Light) (V2) HERO12 Black
116 2X Slo-Mo (4K) (V2) HERO12 Black
117 2X Slo-Mo (4K) (50Hz) (V2) HERO12 Black
118 1X Speed (Low Light) (V2) (Vertical) HERO12 Black
119 1X Speed (50Hz) (Low Light) (V2) (Vertical) HERO12 Black
120 2X Slo-Mo (V2) (Vertical) HERO12 Black
121 2X Slo-Mo (50Hz) (V2) (Vertical) HERO12 Black
122 1X Speed (Full Frame) (Low Light) (V2) HERO12 Black
123 1X Speed (50Hz) (Full Frame) (Low Light) (V2) HERO12 Black
124 2X Slo-Mo (Full Frame) (V2) HERO12 Black
125 2X Slo-Mo (50Hz) (Full Frame) (V2) HERO12 Black
126 1X Speed (4K) (Low Light) (V2) HERO12 Black
127 1X Speed (4K) (50Hz) (Low Light) (V2) HERO12 Black
128 1X Speed (2.7K) (Low Light) (V2) HERO12 Black
129 1X Speed (2.7K) (50Hz) (Low Light) (V2) HERO12 Black
130 2X Slo-Mo (2.7K) (V2) HERO12 Black
131 2X Slo-Mo (2.7K) (50Hz) (V2) HERO12 Black
132 2X Slo-Mo (Long. Batt.) (V2) (Vertical) HERO12 Black
133 2X Slo-Mo (50Hz) (Long. Batt.) (V2) (Vertical) HERO12 Black
134 1X Speed (Long. Batt.) (Low Light) (V2) (Vertical) HERO12 Black
135 1X Speed (50Hz) (Long. Batt.) (Low Light) (V2) (Vertical) HERO12 Black
136 1X Speed (4K) (Full Frame) (Low Light) (V2) HERO12 Black
137 1X Speed (4K) (50Hz) (Full Frame) (Low Light) (V2) HERO12 Black
177
integer
Enum: 0 1

Enable Night Photo

HERO11 Black

Value Meaning Supported Cameras
0 Off HERO11 Black
1 On HERO11 Black
178
integer
Enum: 0 1

Wireless Band

HERO12 Black HERO11 Black Mini HERO11 Black

Value Meaning Supported Cameras
0 2.4GHz HERO12 BlackHERO11 Black MiniHERO11 Black
1 5GHz HERO12 BlackHERO11 Black MiniHERO11 Black
179
integer
Enum: 1 2 3

Trail Length

HERO12 Black HERO11 Black Mini HERO11 Black

Value Meaning Supported Cameras
1 Short HERO12 BlackHERO11 Black MiniHERO11 Black
2 Long HERO12 BlackHERO11 Black MiniHERO11 Black
3 Max HERO12 BlackHERO11 Black MiniHERO11 Black
180
integer
Enum: 0 101 102

Video Mode

HERO11 Black

Value Meaning Supported Cameras
0 Highest Quality HERO11 Black
101 Extended Battery (Green Icon) HERO11 Black
102 Longest Battery (Green Icon) HERO11 Black
182
integer
Enum: 0 1

Bit Rate

HERO12 Black

Value Meaning Supported Cameras
0 Standard HERO12 Black
1 High HERO12 Black
183
integer
Enum: 0 2

Bit Depth

HERO12 Black

Value Meaning Supported Cameras
0 8-Bit HERO12 Black
2 10-Bit HERO12 Black
184
integer
Enum: 0 1 2

Profiles

HERO12 Black

Value Meaning Supported Cameras
0 Standard HERO12 Black
1 HDR HERO12 Black
2 Log HERO12 Black
186
integer
Enum: 0 1 2

Video Mode

HERO12 Black

Value Meaning Supported Cameras
0 Highest Quality HERO12 Black
1 Standard Quality HERO12 Black
2 Basic Quality HERO12 Black
187
integer
Enum: 0 1 2 3 4 5 6 7

Lapse Mode

HERO12 Black

Value Meaning Supported Cameras
0 TimeWarp HERO12 Black
1 Star Trails HERO12 Black
2 Light Painting HERO12 Black
3 Vehicle Lights HERO12 Black
4 Max TimeWarp HERO12 Black
5 Max Star Trails HERO12 Black
6 Max Light Painting HERO12 Black
7 Max Vehicle Lights HERO12 Black
189
integer
Enum: 0 1 2

Max Lens Mod

HERO12 Black

Value Meaning Supported Cameras
0 None HERO12 Black
1 Max Lens 1.0 HERO12 Black
2 Max Lens 2.0 HERO12 Black
190
integer
Enum: 0 1

Max Lens Mod Enable

HERO12 Black

Value Meaning Supported Cameras
0 Off HERO12 Black
1 On HERO12 Black
191
integer
Enum: 0 1

Photo Mode

HERO12 Black

Value Meaning Supported Cameras
0 Super Photo HERO12 Black
1 Night Photo HERO12 Black
192
integer
Enum: 0 1 3

Aspect Ratio

HERO12 Black

Value Meaning Supported Cameras
0 4:3 HERO12 Black
1 16:9 HERO12 Black
3 8:7 HERO12 Black
193
integer
Enum: 0 1 2

Framing

HERO12 Black

Value Meaning Supported Cameras
0 Widescreen HERO12 Black
1 Vertical HERO12 Black
2 Full Frame HERO12 Black
object

All currently known status values indexed by status ID

1
integer
Enum: 0 1

Is the system's internal battery present?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

2
integer
Enum: 0 1 2 3 4

Rough approximation of internal battery level in bars (or charging)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Zero
1 One
2 Two
3 Three
4 Charging
6
integer
Enum: 0 1

Is the system currently overheating?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

8
integer
Enum: 0 1

Is the camera busy?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

9
integer
Enum: 0 1

Is Quick Capture feature enabled?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

10
integer
Enum: 0 1

Is the system currently encoding?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

11
integer
Enum: 0 1

Is LCD lock active?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

13
integer

When encoding video, this is the duration (seconds) of the video so far; 0 otherwise

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

17
integer
Enum: 0 1

Are Wireless Connections enabled?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

19
integer
Enum: 0 1 2 3 4

The pairing state of the camera

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Never Started
1 Started
2 Aborted
3 Cancelled
4 Completed
20
integer
Enum: 0 1 2 3

The last type of pairing in which the camera was engaged

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Not Pairing
1 Pairing App
2 Pairing Remote Control
3 Pairing Bluetooth Device
21
integer

Time since boot (milliseconds) of last successful pairing complete action

HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

22
integer
Enum: 0 1 2 3 4

State of current scan for WiFi Access Points

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Never started
1 Started
2 Aborted
3 Canceled
4 Completed
23
integer

Time since boot (milliseconds) that the WiFi Access Point scan completed

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

24
integer
Enum: 0 1 2 3 4

WiFi AP provisioning state

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Never started
1 Started
2 Aborted
3 Canceled
4 Completed
26
integer

Wireless remote control version

HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

27
integer
Enum: 0 1

Is a wireless remote control connected?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

28
integer

Wireless Pairing State. Each bit contains state information (see WirelessPairingStateFlags)

HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

29
string

SSID of the AP the camera is currently connected to. On BLE connection, value is big-endian byte-encoded int32

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

30
string

The camera's WiFi SSID. On BLE connection, value is big-endian byte-encoded int32

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

31
integer

The number of wireless devices connected to the camera

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

32
integer
Enum: 0 1

Is Preview Stream enabled?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

33
integer
Enum: -1 0 1 2 3 4 8

Primary Storage Status

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
-1 Unknown
0 OK
1 SD Card Full
2 SD Card Removed
3 SD Card Format Error
4 SD Card Busy
8 SD Card Swapped
34
integer

How many photos can be taken with current settings before sdcard is full

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

35
integer

How many minutes of video can be captured with current settings before sdcard is full

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

38
integer

Total number of photos on sdcard

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

39
integer

Total number of videos on sdcard

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

41
integer
Enum: 0 1 2 3 4 5 6 7 8 9 10

The current status of Over The Air (OTA) update

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Idle
1 Downloading
2 Verifying
3 Download Failed
4 Verify Failed
5 Ready
6 GoPro App: Downloading
7 GoPro App: Verifying
8 GoPro App: Download Failed
9 GoPro App: Verify Failed
10 GoPro App: Ready
42
integer
Enum: 0 1

Is there a pending request to cancel a firmware update download?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

45
integer
Enum: 0 1

Is locate camera feature active?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

49
integer

The current timelapse interval countdown value (e.g. 5...4...3...2...1...)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

54
integer

Remaining space on the sdcard in Kilobytes

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

55
integer
Enum: 0 1

Is preview stream supported in current recording/mode/secondary-stream?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

56
integer

WiFi signal strength in bars

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

58
integer

The number of hilights in currently-encoding video (value is set to 0 when encoding stops)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

59
integer

Time since boot (milliseconds) of most recent hilight in encoding video (set to 0 when encoding stops)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

60
integer

The minimum time between camera status updates (milliseconds). Best practice is to not poll for status more often than this

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

65
integer
Enum: 0 1 2 3

Liveview Exposure Select Mode

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Disabled
1 Auto
2 ISO Lock
3 Hemisphere
66
integer [ 0 .. 100 ]

Liveview Exposure Select: y-coordinate (percent)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

67
integer [ 0 .. 100 ]

Liveview Exposure Select: y-coordinate (percent)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

68
integer
Enum: 0 1

Does the camera currently have a GPS lock?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

69
integer
Enum: 0 1

Is AP mode enabled?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

70
integer [ 0 .. 100 ]

Internal battery level (percent)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

74
integer
Enum: 0 1 2

Microphone Accessory status

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Accessory not connected
1 Accessory connected
2 Accessory connected and a microphone is plugged into the accessory
75
integer [ 0 .. 100 ]

Digital Zoom level (percent)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

76
integer
Enum: 0 1

Wireless Band

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 2.4 GHz
1 5 GHz
77
integer
Enum: 0 1

Is Digital Zoom feature available?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

78
integer
Enum: 0 1

Are current video settings mobile friendly? (related to video compression and frame rate)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

79
integer
Enum: 0 1

Is the camera currently in First Time Use (FTU) UI flow?

HERO10 Black HERO9 Black

81
integer
Enum: 0 1

Is 5GHz wireless band available?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

82
integer
Enum: 0 1

Is the system fully booted and ready to accept commands?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

83
integer
Enum: 0 1

Is the internal battery charged sufficiently to start Over The Air (OTA) update?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

85
integer
Enum: 0 1

Is the camera getting too cold to continue recording?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

86
integer
Enum: 0 1 2 3

Rotational orientation of the camera

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 0 degrees (upright)
1 180 degrees (upside down)
2 90 degrees (laying on right side)
3 270 degrees (laying on left side)
88
integer
Enum: 0 1

Is this camera model capable of zooming while encoding?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

89
integer

Current Flatmode ID

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

93
integer

Current Video Preset (ID)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

94
integer

Current Photo Preset (ID)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

95
integer

Current Time Lapse Preset (ID)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

96
integer

Current Preset Group (ID) (corresponds to ui_mode_groups in settings.json)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

97
integer

Current Preset (ID)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

98
integer

Preset Modified Status, which contains an event ID and a Preset (Group) ID

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

99
integer

The number of Live Bursts can be captured with current settings before sdcard is full

HERO11 Black HERO10 Black HERO9 Black

100
integer

Total number of Live Bursts on sdcard

HERO11 Black HERO10 Black HERO9 Black

101
integer
Enum: 0 1

Is Capture Delay currently active (i.e. counting down)?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

102
integer
Enum: 0 2 3

Media Mod state

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Media Mod microphone removed
2 Media Mod microphone only
3 Media Mod microphone with external microphone
103
integer
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12

Time Warp Speed

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 15x
1 30x
2 60x
3 150x
4 300x
5 900x
6 1800x
7 2x
8 5x
9 10x
10 Auto
11 1x (realtime)
12 1/2x (slow-motion)
104
integer
Enum: 0 1

Is the system's Linux core active?

HERO10 Black HERO9 Black

105
integer
Enum: 0 1 2

Camera lens type (reflects changes to lens settings such as 162, 189, 194, ...)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 Default
1 Max Lens
2 Max Lens 2.0
106
integer
Enum: 0 1

Is Video Hindsight Capture Active?

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

107
integer

Scheduled Capture Preset ID

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

108
integer
Enum: 0 1

Is Scheduled Capture set?

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

110
integer
Enum: 0 1 2 3 4 5 6 7

Display Mod Status (bitmasked)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

Value Meaning
0 000 = Display Mod: 0, HDMI: 0, Display Mod Connected: False
1 001 = Display Mod: 0, HDMI: 0, Display Mod Connected: True
2 010 = Display Mod: 0, HDMI: 1, Display Mod Connected: False
3 011 = Display Mod: 0, HDMI: 1, Display Mod Connected: True
4 100 = Display Mod: 1, HDMI: 0, Display Mod Connected: False
5 101 = Display Mod: 1, HDMI: 0, Display Mod Connected: True
6 110 = Display Mod: 1, HDMI: 1, Display Mod Connected: False
7 111 = Display Mod: 1, HDMI: 1, Display Mod Connected: True
111
integer
Enum: 0 1

Does sdcard meet specified minimum write speed?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

112
integer

Number of sdcard write speed errors since device booted

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

113
integer
Enum: 0 1

Is Turbo Transfer active?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

114
integer
Enum: 0 1 2

Camera control status ID

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

Value Meaning
0 Camera Idle: No one is attempting to change camera settings
1 Camera Control: Camera is in a menu or changing settings. To intervene, app must request control
2 Camera External Control: An outside entity (app) has control and is in a menu or modifying settings
115
integer
Enum: 0 1

Is the camera connected to a PC via USB?

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

116
integer
Enum: 0 1

Camera control over USB state

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black

Value Meaning
0 Disabled
1 Enabled
117
integer

Total SD card capacity in Kilobytes

HERO12 Black HERO11 Black Mini HERO11 Black

118
integer

Photo interval capture count

HERO12 Black

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/camera/state

Response samples

Content type
application/json
{
  • "settings": {
    },
  • "status": {
    }
}

Get Date / Time

HERO12 Black HERO11 Black Mini HERO11 Black

Supported Protocols:

  • USB
  • WIFI

Responses

Response Schema: application/json
date<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: "2023_12_31"

current date in format YYYY_MM_DD

time<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
string
Example: "11_05_45"

current time in format HH_MM_SS

dst
integer
Enum: 0 1

Is daylight savings time active?

tzone
integer
Example: "-480"

Timezone offset in minutes

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/camera/get_date_time

Response samples

Content type
application/json
{
  • "date": "2023_12_31",
  • "dst": 0,
  • "time": "11_05_45",
  • "tzone": -480
}

Get Hardware Info

HERO12 Black

Supported Protocols:

  • USB
  • WIFI

Responses

Response Schema: application/json
object
ap_mac_addr
string
Example: "065747046ceb"

Camera's Access Point MAC address

ap_ssid
string
Example: "GP24645504"

Camera's ACcess Point SSID name

firmware_version
string <version>
Example: "H23.01.01.10.00"

Camera Firmware version

model_name
string
Example: "Hero12 Black"

Camera Model Name

model_number
string
Example: "62"

Camera Model integer (as string)

serial_number
string
Example: "C3501324645504"

Camera serial number

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/camera/info

Response samples

Content type
application/json
{
  • "info": {
    }
}

Get Last Captured Media

HERO12 Black

Supported Protocols:

  • USB
  • WIFI

This will return the complete path of the last captured media. Depending on the type of media captured, it will return:

  • single photo / video: The single media path
  • any grouped media: The path to the first captured media in the group

Responses

Response Schema: application/json
file
string
Example: "GOPR0002.JPG"

Filename of media

folder
string
Example: "100GOPRO"

Directory in which the media is contained in

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/media/last_captured

Response samples

Content type
application/json
{
  • "file": "GOPR0002.JPG",
  • "folder": "100GOPRO"
}

Get Open GoPro Version

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

Supported Protocols:

  • USB
  • WIFI

Responses

Response Schema: application/json
version
string <version>
Example: "2.0"

Open GoPro version

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/version

Response samples

Content type
application/json
{
  • "version": "2.0"
}

settings

GoPro cameras have hundreds of setting options to choose from, all of which can be set using a single endpoint. The endpoint is configured with a setting id and an option value. Note that setting option values are not globally unique. While most option values are enumerated values, some are complex bit-masked values.

Capabilities

Camera capabilities usually change from one camera to another and often change from one release to the next. Below are documents that detail whitelists for basic video settings for every supported camera release.

These Capability documents define supported camera states. Each state is comprised of a set of setting options that are presented in dependency order. This means each state is guaranteed to be attainable if and only if the setting options are set in the order presented. Failure to adhere to dependency ordering may result in the camera's blacklist rules rejecting a set-setting command.

Camera Command 1 Command 2 Command 3 Command 4 Command 5 Guaranteed Valid?
HERO10 Black Res: 1080 Anti-Flicker: 60Hz (NTSC) FPS: 240 FOV: Wide Hypersmooth: OFF
HERO10 Black FPS: 240 Anti-Flicker: 60Hz (NTSC) Res: 1080 FOV: Wide Hypersmooth: OFF

In the example above, the first set of commands will always work for basic video presets such as Standard.

In the second example, suppose the camera's Video Resolution was previously set to 4K. If the user tries to set Video FPS to 240, it will fail because 4K/240fps is not supported.

Capability documents for each camera / firmware version can be found in the following file formats:

XLSX

An XLSX file can be found here.

The capabilities spreadsheet contains worksheets for every supported release. Each row in a worksheet represents a whitelisted state and is presented in dependency order as outlined above.

JSON

A JSON file can be found here.

The capabilities JSON contains a set of whitelist states for every supported release. Each state is comprised of a list of objects that contain setting and option IDs necessary to construct set-setting commands and are given in dependency order as outlined above. For more information on the object format, see the JSON schema

Anti-Flicker (134)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 2 3
Example: option=2
ID Meaning Supported Cameras
2 60Hz HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
3 50Hz HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=2&setting=134'

Response samples

Content type
application/json
{ }

Aspect Ratio (108)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 3 4
ID Meaning Supported Cameras
0 4:3 HERO12 Black
1 16:9 HERO12 Black
3 8:7 HERO12 Black
4 9:16 HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=108'

Response samples

Content type
application/json
{ }

Aspect Ratio (192)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 3
ID Meaning Supported Cameras
0 4:3 HERO12 Black
1 16:9 HERO12 Black
3 8:7 HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=192'

Response samples

Content type
application/json
{ }

Auto Power Down (59)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 4 6 7 11 12
Example: option=11
ID Meaning Supported Cameras
0 Never HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
1 1 Min HERO12 BlackHERO11 Black MiniHERO11 Black
4 5 Min HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
6 15 Min HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
7 30 Min HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
11 8 Seconds HERO11 Black Mini
12 30 Seconds HERO11 Black Mini

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=11&setting=59'

Response samples

Content type
application/json
{ }

Bit Depth (183)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 2
ID Meaning Supported Cameras
0 8-Bit HERO12 Black
2 10-Bit HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=183'

Response samples

Content type
application/json
{ }

Bit Rate (182)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1
Example: option=1
ID Meaning Supported Cameras
0 Standard HERO12 Black
1 High HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=1&setting=182'

Response samples

Content type
application/json
{ }

Controls (175)

HERO12 Black HERO11 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1
ID Meaning Supported Cameras
0 Easy HERO12 BlackHERO11 Black
1 Pro HERO12 BlackHERO11 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=175'

Response samples

Content type
application/json
{ }

Duration (172)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2 3 4 5 6 7 8 9
ID Meaning Supported Cameras
0 Off HERO12 Black
1 15 Seconds HERO12 Black
2 30 Seconds HERO12 Black
3 1 Minute HERO12 Black
4 5 Minutes HERO12 Black
5 15 Minutes HERO12 Black
6 30 Minutes HERO12 Black
7 1 Hour HERO12 Black
8 2 Hours HERO12 Black
9 3 Hours HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=172'

Response samples

Content type
application/json
{ }

Easy Mode Speed (176)

HERO12 Black HERO11 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
ID Meaning Supported Cameras
0 8X Ultra Slo-Mo HERO11 Black
1 4X Super Slo-Mo HERO11 Black
2 2X Slo-Mo HERO11 Black
3 1X Speed (Low Light) HERO11 Black
4 4X Super Slo-Mo (Ext. Batt.) HERO11 Black
5 2X Slo-Mo (Ext. Batt.) HERO11 Black
6 1X Speed (Ext. Batt.) (Low Light) HERO11 Black
7 8X Ultra Slo-Mo (50Hz) HERO11 Black
8 4X Super Slo-Mo (50Hz) HERO11 Black
9 2X Slo-Mo (50Hz) HERO11 Black
10 1X Speed (50Hz) (Low Light) HERO11 Black
11 4X Super Slo-Mo (50Hz) (Ext. Batt.) HERO11 Black
12 2X Slo-Mo (50Hz) (Ext. Batt.) HERO11 Black
13 1X Speed (50Hz) (Ext. Batt.) (Low Light) HERO11 Black
14 8X Ultra Slo-Mo (Ext. Batt.) HERO11 Black
15 8X Ultra Slo-Mo (50Hz) (Ext. Batt.) HERO11 Black
16 8X Ultra Slo-Mo (Long. Batt.) HERO11 Black
17 4X Super Slo-Mo (Long. Batt.) HERO11 Black
18 2X Slo-Mo (Long. Batt.) HERO11 Black
19 1X Speed (Long. Batt.) (Low Light) HERO11 Black
20 8X Ultra Slo-Mo (50Hz) (Long. Batt.) HERO11 Black
21 4X Super Slo-Mo (50Hz) (Long. Batt.) HERO11 Black
22 2X Slo-Mo (50Hz) (Long. Batt.) HERO11 Black
23 1X Speed (50Hz) (Long. Batt.) (Low Light) HERO11 Black
24 2X Slo-Mo (4K) HERO11 Black
25 4X Super Slo-Mo (2.7K) HERO11 Black
26 2X Slo-Mo (4K) (50Hz) HERO11 Black
27 4X Super Slo-Mo (2.7K) (50Hz) HERO11 Black
100 8X Ultra Slo-Mo (V2) HERO12 Black
101 4X Super Slo-Mo (V2) HERO12 Black
102 2X Slo-Mo (V2) HERO12 Black
103 1X Speed (Low Light) (V2) HERO12 Black
104 8X Ultra Slo-Mo (50Hz) (V2) HERO12 Black
105 4X Super Slo-Mo (50Hz) (V2) HERO12 Black
106 2X Slo-Mo (50Hz) (V2) HERO12 Black
107 1X Speed (50Hz) (Low Light) (V2) HERO12 Black
108 8X Ultra Slo-Mo (Long. Batt.) (V2) HERO12 Black
109 4X Super Slo-Mo (Long. Batt.) (V2) HERO12 Black
110 2X Slo-Mo (Long. Batt.) (V2) HERO12 Black
111 1X Speed (Long. Batt.) (Low Light) (V2) HERO12 Black
112 8X Ultra Slo-Mo (50Hz) (Long. Batt.) (V2) HERO12 Black
113 4X Super Slo-Mo (50Hz) (Long. Batt.) (V2) HERO12 Black
114 2X Slo-Mo (50Hz) (Long. Batt.) (V2) HERO12 Black
115 1X Speed (50Hz) (Long. Batt.) (Low Light) (V2) HERO12 Black
116 2X Slo-Mo (4K) (V2) HERO12 Black
117 2X Slo-Mo (4K) (50Hz) (V2) HERO12 Black
118 1X Speed (Low Light) (V2) (Vertical) HERO12 Black
119 1X Speed (50Hz) (Low Light) (V2) (Vertical) HERO12 Black
120 2X Slo-Mo (V2) (Vertical) HERO12 Black
121 2X Slo-Mo (50Hz) (V2) (Vertical) HERO12 Black
122 1X Speed (Full Frame) (Low Light) (V2) HERO12 Black
123 1X Speed (50Hz) (Full Frame) (Low Light) (V2) HERO12 Black
124 2X Slo-Mo (Full Frame) (V2) HERO12 Black
125 2X Slo-Mo (50Hz) (Full Frame) (V2) HERO12 Black
126 1X Speed (4K) (Low Light) (V2) HERO12 Black
127 1X Speed (4K) (50Hz) (Low Light) (V2) HERO12 Black
128 1X Speed (2.7K) (Low Light) (V2) HERO12 Black
129 1X Speed (2.7K) (50Hz) (Low Light) (V2) HERO12 Black
130 2X Slo-Mo (2.7K) (V2) HERO12 Black
131 2X Slo-Mo (2.7K) (50Hz) (V2) HERO12 Black
132 2X Slo-Mo (Long. Batt.) (V2) (Vertical) HERO12 Black
133 2X Slo-Mo (50Hz) (Long. Batt.) (V2) (Vertical) HERO12 Black
134 1X Speed (Long. Batt.) (Low Light) (V2) (Vertical) HERO12 Black
135 1X Speed (50Hz) (Long. Batt.) (Low Light) (V2) (Vertical) HERO12 Black
136 1X Speed (4K) (Full Frame) (Low Light) (V2) HERO12 Black
137 1X Speed (4K) (50Hz) (Full Frame) (Low Light) (V2) HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=176'

Response samples

Content type
application/json
{ }

Enable Night Photo (177)

HERO11 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1
ID Meaning Supported Cameras
0 Off HERO11 Black
1 On HERO11 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=177'

Response samples

Content type
application/json
{ }

Frames Per Second (3)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2 5 6 8 9 10 13
ID Meaning Supported Cameras
0 240 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
1 120 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
2 100 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
5 60 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
6 50 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
8 30 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
9 25 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
10 24 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
13 200 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=3'

Response samples

Content type
application/json
{ }

Framing (193)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2
ID Meaning Supported Cameras
0 Widescreen HERO12 Black
1 Vertical HERO12 Black
2 Full Frame HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=193'

Response samples

Content type
application/json
{ }

GPS (83)

HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1
Example: option=1
ID Meaning Supported Cameras
0 Off HERO11 BlackHERO10 BlackHERO9 Black
1 On HERO11 BlackHERO10 BlackHERO9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=1&setting=83'

Response samples

Content type
application/json
{ }

HindSight (167)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 2 3 4
Example: option=2
ID Meaning Supported Cameras
2 15 Seconds HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
3 30 Seconds HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
4 Off HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=2&setting=167'

Response samples

Content type
application/json
{ }

Horizon Leveling (150)

HERO11 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 2
ID Meaning Supported Cameras
0 Off HERO11 Black
2 Locked HERO11 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=150'

Response samples

Content type
application/json
{ }

Horizon Leveling (151)

HERO11 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 2
ID Meaning Supported Cameras
0 Off HERO11 Black
2 Locked HERO11 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=151'

Response samples

Content type
application/json
{ }

Hypersmooth (135)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2 3 4 100
Example: option=4
ID Meaning Supported Cameras
0 Off HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
1 Low HERO12 BlackHERO11 Black MiniHERO11 BlackHERO9 Black
2 High HERO10 BlackHERO9 Black
3 Boost HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 Auto Boost HERO12 BlackHERO11 Black MiniHERO11 Black
100 Standard HERO10 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=4&setting=135'

Response samples

Content type
application/json
{ }

Interval (171)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 2 3 4 5 6 7 8 9 10
ID Meaning Supported Cameras
0 Off HERO12 Black
2 0.5s HERO12 Black
3 1s HERO12 Black
4 2s HERO12 Black
5 5s HERO12 Black
6 10s HERO12 Black
7 30s HERO12 Black
8 60s HERO12 Black
9 120s HERO12 Black
10 3s HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=171'

Response samples

Content type
application/json
{ }

Lapse Mode (187)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2 3 4 5 6 7
ID Meaning Supported Cameras
0 TimeWarp HERO12 Black
1 Star Trails HERO12 Black
2 Light Painting HERO12 Black
3 Vehicle Lights HERO12 Black
4 Max TimeWarp HERO12 Black
5 Max Star Trails HERO12 Black
6 Max Light Painting HERO12 Black
7 Max Vehicle Lights HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=187'

Response samples

Content type
application/json
{ }

Lens (121)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 2 3 4 7 8 9 10 11
Example: option=7
ID Meaning Supported Cameras
0 Wide HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
2 Narrow HERO10 BlackHERO9 Black
3 Superview HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 Linear HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
7 Max SuperView HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
8 Linear + Horizon Leveling HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
9 HyperView HERO12 BlackHERO11 Black MiniHERO11 Black
10 Linear + Horizon Lock HERO12 BlackHERO11 Black MiniHERO11 Black
11 Max HyperView HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=7&setting=121'

Response samples

Content type
application/json
{ }

Lens (122)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 19 100 101 102
Example: option=100
ID Meaning Supported Cameras
19 Narrow HERO10 BlackHERO9 Black
100 Max SuperView HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
101 Wide HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
102 Linear HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=100&setting=122'

Response samples

Content type
application/json
{ }

Max Lens (162)

HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1
ID Meaning Supported Cameras
0 Off HERO11 BlackHERO10 BlackHERO9 Black
1 On HERO11 BlackHERO10 BlackHERO9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=162'

Response samples

Content type
application/json
{ }

Max Lens Mod (189)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2
ID Meaning Supported Cameras
0 None HERO12 Black
1 Max Lens 1.0 HERO12 Black
2 Max Lens 2.0 HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=189'

Response samples

Content type
application/json
{ }

Max Lens Mod Enable (190)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1
ID Meaning Supported Cameras
0 Off HERO12 Black
1 On HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=190'

Response samples

Content type
application/json
{ }

Media Format (128)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 13 20 21 26
Example: option=13
ID Meaning Supported Cameras
13 Time Lapse Video HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
20 Time Lapse Photo HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
21 Night Lapse Photo HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
26 Night Lapse Video HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=13&setting=128'

Response samples

Content type
application/json
{ }

Photo Mode (191)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1
ID Meaning Supported Cameras
0 Super Photo HERO12 Black
1 Night Photo HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=191'

Response samples

Content type
application/json
{ }

Profiles (184)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2
ID Meaning Supported Cameras
0 Standard HERO12 Black
1 HDR HERO12 Black
2 Log HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=184'

Response samples

Content type
application/json
{ }

Resolution (2)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 1 4 6 7 9 18 24 25 26 27 28 100 107 108 109 110 111
Example: option=100
ID Meaning Supported Cameras
1 4K HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 2.7K HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
6 2.7K 4:3 HERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
7 1440 HERO9 Black
9 1080 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
18 4K 4:3 HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
24 5K HERO9 Black
25 5K 4:3 HERO10 Black
26 5.3K 8:7 HERO11 Black MiniHERO11 Black
27 5.3K 4:3 HERO11 Black MiniHERO11 Black
28 4K 8:7 HERO11 Black MiniHERO11 Black
100 5.3K HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 Black
107 5.3K HERO12 Black
108 4K HERO12 Black
109 4K HERO12 Black
110 1080 HERO12 Black
111 2.7K HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=100&setting=2'

Response samples

Content type
application/json
{ }

Time Lapse Digital Lenses (123)

HERO12 Black HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 19 100 101 102
Example: option=101
ID Meaning Supported Cameras
19 Narrow HERO10 BlackHERO9 Black
100 Max SuperView HERO10 Black
101 Wide HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black
102 Linear HERO12 BlackHERO11 BlackHERO10 BlackHERO9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=101&setting=123'

Response samples

Content type
application/json
{ }

Trail Length (179)

HERO12 Black HERO11 Black Mini HERO11 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 1 2 3
Example: option=3
ID Meaning Supported Cameras
1 Short HERO12 BlackHERO11 Black MiniHERO11 Black
2 Long HERO12 BlackHERO11 Black MiniHERO11 Black
3 Max HERO12 BlackHERO11 Black MiniHERO11 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=3&setting=179'

Response samples

Content type
application/json
{ }

Video Mode (180)

HERO11 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 101 102
ID Meaning Supported Cameras
0 Highest Quality HERO11 Black
101 Extended Battery (Green Icon) HERO11 Black
102 Longest Battery (Green Icon) HERO11 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=180'

Response samples

Content type
application/json
{ }

Video Mode (186)

HERO12 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2
ID Meaning Supported Cameras
0 Highest Quality HERO12 Black
1 Standard Quality HERO12 Black
2 Basic Quality HERO12 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=186'

Response samples

Content type
application/json
{ }

Video Performance Mode (173)

HERO10 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1 2
ID Meaning Supported Cameras
0 Maximum Video Performance HERO10 Black
1 Extended Battery HERO10 Black
2 Tripod / Stationary Video HERO10 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=173'

Response samples

Content type
application/json
{ }

Webcam Digital Lenses (43)

HERO12 Black HERO11 Black Mini HERO11 Black HERO10 Black HERO9 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 2 3 4
Example: option=3
ID Meaning Supported Cameras
0 Wide HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
2 Narrow HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
3 Superview HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black
4 Linear HERO12 BlackHERO11 Black MiniHERO11 BlackHERO10 BlackHERO9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=3&setting=43'

Response samples

Content type
application/json
{ }

Wireless Band (178)

HERO12 Black HERO11 Black Mini HERO11 Black

query Parameters
option<div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div>
integer
Enum: 0 1
ID Meaning Supported Cameras
0 2.4GHz HERO12 BlackHERO11 Black MiniHERO11 Black
1 5GHz HERO12 BlackHERO11 Black MiniHERO11 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/camera/setting?option=0&setting=178'

Response samples

Content type
application/json
{ }

Webcam

The webcam feature enables developers who are interested in writing custom drivers to broadcast the camera's video preview with a limited set of resolution, field of view, port, and protocol options.

While active, the webcam feature sends raw data to the connected client using a supported protocol. To enable multi-cam support, some cameras support running on a user-specified port. Protocol and port details are provided in a table below.

To test basic functionality, start the webcam, and use an application such as VLC to open a network stream:

Protocol Port
TS udp://@:{PORT}
RTSP rtsp://{CAMERA_IP}:554/live

For readers interested in using a GoPro camera as a webcam with preexisting tools, please see How to use GoPro as a Webcam.

Webcam via USB

For USB connections, prior to issuing webcam commands, Wired USB Control should be disabled.

Webcam State Diagram

webcam state diagram

Webcam Stabilization

Should the client require stabilization, the Hypersmooth setting can be used while in the state: READY (Status: OFF). This setting can only be set while webcam is disabled, which requires either sending the Webcam Exit command or reseating the USB-C connection to the camera.

Note! The Low Hypersmooth option provides lower/lighter stabilization when used in Webcam mode vs other camera modes.

Enter Webcam Preview

HERO12 Black HERO11 Black HERO10 Black

Supported Protocols:

  • USB
  • WIFI

Not supported on WiFi for:

  • Hero 11 Black Mini
  • Hero 11 Black
  • Hero 10 Black
  • Hero 9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/webcam/preview

Response samples

Content type
application/json
{ }

Exit Webcam Mode

HERO12 Black HERO11 Black HERO10 Black

Supported Protocols:

  • USB
  • WIFI

Not supported on WiFi for:

  • Hero 11 Black Mini
  • Hero 11 Black
  • Hero 10 Black
  • Hero 9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/webcam/exit

Response samples

Content type
application/json
{ }

Get Webcam Status

HERO12 Black HERO11 Black HERO10 Black

Supported Protocols:

  • USB
  • WIFI

Responses

Response Schema: application/json
error
integer
Enum: 0 1 2 3 4 5 6 7 8

Current webcam error (if status was not successful)

Code Status
0 None
1 Set Preset
2 Set Window Size
3 Exec Stream
4 Shutter
5 Com timeout
6 Invalid param
7 Unavailable
8 Exit
status
integer
Enum: 0 1 2 3

Current webcam status

Code Status
0 Off
1 Idle
2 High Power Preview
3 Low Power Preview

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/webcam/status

Response samples

Content type
application/json
{
  • "error": 0,
  • "status": 0
}

Get Webcam Version

HERO12 Black HERO11 Black HERO10 Black

Supported Protocols:

  • USB
  • WIFI

Responses

Response Schema: application/json
max_lens_support
boolean

Does the webcam support Max Lens Mod?

usb_3_1_compatible
boolean

Is the webcam USB 3.1 compatible?

version
integer

Current webcam version

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/webcam/version

Response samples

Content type
application/json
{
  • "max_lens_support": true,
  • "usb_3_1_compatible": true,
  • "version": 0
}

Start Webcam

HERO12 Black HERO11 Black HERO10 Black

Supported Protocols:

  • USB
  • WIFI

Not supported on WiFi for:

  • Hero 11 Black Mini
  • Hero 11 Black
  • Hero 10 Black
  • Hero 9 Black
query Parameters
res
integer
Example: res=12

Webcam Resolution

ID Resolution Supported Cameras
4 480p Hero 10 Black, Hero 9 Black
7 720p Hero 12 Black, Hero 9 Black, Hero 10 Black, Hero 11 Black
12 1080p Hero 12 Black, Hero 9 Black, Hero 10 Black, Hero 11 Black
fov
integer

Webcam Field-of-View

ID FOV Supported Cameras
0 Wide Hero 12 Black, Hero 9 Black, Hero 10 Black, Hero 11 Black
2 Narrow Hero 12 Black, Hero 9 Black, Hero 10 Black, Hero 11 Black
3 Superview Hero 12 Black, Hero 9 Black, Hero 10 Black, Hero 11 Black
4 Linear Hero 12 Black, Hero 9 Black, Hero 10 Black, Hero 11 Black
port integer Default: 8554 Example: port=8556Port to use for Webcam Stream. Defaults to 8554 if not set Not supported on Hero 11 Black Mini Hero 10 Black Hero 9 Black
protocol string Enum: “RTSP” “TS” Example: protocol=RTSPStreaming protocol to use. Not supported on Hero 11 Black Mini Hero 11 Black Hero 10 Black Hero 9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url 'http://10.5.5.9:8080/gopro/webcam/start?res=12&fov=0&port=8556&protocol=RTSP'

Response samples

Content type
application/json
{ }

Stop Webcam

HERO12 Black HERO11 Black HERO10 Black

Supported Protocols:

  • USB
  • WIFI

Not supported on WiFi for:

  • Hero 11 Black Mini
  • Hero 11 Black
  • Hero 10 Black
  • Hero 9 Black

Responses

Response Schema: application/json
object

Request samples

curl --request GET \
  --url http://10.5.5.9:8080/gopro/webcam/stop

Response samples

Content type
application/json
{ }