View — Référence de l’API

What is on screen: view mode, zoom, overlays and the exposure aid, panels, windows and workspaces, compare and survey, the slideshow, video and audio playback.

La référence de l’API est en anglais : elle est générée à partir du document OpenAPI de l’application.

What is on screen: view mode, zoom, overlays and the exposure aid, panels, windows and workspaces, compare and survey, the slideshow, video and audio playback.

56 operations. Generated from the application's own OpenAPI document.

POST /api/compare/split

Compare split

Body

FieldTypeRequiredDescription
direction"horizontal" | "vertical"yesThe compare split: horizontal, vertical
curl -X POST http://127.0.0.1:9100/api/compare/split \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"direction":"horizontal"}'

Responses

  • 200 — Compare split direction set
  • 400 — Invalid direction

GET /api/images/current/audio

Audio note

curl -X GET http://127.0.0.1:9100/api/images/current/audio \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — Whether the current picture has an audio note, and whether one plays

POST /api/images/current/audio

Play audio note

Body

FieldTypeRequiredDescription
playingbooleanyesTrue plays the current picture's audio note, false stops it.
curl -X POST http://127.0.0.1:9100/api/images/current/audio \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"playing":true}'

Responses

  • 200 — The audio note plays, or stopped
  • 400 — The picture has no audio note

POST /api/slideshow/interval

Slideshow seconds

Body

FieldTypeRequiredDescription
secondsnumberyes
curl -X POST http://127.0.0.1:9100/api/slideshow/interval \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"seconds":0}'

Responses

  • 200 — Slideshow interval set
  • 400 — Invalid interval

POST /api/slideshow/start

Start slideshow

curl -X POST http://127.0.0.1:9100/api/slideshow/start \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — Slideshow started

POST /api/slideshow/stop

Stop slideshow

curl -X POST http://127.0.0.1:9100/api/slideshow/stop \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — Slideshow stopped

POST /api/survey/count

Pictures per Survey page

Body

FieldTypeRequiredDescription
countnumberyesPictures per Survey page, 2-4. In Survey the page is laid out again; in any other view the view stays and the count is used the next time Survey is entered.
curl -X POST http://127.0.0.1:9100/api/survey/count \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"count":0}'

Responses

  • 200 — Survey count set
  • 400 — Invalid count

POST /api/ui/channel

Channel

Body

FieldTypeRequiredDescription
channel"rgb" | "red" | "green" | "blue"yesThe channel: rgb, red, green, blue
curl -X POST http://127.0.0.1:9100/api/ui/channel \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"channel":"rgb"}'

Responses

  • 200 — Channel mode set
  • 400 — Invalid channel

POST /api/ui/clipping

Clipping

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/clipping \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Clipping overlay set

POST /api/ui/composition-guide

Composition guide

Body

FieldTypeRequiredDescription
guide"none" | "thirds" | "golden" | "diagonals" | "triangles" | "spiral" | "fine"The grid: none, thirds, golden, diagonals, triangles, spiral, fine
turnbooleanFace a guide with a direction (spiral, triangles) the next way round.
curl -X POST http://127.0.0.1:9100/api/ui/composition-guide \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"guide":"none","turn":true}'

Responses

  • 200 — Composition guide set
  • 400 — Unknown guide

POST /api/ui/develop-panel

Develop panel

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/develop-panel \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Develop panel visibility set

GET /api/ui/dialogs

Open dialogs

curl -X GET http://127.0.0.1:9100/api/ui/dialogs \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — Every dialog the API can open, and whether it is on screen

POST /api/ui/dialogs

Open dialog

Body

FieldTypeRequiredDescription
name"settings" | "export" | "import" | "batch-rename" | "eventphotos" | "publish" | "gallery" | "iptc" | "smart_collection" | "place_by_neighbours" | "feedback" | "lightroom_catalog" | "whats_new" | "downloads" | "workflow_templates" | "person_tag"yesThe dialog: settings, export, import, batch-rename, eventphotos, publish, gallery, iptc, smart_collection, place_by_neighbours, feedback, lightroom_catalog, whats_new, downloads, workflow_templates, person_tag
openbooleanyes
tab"general" | "performance" | "appearance" | "color" | "transform" | "launching" | "connections" | "tether" | "denoise" | "workflow" | "geocode" | "shortcuts" | "ai_services" | "license"The settings section: general, performance, appearance, color, transform, launching, connections, tether, denoise, workflow, geocode, shortcuts, ai_services, license
curl -X POST http://127.0.0.1:9100/api/ui/dialogs \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"settings","open":true}'

Responses

  • 200 — The dialog was opened or closed
  • 400 — No dialog by that name, or it cannot open right now

GET /api/ui/displays

Displays

curl -X GET http://127.0.0.1:9100/api/ui/displays \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — The displays, as Window → Move to Display lists them

POST /api/ui/dual-fullscreen

Dual full screen

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/dual-fullscreen \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Dual fullscreen set

POST /api/ui/exif-overlay

