---
updatedAt: 2025-09-15T08:08:29.000Z
agentTools:
  siteIndex: https://developer.jamf.com/llms.txt
  projectIndex: https://developer.jamf.com/jamf-pro/v11.14.0/llms.txt
---

# Create a Managed Software Update Plan

Creates a Managed Software Update Plan.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Jamf Pro API",
    "termsOfService": "https://www.jamf.com/developer-resources/api-license-agreement",
    "version": "11.14.0"
  },
  "servers": [
    {
      "url": "https://yourServer.jamfcloud.com/api"
    }
  ],
  "x-readme": {
    "samples-languages": [
      "curl",
      "swift",
      "ruby",
      "python"
    ],
    "explorer-enabled": false,
    "proxy-enabled": true
  },
  "security": [
    {
      "Bearer": []
    },
    {
      "ApiClient": []
    },
    {
      "BasicAuth": [
        "/v1/auth/token"
      ]
    }
  ],
  "paths": {
    "/v1/managed-software-updates/plans": {
      "post": {
        "tags": [
          "managed-software-updates"
        ],
        "summary": "Create a Managed Software Update Plan",
        "description": "Creates a Managed Software Update Plan.\n",
        "requestBody": {
          "description": "Managed Software Update Plan to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManagedSoftwareUpdatePlanPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Managed Software Update Plan was created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedSoftwareUpdatePlanPostResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-required-privileges": [
          "Create Managed Software Updates",
          "Read Computers",
          "Read Mobile Devices",
          "Send Computer Remote Command to Download and Install OS X Update",
          "Send Mobile Device Remote Command to Download and Install iOS Update"
        ],
        "x-rate-limit": true
      }
    }
  },
  "components": {
    "schemas": {
      "ApiError": {
        "type": "object",
        "properties": {
          "httpStatus": {
            "type": "integer",
            "description": "HTTP status of the response",
            "example": 400
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiErrorCause"
            }
          }
        }
      },
      "ApiErrorCause": {
        "required": [
          "field"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error-specific code that can be used to identify localization string, etc.",
            "example": "8675309"
          },
          "field": {
            "type": "string",
            "description": "Name of the field that caused the error.",
            "example": "Name"
          },
          "description": {
            "type": "string",
            "description": "A general description of error for troubleshooting/debugging. Generally this text should not be displayed to a user; instead refer to errorCode and it's localized text",
            "example": "I've just picked up a fault in the AE35 unit. It's going to go 100% failure in 72 hours"
          },
          "id": {
            "type": "string",
            "description": "id of object with error. Optional.",
            "nullable": true,
            "example": "3"
          }
        }
      },
      "ManagedSoftwareUpdatePlanPost": {
        "required": [
          "config",
          "devices"
        ],
        "type": "object",
        "properties": {
          "devices": {
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlanDevicePost"
            }
          },
          "config": {
            "$ref": "#/components/schemas/PlanConfigurationPost"
          }
        }
      },
      "ManagedSoftwareUpdatePlanPostResponse": {
        "type": "object",
        "properties": {
          "plans": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/PlanDeviceResponse"
            }
          }
        }
      },
      "PlanConfigurationPost": {
        "required": [
          "updateAction",
          "versionType"
        ],
        "type": "object",
        "properties": {
          "updateAction": {
            "type": "string",
            "nullable": false,
            "example": "DOWNLOAD_INSTALL",
            "enum": [
              "DOWNLOAD_ONLY",
              "DOWNLOAD_INSTALL",
              "DOWNLOAD_INSTALL_ALLOW_DEFERRAL",
              "DOWNLOAD_INSTALL_RESTART",
              "DOWNLOAD_INSTALL_SCHEDULE",
              "UNKNOWN"
            ]
          },
          "versionType": {
            "type": "string",
            "nullable": false,
            "example": "SPECIFIC_VERSION",
            "enum": [
              "LATEST_MAJOR",
              "LATEST_MINOR",
              "LATEST_ANY",
              "SPECIFIC_VERSION",
              "CUSTOM_VERSION",
              "UNKNOWN"
            ]
          },
          "specificVersion": {
            "minLength": 0,
            "type": "string",
            "description": "Optional. Indicates the specific version to update to. Only available when the version type is set to specific version or custom version, otherwise defaults to NO_SPECIFIC_VERSION.",
            "example": "12.6.1",
            "default": "NO_SPECIFIC_VERSION"
          },
          "buildVersion": {
            "type": "string",
            "description": "Optional. Indicates the build version to update to. Only available when the version type is set to custom version.",
            "nullable": true,
            "example": "21F79"
          },
          "maxDeferrals": {
            "minimum": 0,
            "type": "integer",
            "description": "Required when the provided updateAction is DOWNLOAD_INSTALL_ALLOW_DEFERRAL, not applicable to all managed software update plans",
            "example": 5
          },
          "forceInstallLocalDateTime": {
            "type": "string",
            "description": "Optional. Indicates the local date and time of the device to force update by.",
            "nullable": true,
            "example": "2023-12-25T21:09:31"
          }
        },
        "nullable": false
      },
      "PlanDevice": {
        "type": "object",
        "properties": {
          "deviceId": {
            "minLength": 1,
            "type": "string",
            "readOnly": true,
            "example": "1"
          },
          "objectType": {
            "type": "string",
            "nullable": false,
            "readOnly": true,
            "example": "COMPUTER",
            "enum": [
              "COMPUTER",
              "MOBILE_DEVICE",
              "APPLE_TV"
            ]
          },
          "href": {
            "type": "string",
            "nullable": false,
            "readOnly": true,
            "example": "/v1/computers-inventory/1"
          }
        }
      },
      "PlanDevicePost": {
        "required": [
          "deviceId",
          "objectType"
        ],
        "type": "object",
        "properties": {
          "deviceId": {
            "minLength": 1,
            "type": "string",
            "example": "1"
          },
          "objectType": {
            "type": "string",
            "nullable": false,
            "example": "COMPUTER",
            "enum": [
              "COMPUTER",
              "MOBILE_DEVICE",
              "APPLE_TV"
            ]
          }
        }
      },
      "PlanDeviceResponse": {
        "type": "object",
        "properties": {
          "device": {
            "$ref": "#/components/schemas/PlanDevice"
          },
          "planId": {
            "minLength": 1,
            "type": "string",
            "readOnly": true,
            "example": "6E47EF55-5318-494F-A09E-70F613E0AFD1"
          },
          "href": {
            "type": "string",
            "nullable": false,
            "readOnly": true,
            "example": "/v1/managed-software-updates/plans/6E47EF55-5318-494F-A09E-70F613E0AFD1"
          }
        }
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "BasicAuth": {
        "type": "http",
        "description": "Basic auth is used only for obtaining bearer tokens from the /v1/auth/token endpoint",
        "scheme": "basic"
      },
      "ApiClient": {
        "type": "oauth2",
        "description": "Jamf Pro API Roles and Clients provide a client ID and secret for obtaining access tokens using the OAuth2 client_credentials grant type",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "/api/v1/oauth/token",
            "scopes": {}
          }
        }
      }
    }
  },
  "x-si-base": "swagger.json",
  "x-github-repo": "jamf/Jamf-Pro-API-Schema",
  "x-github-sha": "5f8b85a61ce288205f7b44d478a117fb1acea0c6"
}
```