---
title: "POST /exports"
method: POST
path: "/exports"
tags: ["Exports"]
---

# POST /exports

`POST /exports`

Creates and starts a new video export job

## Request body

- union
  - BundleExportDetails
    - `deviceId` string, required — The ID of the device
    - `type` 'bundle', required — Type of export to make. Should be one of: video, timeLapse, bundle, or videoSummary. Where: * video: Export the full video interval(s) between the given times to mp4. * timeLapse: Export the preview video as a time lapse video to mp4. * bundle: combination of video and timeLapse. * videoSummary: Export a condensed video from preview images (max 3 per event) around selected events (motion, person detection, etc.).
    - `autoDelete` boolean — If true the export is placed into the read-only "downloads" folder of archive, and will be removed after 2 weeks. Else the export is placed in archive with the end user having full control over it.
    - `skipSyncToCloud` boolean — If true: the job will not try to sync any data to the cloud, instead the export will only contain the data that is currently in the cloud. The missing parts can be found in the field: `detailedState.intervals.missingIntervals`.
    - `period` object, required — Period for which to make the export. For video, timeLapse, and bundle exports: the duration can't exceed 8 hours. For videoSummary exports: the duration can span up to the camera's retention period. If `endTimestamp` is not given, the current time will be used.
      - `startTimestamp` string, date-time, required — Where to start the export.
      - `endTimestamp` string, date-time — Where to stop the export.
    - `osd` object — If included the timestamp of each frame is super imposed in the export.
      - `timeZone` string, required — Timezone used to render the timestamps
    - `info` object, required
      - `name` string, required — Name of the export.
      - `directory` string, required — Destination path in archive to be used to save the generated files into.
      - `notes` string — The description that is added to the file/folder in archive
      - `tags` string[]
    - `playbackMultiplier` integer, required — Playback multiplier used to create the time lapse video
  - TimeLapseExportDetails
    - `deviceId` string, required — The ID of the device
    - `type` 'timeLapse', required — Type of export to make. Should be one of: video, timeLapse, bundle, or videoSummary. Where: * video: Export the full video interval(s) between the given times to mp4. * timeLapse: Export the preview video as a time lapse video to mp4. * bundle: combination of video and timeLapse. * videoSummary: Export a condensed video from preview images (max 3 per event) around selected events (motion, person detection, etc.).
    - `autoDelete` boolean — If true the export is placed into the read-only "downloads" folder of archive, and will be removed after 2 weeks. Else the export is placed in archive with the end user having full control over it.
    - `skipSyncToCloud` boolean — If true: the job will not try to sync any data to the cloud, instead the export will only contain the data that is currently in the cloud. The missing parts can be found in the field: `detailedState.intervals.missingIntervals`.
    - `period` object, required — Period for which to make the export. For video, timeLapse, and bundle exports: the duration can't exceed 8 hours. For videoSummary exports: the duration can span up to the camera's retention period. If `endTimestamp` is not given, the current time will be used.
      - `startTimestamp` string, date-time, required — Where to start the export.
      - `endTimestamp` string, date-time — Where to stop the export.
    - `osd` object — If included the timestamp of each frame is super imposed in the export.
      - `timeZone` string, required — Timezone used to render the timestamps
    - `info` object, required
      - `name` string, required — Name of the export.
      - `directory` string, required — Destination path in archive to be used to save the generated files into.
      - `notes` string — The description that is added to the file/folder in archive
      - `tags` string[]
    - `playbackMultiplier` integer, required — Playback multiplier used to create the time lapse video
  - VideoExportDetails
    - `deviceId` string, required — The ID of the device
    - `type` 'video', required — Type of export to make. Should be one of: video, timeLapse, bundle, or videoSummary. Where: * video: Export the full video interval(s) between the given times to mp4. * timeLapse: Export the preview video as a time lapse video to mp4. * bundle: combination of video and timeLapse. * videoSummary: Export a condensed video from preview images (max 3 per event) around selected events (motion, person detection, etc.).
    - `autoDelete` boolean — If true the export is placed into the read-only "downloads" folder of archive, and will be removed after 2 weeks. Else the export is placed in archive with the end user having full control over it.
    - `skipSyncToCloud` boolean — If true: the job will not try to sync any data to the cloud, instead the export will only contain the data that is currently in the cloud. The missing parts can be found in the field: `detailedState.intervals.missingIntervals`.
    - `period` object, required — Period for which to make the export. For video, timeLapse, and bundle exports: the duration can't exceed 8 hours. For videoSummary exports: the duration can span up to the camera's retention period. If `endTimestamp` is not given, the current time will be used.
      - `startTimestamp` string, date-time, required — Where to start the export.
      - `endTimestamp` string, date-time — Where to stop the export.
    - `osd` object — If included the timestamp of each frame is super imposed in the export.
      - `timeZone` string, required — Timezone used to render the timestamps
    - `info` object, required
      - `name` string, required — Name of the export.
      - `directory` string, required — Destination path in archive to be used to save the generated files into.
      - `notes` string — The description that is added to the file/folder in archive
      - `tags` string[]
  - VideoSummaryExportDetails
    - `deviceId` string, required — The ID of the device
    - `type` 'videoSummary', required — Type of export to make. Should be one of: video, timeLapse, bundle, or videoSummary. Where: * video: Export the full video interval(s) between the given times to mp4. * timeLapse: Export the preview video as a time lapse video to mp4. * bundle: combination of video and timeLapse. * videoSummary: Export a condensed video from preview images (max 3 per event) around selected events (motion, person detection, etc.).
    - `autoDelete` boolean — If true the export is placed into the read-only "downloads" folder of archive, and will be removed after 2 weeks. Else the export is placed in archive with the end user having full control over it.
    - `skipSyncToCloud` boolean — If true: the job will not try to sync any data to the cloud, instead the export will only contain the data that is currently in the cloud. The missing parts can be found in the field: `detailedState.intervals.missingIntervals`.
    - `period` object, required — Period for which to make the export. For video, timeLapse, and bundle exports: the duration can't exceed 8 hours. For videoSummary exports: the duration can span up to the camera's retention period. If `endTimestamp` is not given, the current time will be used.
      - `startTimestamp` string, date-time, required — Where to start the export.
      - `endTimestamp` string, date-time — Where to stop the export.
    - `osd` object — If included the timestamp of each frame is super imposed in the export.
      - `timeZone` string, required — Timezone used to render the timestamps
    - `info` object, required
      - `name` string, required — Name of the export.
      - `directory` string, required — Destination path in archive to be used to save the generated files into.
      - `notes` string — The description that is added to the file/folder in archive
      - `tags` string[]
    - `maxDurationSeconds` integer, required — Maximum duration of the summary video in seconds. The system will prioritize and select events to fit within this duration. Recommended presets: 30, 60, 120, 300, 600 seconds.
    - `eventTypes` string[], required — List of event type IDs to include in the summary. Must specify at least one event type. Available event types should be retrieved from the /events endpoint schema. Examples: "een.motionDetectionEvent.v1", "een.personDetectionEvent.v1", "een.lineCrossingEvent.v1"

## Response `201`

Created

- ApiCreateExportResponse
  - `id` string, uuid, required — ID of the export job. This should be used with the jobs api to keep track of the state of the export job.

## Other responses

- `400` — The supplied object is invalid. Error detail will contain the validation error.
- `401` — You are not authenticated. Please authenticate and try again.
- `403` — You have no permission to access the specified resource.
- `404` — Referenced resource could not be found.
- `500` — Something went wrong in the server. Please try again.

---

[API](https://skmtc.net/eagleeyenetworks/apis/devices.md) · [All operations](https://skmtc.net/eagleeyenetworks/apis/devices/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/eagleeyenetworks/devices/revisions/df57313de545/schema)