EXIF overlay

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/exif-overlay \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — EXIF overlay set

POST /api/ui/exposure-aid

Exposure aid

Body

FieldTypeRequiredDescription
evnumberyes-4 to +4. Applies to every image at once and is never written to a sidecar — it is a way of looking, not an edit.
curl -X POST http://127.0.0.1:9100/api/ui/exposure-aid \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ev":0}'

Responses

  • 200 — Exposure aid set

POST /api/ui/false-color

False color

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/false-color \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — False-colour overlay set

POST /api/ui/filmstrip

Filmstrip

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/filmstrip \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Filmstrip visibility set

POST /api/ui/focus-box

Focus box

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/focus-box \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Focus box set

POST /api/ui/focus-peaking

Focus peaking

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/focus-peaking \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Focus peaking overlay set

POST /api/ui/folder-tree

Folder tree

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/folder-tree \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Folder tree visibility set

POST /api/ui/fullscreen

Full screen

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/fullscreen \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Fullscreen mode set

POST /api/ui/highlight-detail

Highlight detail

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/highlight-detail \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Highlight detail overlay set

POST /api/ui/import-panel

Import panel

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/import-panel \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Import panel shown or hidden

POST /api/ui/keywords-panel

Keywords panel

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/keywords-panel \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Keywords panel shown or hidden

POST /api/ui/library-window/tab

Library window tab

Body

FieldTypeRequiredDescription
name"duplicates" | "folder-copies" | "disks"yesThe tab: duplicates, folder-copies, disks
curl -X POST http://127.0.0.1:9100/api/ui/library-window/tab \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"duplicates"}'

Responses

  • 200 — The Library window is showing that tab
  • 400 — The window is not open, or no tab by that name

POST /api/ui/light-table

Light table

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/light-table \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Light Table opened or closed

POST /api/ui/map

Map

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/map \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Map panel visibility set

POST /api/ui/noise-map

Noise map

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/noise-map \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Noise map overlay set

GET /api/ui/panels

Panels

curl -X GET http://127.0.0.1:9100/api/ui/panels \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — Every dockable panel, whether it is in the layout and whether it is the tab on top

POST /api/ui/panels-hidden

Hide all panels

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/panels-hidden \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Panels out of the way, or back

POST /api/ui/panels/focus

Show panel

Body

FieldTypeRequiredDescription
name"folders" | "filmstrip" | "sidebar" | "histogram" | "viewer" | "develop" | "scopes" | "map"yesThe panel: folders, filmstrip, sidebar, histogram, viewer, develop, scopes, map
curl -X POST http://127.0.0.1:9100/api/ui/panels/focus \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"folders"}'

Responses

  • 200 — The panel is shown and in front
  • 400 — No panel by that name

POST /api/ui/panels/pop-out

Pop out panel

Body

FieldTypeRequiredDescription
name"folders" | "filmstrip" | "sidebar" | "histogram" | "viewer" | "develop" | "scopes" | "map"yesThe panel: folders, filmstrip, sidebar, histogram, viewer, develop, scopes, map
poppedbooleanyesTrue: a window of its own; false: docked again.
curl -X POST http://127.0.0.1:9100/api/ui/panels/pop-out \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"folders","popped":true}'

Responses

  • 200 — The panel in a window of its own, or docked
  • 400 — Not a panel that pops out

POST /api/ui/presentation

Presentation mode

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/presentation \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Presentation mode set

POST /api/ui/preview-window

Preview window

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/preview-window \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Preview window opened or closed

POST /api/ui/recording

Start recording the window

Body

FieldTypeRequiredDescription
dirstringyesA path. In an instance started with `--dir` it is in the instance's root: `/` is the root, and a path that leads out of it is refused (403).
fpsnumberFrames a second, 1–60 (30 if left out).
curl -X POST http://127.0.0.1:9100/api/ui/recording \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"dir":"text"}'

Responses

  • 200 — Recording: the main window is written as one JPEG per frame into the folder until DELETE /api/ui/recording
  • 400 — A recording is already running, the folder holds frames, or fps is outside 1–60

DELETE /api/ui/recording

Stop recording the window

curl -X DELETE http://127.0.0.1:9100/api/ui/recording \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — Stopped, with every frame on disk and frames.txt written
  • 400 — No recording is running

POST /api/ui/scopes

Scopes

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/scopes \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Scopes panel visibility set

POST /api/ui/screenshot

Screenshot of a window

Body

FieldTypeRequiredDescription
panel"folders" | "filmstrip" | "sidebar" | "histogram" | "viewer" | "develop" | "scopes" | "map"The panel: folders, filmstrip, sidebar, histogram, viewer, develop, scopes, map
pathstringyesA path. In an instance started with `--dir` it is in the instance's root: `/` is the root, and a path that leads out of it is refused (403).
window"main"yesThe window: main
curl -X POST http://127.0.0.1:9100/api/ui/screenshot \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"window":"main","path":"text"}'

Responses

  • 200 — Screenshot requested; the PNG appears after the window's next frame

POST /api/ui/shadow-detail

