---
title: "CreateFOTAJob"
method: POST
path: "/fota-jobs"
tags: ["FOTA Jobs"]
---

# CreateFOTAJob

`POST /fota-jobs`

## Request body

- union
  - CreateJobInputTags
    - `bundleId` union, required — A unique id created by the server when the firmware was uploaded (concatenation of firmware type, random string, and firmware version).
      - string — Unique bundle identifier
      - string — Universally unique identifier
    - `autoApply` boolean — If set to false the job will not be applied immediately, but instead will be left in the "CREATED" status. The job can later be applied using POST /fota-jobs/{jobId}/apply
    - `name` string — Friendly name for this job
    - `description` string — Short description for this job
    - `tags` DeviceTag[], required — A list of tags to apply the device to
  - union
    - object
      - `bundleId` union, required
        - string — Unique bundle identifier
        - string — Universally unique identifier
      - `autoApply` boolean — If set to false the job will not be applied immediately, but instead will be left in the "CREATED" status. The job can later be applied using POST /fota-jobs/{jobId}/apply
      - `name` string — Friendly name for this job
      - `description` string — Short description for this job
      - `tags` DeviceTag[], required — A list of tags to apply the device to
      - `deviceIds` DeviceId[], required — A list of device identifiers assigned to this job.
    - object
      - `bundleId` union, required
        - string — Unique bundle identifier
        - string — Universally unique identifier
      - `autoApply` boolean — If set to false the job will not be applied immediately, but instead will be left in the "CREATED" status. The job can later be applied using POST /fota-jobs/{jobId}/apply
      - `name` string — Friendly name for this job
      - `description` string — Short description for this job
      - `tags` DeviceTag[], required — A list of tags to apply the device to
      - `deviceIdentifiers` DeviceId[], required — A list of device identifiers assigned to this job.
  - union
    - CreateJobInputDeviceIds
      - `bundleId` union, required — A unique id created by the server when the firmware was uploaded (concatenation of firmware type, random string, and firmware version).
        - string — Unique bundle identifier
        - string — Universally unique identifier
      - `autoApply` boolean — If set to false the job will not be applied immediately, but instead will be left in the "CREATED" status. The job can later be applied using POST /fota-jobs/{jobId}/apply
      - `name` string — Friendly name for this job
      - `description` string — Short description for this job
      - `deviceIds` DeviceId[], required — A list of device identifiers assigned to this job.
    - CreateJobInputDeviceIdentifiers
      - `bundleId` union, required — A unique id created by the server when the firmware was uploaded (concatenation of firmware type, random string, and firmware version).
        - string — Unique bundle identifier
        - string — Universally unique identifier
      - `autoApply` boolean — If set to false the job will not be applied immediately, but instead will be left in the "CREATED" status. The job can later be applied using POST /fota-jobs/{jobId}/apply
      - `name` string — Friendly name for this job
      - `description` string — Short description for this job
      - `deviceIdentifiers` DeviceId[], required — A list of device identifiers assigned to this job.
  - CreateJobInputCriteria
    - `bundleId` union, required — A unique id created by the server when the firmware was uploaded (concatenation of firmware type, random string, and firmware version).
      - string — Unique bundle identifier
      - string — Universally unique identifier
    - `autoApply` boolean — If set to false the job will not be applied immediately, but instead will be left in the "CREATED" status. The job can later be applied using POST /fota-jobs/{jobId}/apply
    - `name` string — Friendly name for this job
    - `description` string — Short description for this job
    - `tags` DeviceTag[] — A list of valid tags in which a device must contain one of for it to be eligible for this job.
    - `deviceIds` DeviceId[] — List of valid device identifiers for this job.
    - `firmwareType` string — Currently not supported. Firmware type a device must support for it to be eligible for this job.
    - `firmwareVersions` FirmwareVersion[] — Currently not supported. A list of firmware versions for the given firmware type that a device must have for it to be eligible for this job.
    - `deviceIdentifiers` DeviceId[] — A list of device identifiers assigned to this job. Deprecated. Use deviceIds instead.
    - `schedule` JobSchedule
      - `startJobAtEpochMs` number, double — Determine the date when the job should automatically start. Number of milliseconds for this date since the UNIX epoch.
      - `lockTargetListAtEpochMs` number, double — Determine the date in which the target list should automatically be set to LOCKED. Number of milliseconds for this date since the UNIX epoch.
    - `targetListType` string — Currently not supported. Determine whether a target list is LOCKED or UNLOCKED. An UNLOCKED target list allows devices that are newly eligible for the job (based on target criteria) to receive an execution. A LOCKED target prevents devices that are newly eligible to receive an execution.

## Response `201`

- object
  - `jobId` string, required — Universally unique identifier

---

[API](https://skmtc.dev/nrfcloud/apis/nrf-cloud-rest-api.md) · [All operations](https://skmtc.dev/nrfcloud/apis/nrf-cloud-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nrfcloud/nrf-cloud-rest-api/revisions/c4e56e458ebf/schema)
