Skip to main content

Import LUT File

method
POST
POST /api/cameras/{cameraId}/lut/import
Upload a .cube LUT file to the camera. The file is imported asynchronously — the endpoint returns 202 Accepted immediately and the result is delivered via the lutImportResult SSE event.
filePath
string
required
Absolute path to a .cube LUT file on the server’s filesystem.
slot
integer
required
LUT slot number on the camera (1-16).
curl -X POST http://localhost:8080/api/cameras/D10F60149B0C/lut/import \
  -H "Content-Type: application/json" \
  -d '{"filePath": "/path/to/MyLUT.cube", "slot": 1}'

SSE Result

The import result is delivered asynchronously via the lutImportResult SSE event:
Success
{
  "slot": 1,
  "status": "success"
}
Error
{
  "slot": 1,
  "status": "error",
  "error": "invalid_file"
}
Error codes:
CodeDescription
general_failureUnspecified import failure
invalid_filenameFile name not accepted by camera
device_busyCamera is busy (recording, etc.)
storage_fullCamera storage is full
invalid_parameterInvalid slot number or parameter
invalid_fileFile is not a valid .cube LUT
invalidGeneric validation failure
On macOS with SDK V2.01.00, the OnWarning callback for LUT import results may not fire. The import itself succeeds — verify by checking the camera’s LUT slot directly.

CineEI Workflow

A typical CineEI setup using properties and LUT import:
1

Switch to movie mode

Set exposure-program-mode to a movie mode (e.g. 0x8055 for Movie Manual).
2

Enable CineEI

Set movie-shooting-mode to 0x0301 (CineEI).
3

Set color gamut

Set movie-shooting-mode-color-gamut to 0x1 (S-Gamut3.Cine).
4

Import LUT

POST /api/cameras/{id}/lut/import with your .cube file and slot number.
5

Enable LUT embedding

Set embed-lut-file to 0x2 (On).
6

Start recording

POST /api/cameras/{id}/actions/movie-rec
# 1. Set CineEI mode
curl -X PUT .../properties/movie-shooting-mode \
  -d '{"value": "0x0301"}'

# 2. Set color gamut
curl -X PUT .../properties/movie-shooting-mode-color-gamut \
  -d '{"value": "0x1"}'

# 3. Import LUT
curl -X POST .../lut/import \
  -d '{"filePath": "/path/to/MyLUT.cube", "slot": 1}'

# 4. Enable LUT embedding
curl -X PUT .../properties/embed-lut-file \
  -d '{"value": "0x2"}'

# 5. Start recording
curl -X POST .../actions/movie-rec

CineEI Properties

Once in CineEI mode, two additional properties become available:
  • base-iso — Toggle between High and Low base ISO sensitivity. Changing this affects which Exposure Index values are available.
  • exposure-index — Set the Exposure Index (EI) value (e.g. “800 EI”). Only writable in CineEI mode.

PPLUT Workflow

Apply an imported LUT as the base look for a Picture Profile.
1

Import the LUT

POST /api/cameras/{id}/lut/import with your .cube file and a slot (1–16).
2

Set Picture Profile to a Custom slot

Set picture-profile to Custom 1–4 (0x410x44).
3

Select the LUT as base look

Set pp-lut-base-look to the PPLUT slot (1–8) that maps to your imported LUT.
# 1. Import LUT to slot 1
curl -X POST .../lut/import \
  -d '{"filePath": "/path/to/MyLUT.cube", "slot": 1}'

# 2. Set Picture Profile to Custom 1
curl -X PUT .../properties/picture-profile \
  -d '{"value": "0x41"}'

# 3. Select PPLUT 1 as base look
curl -X PUT .../properties/pp-lut-base-look \
  -d '{"value": "0x1"}'
pp-lut-base-look is only writable when picture-profile is set to a Custom slot. It may appear read-only in getAllProperties — use an individual GET for accurate state.