Shadow detail

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/shadow-detail \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Shadow detail overlay set

POST /api/ui/sidebar

Sidebar

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/sidebar \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Sidebar visibility set

GET /api/ui/state

What is shown

curl -X GET http://127.0.0.1:9100/api/ui/state \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — Current UI state

POST /api/ui/window

Arrange window

Body

FieldTypeRequiredDescription
arrange"tile_left" | "tile_right" | "fill" | "center"yesThe window arrangement: tile_left, tile_right, fill, center
displaynumberA display's id (GET /api/ui/displays); left out, the one the window is on.
sizenumber[]The window's inner size in points, `[width, height]`, set before it is placed (a recording at a video's shape). Left out, `center` keeps the size and the others fill their part of the display.
curl -X POST http://127.0.0.1:9100/api/ui/window \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"arrange":"tile_left"}'

Responses

  • 200 — The main window placed, as Tile Left/Right, Fill Screen, Center Window and Move to Display do
  • 400 — No such display

GET /api/ui/workspaces

Workspaces

curl -X GET http://127.0.0.1:9100/api/ui/workspaces \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — The built-in and the saved workspaces

POST /api/ui/workspaces

Save workspace

Body

FieldTypeRequiredDescription
namestringyes
curl -X POST http://127.0.0.1:9100/api/ui/workspaces \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"text"}'

Responses

  • 200 — The panel layout as it is, saved under the name (Save Workspace…); one by that name is replaced
  • 400 — No name, or a built-in one

DELETE /api/ui/workspaces/{name}

Delete workspace

ParameterInTypeDescription
namepathstringA saved workspace
curl -X DELETE http://127.0.0.1:9100/api/ui/workspaces/<name> \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — Deleted
  • 404 — No saved workspace by that name

POST /api/ui/workspaces/apply

Workspace

Body

FieldTypeRequiredDescription
namestringyes
curl -X POST http://127.0.0.1:9100/api/ui/workspaces/apply \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"text"}'

Responses

  • 200 — The panels laid out as the workspace
  • 404 — No workspace by that name

POST /api/ui/zebra

Zebra stripes

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/zebra \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Zebra overlay set

POST /api/ui/zoom

Zoom

Body

FieldTypeRequiredDescription
enabledbooleanyes
curl -X POST http://127.0.0.1:9100/api/ui/zoom \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Responses

  • 200 — Zoomed to the level a click on the picture goes to (true; `zoom_click_level` in the settings) or fit to the window (false), as the Z key does

GET /api/video

Video

curl -X GET http://127.0.0.1:9100/api/video \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — The video on screen: playing, position, duration, sound (#574)
  • 400 — The picture on screen is not a video, or videos do not play here

POST /api/video

Play video

Body

FieldTypeRequiredDescription
mutedbooleanSound off (true) or on (false).
playingbooleanPlay (true) or pause (false).
positionnumberSeek to this many seconds from the start.
curl -X POST http://127.0.0.1:9100/api/video \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"muted":true,"playing":true,"position":0}'

Responses

  • 200 — The video on screen, changed: play or pause, seek, sound on or off
  • 400 — The picture on screen is not a video, or videos do not play here

POST /api/view-mode

View mode

Body

FieldTypeRequiredDescription
mode"develop" | "grid" | "library" | "compare" | "survey" | "raw_steps"yesThe view mode: develop, grid, library, compare, survey, raw_steps
curl -X POST http://127.0.0.1:9100/api/view-mode \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"develop"}'

Responses

  • 200 — View mode changed
  • 400 — Invalid view mode

GET /api/view/steps

Step times

curl -X GET http://127.0.0.1:9100/api/view/steps \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — How long the last steps took to put their pictures on screen, and the RAW spool pace

GET /api/zoom

Zoom

curl -X GET http://127.0.0.1:9100/api/zoom \
  -H "Authorization: Bearer $CULLING_API_TOKEN"

Responses

  • 200 — Current zoom state

POST /api/zoom

Zoom level

Body

FieldTypeRequiredDescription
centernumber[]The point to put in the middle of the view, as [x, y] in 0..1 of the upright picture (the frame masks and the focus box use), as dragging the picture does. Only with a zoom level: at fit the whole picture shows. Without it, the point in the middle stays where it was.
fit_mode"fit_screen" | "one_to_one" | "custom"The fit mode: fit_screen, one_to_one, custom
levelnumberZoom level in screen pixels per picture pixel (0.05 to 20.0; 1.0 = 100 %). If omitted, fit_mode is used alone. Like a level chosen in the info bar, it is also what a click on the picture and Z zoom to from then on (`zoom_click_level` in the settings); `fit_mode` alone does not change that.
curl -X POST http://127.0.0.1:9100/api/zoom \
  -H "Authorization: Bearer $CULLING_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"center":[0],"fit_mode":"fit_screen","level":0}'

Responses

  • 200 — Zoom updated
  • 400 — Invalid zoom parameters
esc
    ↑↓ naviguer↵ ouvrir