---
title: "Create Mission Template"
method: POST
path: "/v0/mission/template"
tags: ["Missions"]
---

# Create Mission Template

`POST /v0/mission/template`

Create a new mission template.

## Request body

- object — Arguments to the POST /mission/template endpoint
  - `auto_start` boolean
  - `custom_video_bitrate` number — Custom video bitrate in MB/s
  - `dock_mission` boolean
  - `failed_flight_direct_rtd` boolean
  - `name` string, required
  - `photo_interval_settings` object — Photo settings to apply if recording_mode is set to a photo mode
    - `custom_photo_quality` number — Determines quality/size of photos. 100 is no compression, 0 is maximum compression.
    - `custom_shutter_speed` 'AUTO' | '1/24' | '1/30' | '1/48' | '1/60' | '1/96' | '1/120' | '1/240' | '1/480' | '1/960' | '1/1920' | '1/3840' | '1/7680' — Shutter speed expressed as a fraction of a second. A faster shutter speed will reduce blurring of images taken while flying quickly but may also decrease image quality.
    - `time_interval` number — Time between photos, in seconds
  - `recording_mode` 'VIDEO_1080P_30FPS' | 'VIDEO_1080P_FULL_30FPS' | 'VIDEO_4K_30FPS' | 'VIDEO_4K_60FPS_HDR' | 'VIDEO_DEFAULT' | 'PHOTO_HDR' | 'PHOTO_DEFAULT'
  - `return_settings` object
    - `height_behavior` 'ABSOLUTE' | 'RELATIVE' — If mission_interrupted_return_type is 'UP_AND_OVER' setting this to 'ABSOLUTE' means the return_height is measured in feet above the Launch Point. Setting this to 'RELATIVE' means the return_height is measured in feet relative to the last waypoint.
    - `lost_connection_wait_time_seconds` number — Amount of time in seconds that the vehicle should wait, allowing time to reconnect, before it initiates a return flight.
    - `mission_completed_return_type` 'DIRECT' — If included will execute a direct linear return at the end of a successful mission. Requires direct line of sight between last waypoint and dock. If left blank will default to the mission_interrupted_return_type
    - `mission_interrupted_return_type` 'BACKTRACK' | 'UP_AND_OVER' — UP_AND_OVER will fly from the last waypoint to the dock at the specified return_height. BACKTRACK returns to dock using the shortest known path
    - `return_height` number — If mission_interrupted_return_type is "UP_AND_OVER", the vehicle will return to the dock at this height.
    - `speed` number — Speed in m/s
  - `waypoints` object[], required
    - `action` 'PHOTO' | 'PANORAMA'
    - `name` string
    - `orientation` object, required
      - `gimbal_pitch_degrees` number, required
      - `heading_degrees` number, required
    - `position` union, required — Use Option 1 for missions referencing the takeoff location for waypoint position; use Option 2 for missions referencing waypoint GNSS coordinates.
      - object
        - `frame` 'NAV', required — The reference frame for this waypoint's coordinates. The origin of the NAV frame is the vehicle's location at startup.
        - `latitude` number — Latitude in degrees. This value should only be provided if the frame is `'GPS'`.
        - `longitude` number — Longitude in degrees. This value should only be provided if the frame is `'GPS'`.
        - `x` number, required — X-coordinate of the vehicle position in meters. This value should only be provided if the frame is `'NAV'`.
        - `y` number, required — Y-coordinate of the vehicle position in meters. This value should only be provided if the frame is `'NAV'`.
        - `z` number, required — Z-coordinate of the vehicle position in feet if `frame` or `z_frame` is `'NAV'`, or altitude if `frame` or `z_frame` is `'GPS'`. Since GPS altitude tends to be unreliable, `z` should almost always be provided in the NAV frame. See `z_frame` below for specifying this when X/Y coordinates are GPS-based.
        - `z_frame` 'NAV' | 'GPS' — If provided, this will override the frame type for just the z coordinate. `z_frame` should usually be specified as `'NAV'` if `frame` is `'GPS'`.
      - object
        - `frame` 'GPS', required — The reference frame for this waypoint's coordinates. The origin of the NAV frame is the vehicle's location at startup.
        - `latitude` number, required — Latitude in degrees. This value should only be provided if the frame is `'GPS'`.
        - `longitude` number, required — Longitude in degrees. This value should only be provided if the frame is `'GPS'`.
        - `x` number — X-coordinate of the vehicle position in meters. This value should only be provided if the frame is `'NAV'`.
        - `y` number — Y-coordinate of the vehicle position in meters. This value should only be provided if the frame is `'NAV'`.
        - `z` number, required — Z-coordinate of the vehicle position in feet if `frame` or `z_frame` is `'NAV'`, or altitude if `frame` or `z_frame` is `'GPS'`. Since GPS altitude tends to be unreliable, `z` should almost always be provided in the NAV frame. See `z_frame` below for specifying this when X/Y coordinates are GPS-based.
        - `z_frame` 'NAV' | 'GPS' — If provided, this will override the frame type for just the z coordinate. `z_frame` should usually be specified as `'NAV'` if `frame` is `'GPS'`.
    - `record_action` 'START' | 'STOP' | 'CONTINUE' — Controls media recording of the vehicle. At the start of a mission recording is on. Use a "STOP" action to turn it off. Use "START" to turn it back on afterwards. "CONTINUE" does not change the state.
    - `transit_orientation` object
      - `gimbal_pitch_degrees` number, required
      - `heading_degrees` number, required
    - `transit_speed` number — The speed at which the vehicle will move to this waypoint, in meters per second.
    - `wait_time_seconds` number

