Skip to content

File Transfer

See the auto-generated API reference for full request/response schemas.

GET /api/cameras/{cameraId}/sd-card/slot/{slotNumber}/files — list files on SD card slot 1 or 2.

Terminal window
curl http://localhost:8080/api/cameras/D10F60149B0C/sd-card/slot/1/files

POST /api/cameras/{cameraId}/sd-card/slot/{slotNumber}/files/{contentId}/{fileId}/download — download a specific file from the SD card to the host PC. Optional body save_path overrides the server default.

Terminal window
curl -X POST http://localhost:8080/api/cameras/D10F60149B0C/sd-card/slot/1/files/12345/67890/download \
-H "Content-Type: application/json" \
-d '{"save_path": "/Users/me/Photos"}'

Listen for transferProgress SSE events to track download progress in remote-transfer mode. Match the event’s contentId / fileId against the ones you requested to identify which pull completed.

The SDK permits a single RemoteTransfer operation at a time. A download, thumbnail or screennail request issued while another is still in flight is rejected with:

HTTP 409
{
"success": false,
"retryable": true,
"message": "A transfer is already in progress on this camera, so the file download was not started. This is transient — retry once the current transfer completes (watch for a transferProgress event). SDK error 0x00008D03."
}

This is transient, not a failure of the requested file: wait for the in-flight transfer’s transferProgress event and retry. A 400 with 0x00008D02 is the different case — the file identifiers are not valid for the current connection mode.


POST /api/cameras/{cameraId}/sd-card/slot/{slotNumber}/files/{contentId}/{fileId}/thumbnail — download a compressed JPEG thumbnail (~50-60 KB) for fast preview or ML evaluation. Much faster than pulling the full file. Returns HTTP 202 and delivers completion via SSE.

Terminal window
curl -X POST http://localhost:8080/api/cameras/D10F60149B0C/sd-card/slot/1/files/12345/67890/thumbnail \
-H "Content-Type: application/json" \
-d '{"save_path": "/Users/me/thumbnails"}'

POST /api/cameras/{cameraId}/sd-card/slot/{slotNumber}/files/{contentId}/{fileId}/screennail — medium-resolution JPEG preview (~250-300 KB). Higher quality than thumbnail, still much smaller than the full file. Returns HTTP 202.

Terminal window
curl -X POST http://localhost:8080/api/cameras/D10F60149B0C/sd-card/slot/1/files/12345/67890/screennail \
-H "Content-Type: application/json" \
-d '{"save_path": "/Users/me/previews"}'

Configure where auto-transferred images are saved on the host PC.

  • GET /api/cameras/{cameraId}/settings/save-info — read current path / prefix / startNo
  • PUT /api/cameras/{cameraId}/settings/save-info — update values
Terminal window
curl -X PUT http://localhost:8080/api/cameras/D10F60149B0C/settings/save-info \
-H "Content-Type: application/json" \
-d '{"path": "/Users/me/Photos", "prefix": "SHOOT", "startNo": 1}'