Skip to main content

Get Property

method
GET
GET /api/cameras/cameraId/properties/propertyName
Returns the current value, human-readable format, writability flag, and all values the camera currently accepts.
propertyName
string
required
One of: iso, aperture, shutter-speed, exposure-program-mode, focus-mode, focus-area, white-balance, drive-mode, file-format, image-quality, raw-compression, still-image-store-destination, focus-position, focus-position-current, focus-driving-status, focus-distance, zoom-distance
curl http://localhost:8080/api/cameras/D10F60149B0C/properties/shutter-speed
data.value
string
Hex-encoded current value — use this for SET requests
data.formatted
string
Human-readable display value
data.writable
string
“true” or “false” — whether the property can be changed in the current mode
data.available_values
array
All values the camera currently accepts

Set Property

method
PUT
PUT /api/cameras/cameraId/properties/propertyName
Set a camera property. Accepts hex values from available_values or human-readable strings.
value
string
required
The value to set. Accepts multiple formats:
FormatExampleDescription
Hex"0x1007d"Copy from GET response available_values — always works
Human-readable"1/125"For shutter speed
F-stop"f/5.6"For aperture
Decimal"400"For ISO
String enum"wide"For focus area, drive mode, etc.
The safest approach: GET the property first, pick a value from available_values, and send it back in your PUT.
curl -X PUT http://localhost:8080/api/cameras/D10F60149B0C/properties/shutter-speed \
  -H "Content-Type: application/json" \
  -d '{"value": "0x100fa"}'
The server validates against the camera’s current available_values and checks writability before sending to the SDK. If the property is not writable (e.g. shutter speed in Aperture Priority mode), you’ll get a 400 error.

Get All Properties

method
GET
GET /api/cameras/cameraId/properties/all
Returns all mapped properties with their current formatted values.
curl http://localhost:8080/api/cameras/D10F60149B0C/properties/all

Priority Key

Priority key must be set to pc-remote before the camera accepts any property changes or shooting commands.

Get Priority Key

method
GET
GET /api/cameras/cameraId/priority-key
curl http://localhost:8080/api/cameras/D10F60149B0C/priority-key

Set Priority Key

method
PUT
PUT /api/cameras/cameraId/priority-key
setting
string
required
pc-remote or camera-position
curl -X PUT http://localhost:8080/api/cameras/D10F60149B0C/priority-key \
  -H "Content-Type: application/json" \
  -d '{"setting": "pc-remote"}'

Property Reference

PropertyRead/WriteDescription
isoR/WISO sensitivity (Auto, 125, 200, 400, …)
apertureR/WF-number (f/1.4, f/2.0, …, f/22)
shutter-speedR/WShutter speed (1/8000, …, 30s, Bulb)
exposure-program-modeRead-onlyDial-controlled: P, A, S, M, Auto
focus-modeR/WManual, AF-S, AF-C, AF-A, DMF
focus-areaR/WWide, Zone, Center, Flexible Spot, Tracking
white-balanceR/WAuto, Daylight, Shade, Cloudy, etc.
drive-modeR/WSingle, Continuous Hi/Lo, Timer, Bracket
file-formatR/WRAW, JPEG, RAW+JPEG, HEIF
image-qualityR/WFine, Standard, Extra Fine
raw-compressionR/WUncompressed, Compressed, Lossless
still-image-store-destinationR/WHost PC (0x0001), Memory Card (0x0002), Both (0x0003)
focus-positionR/WAbsolute position 0–65535
focus-position-currentRead-onlyActual lens position
focus-driving-statusRead-onlyNot Driving / Driving
focus-distanceRead-onlyDistance in 1/1000 meter units
zoom-distanceRead-onlyFocal length in 0.001mm units
Every property supports hex values from the GET response. The human-readable formats below are shortcuts — hex always works. Always GET the property first to see what your specific camera supports.

iso

Read/Write — ISO sensitivity
FormattedHexPUT Example
ISO AUTO0xffffff{"value": "0xffffff"}
ISO 1000x64{"value": "100"}
ISO 2000xc8{"value": "200"}
ISO 4000x190{"value": "400"}
ISO 8000x320{"value": "800"}
ISO 16000x640{"value": "1600"}
ISO 32000xc80{"value": "3200"}
ISO 64000x1900{"value": "6400"}
ISO 128000x3200{"value": "12800"}
ISO 256000x6400{"value": "25600"}
curl -X PUT .../properties/iso -d '{"value": "400"}'
Some cameras use extended hex (e.g. 0x100000c8 for ISO 200). Always check available_values from GET.

aperture

Read/Write — F-number. Accepts hex, f/ prefix, or decimal.
FormattedHexPUT Example
F1.40x8c{"value": "f/1.4"}
F2.00xc8{"value": "f/2.0"}
F2.80x118{"value": "f/2.8"}
F4.00x190{"value": "f/4.0"}
F5.60x230{"value": "f/5.6"}
F8.00x320{"value": "f/8"}
F110x460{"value": "f/11"}
F160x640{"value": "f/16"}
F220x8c0{"value": "f/22"}
curl -X PUT .../properties/aperture -d '{"value": "f/5.6"}'
# Also works:
curl -X PUT .../properties/aperture -d '{"value": "5.6"}'
curl -X PUT .../properties/aperture -d '{"value": "0x230"}'

shutter-speed

