---
title: "Create Mission Template V1"
method: POST
path: "/v1/mission_document/template"
tags: ["oyuk2ny7392o85u5"]
---

# Create Mission Template V1

`POST /v1/mission_document/template`

## Request

- Base URL: `https://api.skydio.com/api`
- URL: `https://api.skydio.com/api/v1/mission_document/template`
- Auth: API key in header `Authorization`

Create a new Mission Template.

## Request body

- object: Mission Template to be created
  - `missionTemplate` Mission, required: A prescribed list of actions to execute.
    - `actions` SkillsAction[], required: List of actions to be executed. The top-level action must be a single-element array with a sequence action named 'root_sequence'.
      - `actionKey` 'Sequence' | 'StopVideo' | 'SwitchRecordingMode' | 'GotoWaypoint' | 'SetObstacleAvoidance' | 'StartVideo' | 'SurfaceScanSkill' | 'TakePanorama' | 'TakePhoto' | 'TimedWait' | 'TogglePhotoIntervalMode', required: Identifies the type of action the vehicle should execute. Generally, this is a key of the args with the first letter capitalized.
      - `args` SkillsActionArgs, required: Typed arguments passed into the action to initialize it. Interfaces can parse the elements of an ActionArgs type to generate general interface implementations.
        - `isSkippable` boolean: Allow mission runner to move to the next action without completing this action. Currently required for any Photo, Panorama, or Timed Wait actions.
        - `sequence` object, required: Arguments for a sequence of actions. Must be the root-level action of all missions, and if so must be named root_sequence. This is a recursive field that can be specified as deep as you wish, from sequence -> action -> action args -> sequence ...
          - `actions` object[], required: List of actions to be executed in sequence
            - `actionKey` 'Sequence' | 'StopVideo' | 'SwitchRecordingMode' | 'GotoWaypoint' | 'SetObstacleAvoidance' | 'StartVideo' | 'SurfaceScanSkill' | 'TakePanorama' | 'TakePhoto' | 'TimedWait' | 'TogglePhotoIntervalMode', required: Identifies the type of action the vehicle should execute. Generally, this is a key of the args with the first letter capitalized.
            - `args` union, required: Typed arguments passed into the action to initialize it. Interfaces can parse the elements of an ActionArgs type to generate general interface implementations.
              - …
          - `name` 'root_sequence', required: Sequence name
    - `autoStart` true, required: The Mission will automatically start after launch.
    - `autonomousAbortMissionOnFailedAction` boolean: Autonomous abort the mission when an action fails. Autonomous abort still runs the post mission action
    - `disableStrobeLights` boolean: Whether the vehicle should disable strobe lights for the duration of the mission. Strobe lights are only available on Skydio X2 vehicle and enabled by default in DRO flights.
    - `displayName` string, required: Name of the mission
    - `dockMission` true, required: This is a dock mission.
    - `expectedGpsOrigin` SkillsGpsOriginInfo
      - `gpsAltitude` number, required: The altitude of the mission's starting point in meters.
      - `gpsHeading` number: The heading of the mission's starting point in radians.
      - `lat` number, required: The latitude of the mission's starting point.
      - `lon` number, required: The longitude of the mission's starting point.
    - `lostConnectionAction` 'RETURN_TO_HOME' | 'CONTINUE' | 'HOVER', required: Desired lost connection action
    - `navigationModeOverride` 'UNKNOWN' | 'DEFAULT_NAV' | 'TWILIGHT' | 'NIGHT_AUTONOMY': Overrides the navigation mode with the specified setting.
    - `navigationModeOverrideEnabled` boolean: Enable to set a different navigation mode.
    - `postFailureAction` 'LAND_AT_DOCK' | 'DIRECT_RETURN_AND_LAND_AT_DOCK' | 'DEFAULT_RETURN' | 'DIRECT_DEFAULT_RETURN', required: Action to take if mission fails.
    - `postMissionAction` 'LAND_AT_DOCK' | 'DIRECT_RETURN_AND_LAND_AT_DOCK' | 'DEFAULT_RETURN' | 'DIRECT_DEFAULT_RETURN', required: Action to perform after the mission completes.
    - `rtxSettings` FlightDeckReturnSettings, required: Return-to-home settings for the vehicle.
      - `ascendFromCurrentHeight` boolean: If true, the vehicle will ascend the minimum_height above its current height when return starts. Else, the vehicle will ascend to minimum_height above the takeoff point. Note: Regardless of the value of ascend_from_current_height, the vehicle will always ascend to at least the minimum_height above the return target height. If the vehicle is already higher than the minimum_height and ascend_from_current_height is false, it will not descend and maintain its current altitude during the return.
      - `faceForward` boolean: If true, the drone will look toward the return point while returning. Otherwise, will look away. Looking away is default behavior for connectivity reasons.
      - `minimumHeight` number: Minimum height that the drone will return at. If the drone is above this height at the start of return, it will not descend to this height.
      - `speed` number: Speed for return in m/s. Ranges from 1 m/s to maximum vehichle ground speed
      - `useBacktrack` boolean: Allow graph backtracking in return
      - `waitTime` number, required: Amount of time after lost connection after which the vehicle will initiate return.
    - `useRtxSettings` true, required: If true, update current vehicle settings with the specified rtx settings
    - `videoBitrateOverride` integer: Set a custom video bitrate. Has no effect if set to 0.
  - `vehicleContext` object
    - `sensorPackageType` 'V100-L' | 'VT300-L' | 'VT300-Z': Sensor package for the mission
    - `vehicleClass` 'Skydio R1' | 'Skydio 2' | 'Skydio X2' | 'Skydio X10' | 'Skydio R10', required: Vehicle class for the mission