## Response `200`

Mission template returned from GET, PATCH, or POST /mission/template endpoints

- object
  - `data` object, required — Mission template returned from GET, PATCH, or POST /mission/template endpoints
    - `mission_template` object, required
      - `auto_start` boolean
      - `custom_video_bitrate` number — Custom video bitrate in MB/s
      - `dock_mission` boolean
      - `estimated_duration` number — Estimated duration of mission in seconds
      - `failed_flight_direct_rtd` boolean
      - `name` string, required
      - `num_waypoints` integer
      - `photo_interval_settings` object — Photo settings to apply if recording_mode is set to a photo mode
        - `custom_photo_quality` number — Determines quality/size of photos. 100 is no compression, 0 is maximum compression.
        - `custom_shutter_speed` 'AUTO' | '1/24' | '1/30' | '1/48' | '1/60' | '1/96' | '1/120' | '1/240' | '1/480' | '1/960' | '1/1920' | '1/3840' | '1/7680' — Shutter speed expressed as a fraction of a second. A faster shutter speed will reduce blurring of images taken while flying quickly but may also decrease image quality.
        - `time_interval` number — Time between photos, in seconds
      - `recording_mode` 'VIDEO_1080P_30FPS' | 'VIDEO_1080P_FULL_30FPS' | 'VIDEO_4K_30FPS' | 'VIDEO_4K_60FPS_HDR' | 'VIDEO_DEFAULT' | 'PHOTO_HDR' | 'PHOTO_DEFAULT'
      - `return_settings` object
        - `height_behavior` 'ABSOLUTE' | 'RELATIVE' — If mission_interrupted_return_type is 'UP_AND_OVER' setting this to 'ABSOLUTE' means the return_height is measured in feet above the Launch Point. Setting this to 'RELATIVE' means the return_height is measured in feet relative to the last waypoint.
        - `lost_connection_wait_time_seconds` number — Amount of time in seconds that the vehicle should wait, allowing time to reconnect, before it initiates a return flight.
        - `mission_completed_return_type` 'DIRECT' — If included will execute a direct linear return at the end of a successful mission. Requires direct line of sight between last waypoint and dock. If left blank will default to the mission_interrupted_return_type
        - `mission_interrupted_return_type` 'BACKTRACK' | 'UP_AND_OVER' — UP_AND_OVER will fly from the last waypoint to the dock at the specified return_height. BACKTRACK returns to dock using the shortest known path
        - `return_height` number — If mission_interrupted_return_type is "UP_AND_OVER", the vehicle will return to the dock at this height.
        - `speed` number — Speed in m/s
      - `updated` string, date-time, required
      - `uuid` string, uuid, required
      - `waypoints` object[], required
        - `action` 'PHOTO' | 'PANORAMA'
        - `name` string
        - `orientation` object, required
          - `gimbal_pitch_degrees` number, required
          - `heading_degrees` number, required
        - `position` union, required — Use Option 1 for missions referencing the takeoff location for waypoint position; use Option 2 for missions referencing waypoint GNSS coordinates.
          - object
            - `frame` 'NAV', required — The reference frame for this waypoint's coordinates. The origin of the NAV frame is the vehicle's location at startup.
            - `latitude` number — Latitude in degrees. This value should only be provided if the frame is `'GPS'`.
            - `longitude` number — Longitude in degrees. This value should only be provided if the frame is `'GPS'`.
            - `x` number, required — X-coordinate of the vehicle position in meters. This value should only be provided if the frame is `'NAV'`.
            - `y` number, required — Y-coordinate of the vehicle position in meters. This value should only be provided if the frame is `'NAV'`.
            - `z` number, required — Z-coordinate of the vehicle position in feet if `frame` or `z_frame` is `'NAV'`, or altitude if `frame` or `z_frame` is `'GPS'`. Since GPS altitude tends to be unreliable, `z` should almost always be provided in the NAV frame. See `z_frame` below for specifying this when X/Y coordinates are GPS-based.
            - `z_frame` 'NAV' | 'GPS' — If provided, this will override the frame type for just the z coordinate. `z_frame` should usually be specified as `'NAV'` if `frame` is `'GPS'`.
          - object
            - `frame` 'GPS', required — The reference frame for this waypoint's coordinates. The origin of the NAV frame is the vehicle's location at startup.
            - `latitude` number, required — Latitude in degrees. This value should only be provided if the frame is `'GPS'`.
            - `longitude` number, required — Longitude in degrees. This value should only be provided if the frame is `'GPS'`.
            - `x` number — X-coordinate of the vehicle position in meters. This value should only be provided if the frame is `'NAV'`.
            - `y` number — Y-coordinate of the vehicle position in meters. This value should only be provided if the frame is `'NAV'`.
            - `z` number, required — Z-coordinate of the vehicle position in feet if `frame` or `z_frame` is `'NAV'`, or altitude if `frame` or `z_frame` is `'GPS'`. Since GPS altitude tends to be unreliable, `z` should almost always be provided in the NAV frame. See `z_frame` below for specifying this when X/Y coordinates are GPS-based.
            - `z_frame` 'NAV' | 'GPS' — If provided, this will override the frame type for just the z coordinate. `z_frame` should usually be specified as `'NAV'` if `frame` is `'GPS'`.
        - `record_action` 'START' | 'STOP' | 'CONTINUE' — Controls media recording of the vehicle. At the start of a mission recording is on. Use a "STOP" action to turn it off. Use "START" to turn it back on afterwards. "CONTINUE" does not change the state.
        - `transit_orientation` object
          - `gimbal_pitch_degrees` number, required
          - `heading_degrees` number, required
        - `transit_speed` number — The speed at which the vehicle will move to this waypoint, in meters per second.
        - `uuid` string, uuid
        - `wait_time_seconds` number
  - `error_message` string
  - `meta` object, required
    - `time` number
  - `skydio_error_code` integer, required
  - `status_code` integer, required

## Other responses

- `400` — Caller provided invalid arguments. Ensure correct syntax of request body.
- `403` — Caller is not authorized to make this request.
- `404` — Not Found

---

[API](https://skmtc.net/skydio/apis/skydio-cloud-api.md) · [All operations](https://skmtc.net/skydio/apis/skydio-cloud-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skydio/skydio-cloud-api/revisions/0f746b116483/schema)