Read/Write — Accepts hex, fraction format, or decimal seconds.
FormattedHexPUT Example
1/80000x11f40{"value": "1/8000"}
1/40000x10fa0{"value": "1/4000"}
1/20000x107d0{"value": "1/2000"}
1/10000x103e8{"value": "1/1000"}
1/5000x101f4{"value": "1/500"}
1/2500x100fa{"value": "1/250"}
1/1250x1007d{"value": "1/125"}
1/600x1003c{"value": "1/60"}
1/300x1001e{"value": "1/30"}
1”0x10001{"value": "0x10001"}
30”0x1001e{"value": "0x1001e"}
curl -X PUT .../properties/shutter-speed -d '{"value": "1/250"}'
# Also works:
curl -X PUT .../properties/shutter-speed -d '{"value": "0x100fa"}'
Shutter speed is only writable in Manual (M) or Shutter Priority (S) mode. In P or A mode, the camera controls it and writable will be "false".

exposure-program-mode

Read-only — Controlled by the camera’s mode dial.
FormattedHex
P (Program)0x1
A (Aperture Priority)0x2
S (Shutter Priority)0x3
M (Manual)0x4
Auto0x8000
Auto+0x8001

focus-mode

Read/Write
FormattedHexPUT Example
Manual Focus0x1{"value": "0x1"}
AF-S0x2{"value": "0x2"}
AF-C0x3{"value": "0x3"}
AF-A0x4{"value": "0x4"}
DMF0x5{"value": "0x5"}
curl -X PUT .../properties/focus-mode -d '{"value": "0x3"}'

focus-area

Read/Write — Accepts hex or string name.
FormattedPUT Example
Wide{"value": "wide"}
Zone{"value": "zone"}
Center{"value": "center"}
Flexible Spot S{"value": "flexible-spot-s"}
Flexible Spot M{"value": "flexible-spot-m"}
Flexible Spot L{"value": "flexible-spot-l"}
Expand Flexible Spot{"value": "expand-flexible-spot"}
Tracking Wide{"value": "tracking-wide"}
curl -X PUT .../properties/focus-area -d '{"value": "wide"}'
Available focus areas vary by camera model. Always check available_values.

white-balance

Read/Write
FormattedHexPUT Example
Auto0x0{"value": "0x0"}
Daylight0x11{"value": "0x11"}
Shade0x12{"value": "0x12"}
Cloudy0x13{"value": "0x13"}
Incandescent0x14{"value": "0x14"}
Fluorescent0x8001{"value": "0x8001"}
Flash0x8051{"value": "0x8051"}
Custom0x8002{"value": "0x8002"}
Color Temp0x8003{"value": "0x8003"}
Underwater Auto0x8004{"value": "0x8004"}
curl -X PUT .../properties/white-balance -d '{"value": "0x11"}'

drive-mode

Read/Write — Accepts hex or string name.
FormattedPUT Example
Single{"value": "single"}
Continuous Hi+{"value": "continuous-hi-plus"}
Continuous Hi{"value": "continuous-hi"}
Continuous Mid{"value": "continuous-mid"}
Continuous Lo{"value": "continuous-lo"}
Self-timer 10s{"value": "timer-10s"}
Self-timer 5s{"value": "timer-5s"}
Self-timer 2s{"value": "timer-2s"}
Bracket Single{"value": "bracket-single"}
Bracket Continuous{"value": "bracket-continuous"}
curl -X PUT .../properties/drive-mode -d '{"value": "single"}'

file-format

Read/Write
FormattedHexPUT Example
JPEG0x1{"value": "0x1"}
RAW0x2{"value": "0x2"}
RAW+JPEG0x3{"value": "0x3"}
curl -X PUT .../properties/file-format -d '{"value": "0x3"}'

image-quality

Read/Write
FormattedHexPUT Example
Standard0x2{"value": "0x2"}
Fine0x3{"value": "0x3"}
Extra Fine0x4{"value": "0x4"}
curl -X PUT .../properties/image-quality -d '{"value": "0x4"}'

raw-compression

Read/Write
FormattedHexPUT Example
Uncompressed0x0{"value": "0x0"}
Compressed0x1{"value": "0x1"}
Lossless L0x5{"value": "0x5"}
Lossless M0x4{"value": "0x4"}
Lossless S0x3{"value": "0x3"}
curl -X PUT .../properties/raw-compression -d '{"value": "0x0"}'

still-image-store-destination

Read/Write — Where captured images are saved.
FormattedHexPUT Example
Host PC0x1{"value": "0x1"}
Memory Card0x2{"value": "0x2"}
Host PC & Memory Card0x3{"value": "0x3"}
curl -X PUT .../properties/still-image-store-destination -d '{"value": "0x3"}'
Set to 0x1 or 0x3 for auto-transfer in remote mode. Also requires SetSaveInfo path to be configured.

focus-position

Read/Write — Absolute focus position (lens-dependent range property).
ValueMeaning
0Infinity
32000~0.50m (approximate, lens-dependent)
65535~0.20m (closest, lens-dependent)
curl -X PUT .../properties/focus-position -d '{"value": "32000"}'

focus-position-current

Read-only — Actual current lens focus position. Same scale as focus-position.

focus-driving-status

Read-onlyNot Driving or Driving.

focus-distance

Read-only — Focus distance in 1/1000 meter units. 0xFFFFFFFF = Infinity.

zoom-distance

Read-only — Current focal length in 0.001mm units.