## Response `200`

Mission Template returned from /mission_document/template endpoints

- object
  - `data` Mission, required: A prescribed list of actions to execute.
    - `actions` SkillsAction[], required: List of actions to be executed. The top-level action must be a single-element array with a sequence action named 'root_sequence'.
      - `actionKey` 'Sequence' | 'StopVideo' | 'SwitchRecordingMode' | 'GotoWaypoint' | 'SetObstacleAvoidance' | 'StartVideo' | 'SurfaceScanSkill' | 'TakePanorama' | 'TakePhoto' | 'TimedWait' | 'TogglePhotoIntervalMode', required: Identifies the type of action the vehicle should execute. Generally, this is a key of the args with the first letter capitalized.
      - `args` SkillsActionArgs, required: Typed arguments passed into the action to initialize it. Interfaces can parse the elements of an ActionArgs type to generate general interface implementations.
        - `isSkippable` boolean: Allow mission runner to move to the next action without completing this action. Currently required for any Photo, Panorama, or Timed Wait actions.
        - `sequence` object, required: Arguments for a sequence of actions. Must be the root-level action of all missions, and if so must be named root_sequence. This is a recursive field that can be specified as deep as you wish, from sequence -> action -> action args -> sequence ...
          - `actions` object[], required: List of actions to be executed in sequence
            - `actionKey` 'Sequence' | 'StopVideo' | 'SwitchRecordingMode' | 'GotoWaypoint' | 'SetObstacleAvoidance' | 'StartVideo' | 'SurfaceScanSkill' | 'TakePanorama' | 'TakePhoto' | 'TimedWait' | 'TogglePhotoIntervalMode', required: Identifies the type of action the vehicle should execute. Generally, this is a key of the args with the first letter capitalized.
            - `args` union, required: Typed arguments passed into the action to initialize it. Interfaces can parse the elements of an ActionArgs type to generate general interface implementations.
              - …
          - `name` 'root_sequence', required: Sequence name
    - `autoStart` true, required: The Mission will automatically start after launch.
    - `autonomousAbortMissionOnFailedAction` boolean: Autonomous abort the mission when an action fails. Autonomous abort still runs the post mission action
    - `disableStrobeLights` boolean: Whether the vehicle should disable strobe lights for the duration of the mission. Strobe lights are only available on Skydio X2 vehicle and enabled by default in DRO flights.
    - `displayName` string, required: Name of the mission
    - `dockMission` true, required: This is a dock mission.
    - `expectedGpsOrigin` SkillsGpsOriginInfo
      - `gpsAltitude` number, required: The altitude of the mission's starting point in meters.
      - `gpsHeading` number: The heading of the mission's starting point in radians.
      - `lat` number, required: The latitude of the mission's starting point.
      - `lon` number, required: The longitude of the mission's starting point.
    - `lostConnectionAction` 'RETURN_TO_HOME' | 'CONTINUE' | 'HOVER', required: Desired lost connection action
    - `navigationModeOverride` 'UNKNOWN' | 'DEFAULT_NAV' | 'TWILIGHT' | 'NIGHT_AUTONOMY': Overrides the navigation mode with the specified setting.
    - `navigationModeOverrideEnabled` boolean: Enable to set a different navigation mode.
    - `postFailureAction` 'LAND_AT_DOCK' | 'DIRECT_RETURN_AND_LAND_AT_DOCK' | 'DEFAULT_RETURN' | 'DIRECT_DEFAULT_RETURN', required: Action to take if mission fails.
    - `postMissionAction` 'LAND_AT_DOCK' | 'DIRECT_RETURN_AND_LAND_AT_DOCK' | 'DEFAULT_RETURN' | 'DIRECT_DEFAULT_RETURN', required: Action to perform after the mission completes.
    - `rtxSettings` FlightDeckReturnSettings, required: Return-to-home settings for the vehicle.
      - `ascendFromCurrentHeight` boolean: If true, the vehicle will ascend the minimum_height above its current height when return starts. Else, the vehicle will ascend to minimum_height above the takeoff point. Note: Regardless of the value of ascend_from_current_height, the vehicle will always ascend to at least the minimum_height above the return target height. If the vehicle is already higher than the minimum_height and ascend_from_current_height is false, it will not descend and maintain its current altitude during the return.
      - `faceForward` boolean: If true, the drone will look toward the return point while returning. Otherwise, will look away. Looking away is default behavior for connectivity reasons.
      - `minimumHeight` number: Minimum height that the drone will return at. If the drone is above this height at the start of return, it will not descend to this height.
      - `speed` number: Speed for return in m/s. Ranges from 1 m/s to maximum vehichle ground speed
      - `useBacktrack` boolean: Allow graph backtracking in return
      - `waitTime` number, required: Amount of time after lost connection after which the vehicle will initiate return.
    - `useRtxSettings` true, required: If true, update current vehicle settings with the specified rtx settings
    - `videoBitrateOverride` integer: Set a custom video bitrate. Has no effect if set to 0.
  - `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
- `422`: Mission is not compatible with the vehicle context.

## Changes

- **2026-11-03** `6589167ebe70`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/skydio/apis/skydio-cloud-api/changes/v1/mission_document/template/post.md)

---

[API](https://skmtc.dev/skydio/apis/skydio-cloud-api.md) - [All operations](https://skmtc.dev/skydio/apis/skydio-cloud-api/llms.txt) - [OpenAPI document](https://skmtc.dev/skydio/apis/skydio-cloud-api/revisions/6589167ebe70?raw)
