---
title: "Schedule an OS update for a device"
method: POST
path: "/applemdms/{apple_mdm_id}/devices/{device_id}/scheduleOSUpdate"
tags: ["Apple MDM"]
---

# Schedule an OS update for a device

`POST /applemdms/{apple_mdm_id}/devices/{device_id}/scheduleOSUpdate`

## Request

- Base URL: `https://console.jumpcloud.com/api/v2`
- URL: `https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id}/scheduleOSUpdate`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/jumpcloud/apis/jumpcloud-api-2/docs/applemdms/:apple_mdm_id/devices/:device_id/scheduleOSUpdate/post.ts> (a function with typed inputs; its response is checked against the schema)

Schedules an OS update for a device

#### Sample Request

```
curl -X POST https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id}/scheduleOSUpdate \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{"install_action": "INSTALL_ASAP", "product_key": "key"}'
```

## Headers

- `x-org-id` string

## Request body

- ScheduleOSUpdate
  - `install_action` 'DOWNLOAD_ONLY' | 'INSTALL_LATER' | 'INSTALL_ASAP' | 'INSTALL_FORCE_RESTART', required
  - `product_key` string, required
  - `max_user_deferrals` integer

## Response `204`

## Other responses

- `400`: Bad Request
- `401`: Unauthenticated
- `403`: Unauthorized
- `404`: Not Found
- `409`: Conflict
- `500`

---

[API](https://skmtc.dev/jumpcloud/apis/jumpcloud-api-2.md) - [All operations](https://skmtc.dev/jumpcloud/apis/jumpcloud-api-2/llms.txt) - [OpenAPI document](https://skmtc.dev/jumpcloud/apis/jumpcloud-api-2/revisions/3f09fe63caaa?raw)
