Skip to main content
Shooting, focus, zoom, and movie-record commands. All actions require the camera to be connected and priority-key set to pc-remote. See the auto-generated API reference for full request/response schemas.

Shutter

POST /api/cameras/{cameraId}/actions/shutter — take a single photo, or control continuous shooting with {"action": "down"} / {"action": "up"}.
curl -X POST http://localhost:8080/api/cameras/D10F60149B0C/actions/shutter
For continuous shooting, set drive mode to a continuous mode first (e.g. Continuous Hi).

Half-Press (Focus Lock)

POST /api/cameras/{cameraId}/actions/half-press — half-press the shutter button to lock autofocus (S1 press). No body required.
curl -X POST http://localhost:8080/api/cameras/D10F60149B0C/actions/half-press

AF + Shutter

POST /api/cameras/{cameraId}/actions/af-shutter — autofocus then immediately capture in one operation. No body required.
curl -X POST http://localhost:8080/api/cameras/D10F60149B0C/actions/af-shutter

Zoom

POST /api/cameras/{cameraId}/actions/zoom — control power zoom lenses. Requires a power zoom lens to be attached. Body: direction (in or out), speed (normal or fast).
curl -X POST http://localhost:8080/api/cameras/D10F60149B0C/actions/zoom \
  -H "Content-Type: application/json" \
  -d '{"direction": "in", "speed": "normal"}'

Focus Near/Far

POST /api/cameras/{cameraId}/actions/focus-near-far — move focus in discrete steps. Range: -7 (near, max speed) to +7 (far, max speed). Magnitude controls speed. 0 is not valid.
curl -X POST http://localhost:8080/api/cameras/D10F60149B0C/actions/focus-near-far \
  -H "Content-Type: application/json" \
  -d '{"step": -1}'
For absolute focus positioning, use PUT /api/cameras/{id}/properties/focus-position with a value from 0 (infinity) to 65535 (closest).

Movie Recording

POST /api/cameras/{cameraId}/actions/movie-rec — start or stop video recording. This is a toggle action — call once to start recording, call again to stop. Uses the SDK’s hold-style command (Down to start, Up to stop). Monitor recording state via the recording-state property or propertyChanged SSE events.
curl -X POST http://localhost:8080/api/cameras/D10F60149B0C/actions/movie-rec
Ensure the camera is in a video-capable exposure mode (e.g. Movie mode 0x80500x8055) before triggering. Check recording-state to confirm the current state.
For typed action helpers, use the SDK pages: TypeScript, Python, or Swift.