# Update the scan schedule Updates the schedule used to scan managed devices. ## Endpoint `PUT /bsp/api/v1/bmp/devices/scan/schedule` ## Request ### Request URL `https://[{serverurl}](https://www.manageengine.com/products/desktop-central/help/api/cloud/oauth-authentication-endpoint-domain.html)/bsp/api/v1/bmp/devices/scan/schedule` ### Scope `DesktopCentralCloud.BrowserManager.UPDATE` ### Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ### Request Parameters #### Request Headers - **Accept** `string` — **Mandatory** — `application/json` - **Content-Type** `string` — **Mandatory** — `application/json` #### Request Body `application/json` - `JSON Object` - **Schedule Config** — Optional ## Examples ### Daily Schedule #### Sample Request ```curl curl --request PUT \ --url https://appdomains/bsp/api/v1/bmp/devices/scan/schedule \ --header 'Accept: application/json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/json' \ --data '{}' ``` #### Sample Request Body - Daily Schedule **Disable scheduler** ```json { "dailyTime": "04/14/2026, 08:47", "taskTimeZone": "Asia/Calcutta", "scheduleType": "Daily", "schedulerDisabled": true, "dailyIntervalType": "alternativeDays" } ``` **Modify to daily** ```json { "dailyTime": "04/15/2026, 09:30", "taskTimeZone": "Asia/Calcutta", "scheduleType": "Daily", "schedulerDisabled": false, "dailyIntervalType": "alternativeDays" } ``` ## Response Parameters ### HTTP Code 200 #### Response Body — application/json `JSON Object` Scan schedule configuration. Returned by both GET and PUT `/devices/scan/schedule`. Field set varies by schedule type: Daily includes `dailytime` + `dailyintervaltype`; Weekly includes `weeklytime` + `daysofweek`; Monthly includes `monthlytime` + `monthslist` + `monthlyperform` + `monthlyweeknum` + `monthlyweekday`. - **schedulerdisabled** `boolean`: `true` = schedule is currently disabled (no scans will run automatically); `false` = schedule is active - **scheduletype** `string`: Current schedule frequency. One of: `Daily`, `Weekly`, `Monthly` - **scheduletypeextratext** `string`: Human-readable summary of the schedule. Daily: interval label (for example, `alternativeDays`). Weekly: weekday short name (for example, `Wed`). Monthly: comma-separated month short names (for example, `Feb, Apr, Sep, Oct`) - **tasktimezone** `string`: IANA timezone ID for which the schedule times are evaluated (for example, `Asia/Calcutta`) - **currentdatetime** `string`: Current server date-time (RFC 1123 format) - **nextruntime** `string`: Next scheduled scan execution time (RFC 1123 format) - **starttimetext** `string`: Formatted start-time label shown in UI - **starttimeextratext** `string`: Additional context for start time (Monthly schedules only, for example, `during First Friday of selected Months`) - **dailytime** `string`: [Daily only] Configured start date-time for daily schedule (for example, `04/15/2026, 09:30`) - **dailyintervaltype** `string`: [Daily only] Daily interval mode. One of: `everyDay`, `alternativeDays`, `weekDays` - **weeklytime** `string`: [Weekly only] Configured time-of-day for weekly schedule (`HH:mm`, 24h) - **daysofweek** `string`: [Weekly only] Comma-separated day-of-week numbers (`1=Sun`, `2=Mon`, `3=Tue`, `4=Wed`, `5=Thu`, `6=Fri`, `7=Sat`) - **monthlytime** `string`: [Monthly only] Configured time-of-day for monthly schedule (`HH:mm`, 24h) - **monthslist** `string`: [Monthly only] Comma-separated month numbers (`1=Jan … 12=Dec`) - **monthlyperform** `string`: [Monthly only] How the day is selected within each month. One of: `Day` (specific date), `WeekDay` (Nth weekday) - **monthlyweeknum** `string`: [Monthly only, when `monthlyperform=WeekDay`] Which week of the month (`1=First … 4=Fourth`, `5=Last`) - **monthlyweekday** `string`: [Monthly only, when `monthlyperform=WeekDay`] Day-of-week (`1=Sun … 7=Sat`) - **last_schedule_details** `JSON Object`: Summary of the last executed scan: `scan_initiated`, `in_progress`, `success`, failed device counts ### HTTP Code 400 #### Response Body — application/json `JSON Object` Bad request error when an invalid or unsupported parameter is detected in the scan schedule request. - **errorCode** `string`: Error code indicating an invalid parameter was detected in the request - **errorMsg** `string`: Message identifying the invalid parameter that was detected - **url** `string`: Request URL that triggered the error ### HTTP Code 401 #### Response Body — application/json `JSON Object` - **errorCode** `long`: Unauthorized error code: credentials missing, expired, or invalid - **errorMsg** `string`: Authentication failure reason ### HTTP Code 403 #### Response Body — application/json `JSON Object` - **errorCode** `long`: Error code indicating insufficient permissions - **errorMsg** `string`: Message indicating insufficient privileges to access this resource ### HTTP Code 429 #### Response Body — application/json `JSON Object` - **errorCode** `long`: Rate limit error code returned when the API call reached threshold - **errorMsg** `string`: Rate limit exceeded message with retry guidance ### HTTP Code 500 #### Response Body — application/json `JSON Object` Internal server error during device operations. - **error_description** `string`: Message describing the server-side failure - **error_code** `string`: Internal server error code ## Possible Response Codes - `200` — HTTP code - `400` — HTTP code - `401` — HTTP code - `403` — HTTP code - `429` — HTTP code - `500` — HTTP code ## Sample Responses ### HTTP 200 #### Weekly config ```json { "tasktimezone": "Asia/Calcutta", "last_schedule_details": { "scan_initiated": "0", "in_progress": "1", "success": "0", "failed": "0" }, "weeklytime": "21:39", "scheduletype": "Weekly", "currentdatetime": "Wed, 08 Apr 2026 08:45:09 AM", "daysofweek": "4", "scheduletypeextratext": "Wed", "schedulerdisabled": false, "nextruntime": "Wed, 08 Apr 2026 09:39:00 PM", "starttimetext": "21:39", "starttimeextratext": "" } ``` #### Daily config ```json { "dailytime": "04/15/2026, 09:30", "tasktimezone": "Asia/Calcutta", "last_schedule_details": { "scan_initiated": "0", "in_progress": "1", "success": "0", "failed": "0" }, "scheduletype": "Daily", "dailyintervaltype": "alternativeDays", "currentdatetime": "Wed, 08 Apr 2026 08:51:26 AM", "scheduletypeextratext": "alternativeDays", "schedulerdisabled": false, "nextruntime": "Wed, 15 Apr 2026 09:30:00 AM", "starttimetext": "Wed, 15 Apr 2026 09:30:00 AM", "starttimeextratext": "" } ``` #### Monthly config ```json { "tasktimezone": "Asia/Calcutta", "last_schedule_details": { "scan_initiated": "0", "in_progress": "1", "success": "0", "failed": "0" }, "monthlytime": "09:00", "scheduletype": "Monthly", "monthlyweekday": "6", "nextruntime": "Fri, 04 Sep 2026 09:00:00 AM", "starttimetext": "09:00", "starttimeextratext": "during First Friday of selected Months", "currentdatetime": "Wed, 08 Apr 2026 09:10:49 AM", "monthslist": "1,3,8,9", "monthlyperform": "WeekDay", "scheduletypeextratext": "Feb, Apr, Sep, Oct", "schedulerdisabled": false, "monthlyweeknum": "1" } ``` ### HTTP 400 #### Invalid parameter ```json { "errorCode": "IAM0018", "url": "/bsp/api/v1/bmp/devices/scan/schedule", "errorMsg": "Invalid parameter \"param\" detected." } ``` ### HTTP 401 #### Unauthorized ```json { "errorCode": "UNAUTHORIZED", "errorMsg": "You are not authorized to perform this action" } ``` ### HTTP 403 #### Forbidden ```json { "errorCode": "FORBIDDEN", "errorMsg": "You do not have permission to access this resource" } ``` ### HTTP 429 #### Rate limit exceeded ```json { "errorCode": "RATE_LIMIT_EXCEEDED", "errorMsg": "You have exceeded the maximum number of API calls. Please try again later." } ``` ### HTTP 500 #### Server error ```json { "error_description": "Internal Server error, Please try again in a moment.", "error_code": "COM0004" } ``` ## Rate Limit ![](https://www.zohowebstatic.com/sites/zweb/images/people/ico-help.png) **Duration:** 1 minute | **Threshold:** 60 | **Lock period:** 5 minutes Duration - Time window for the threshold. Threshold - Number of API calls allowed within the specified duration. Lock Period - Wait time before consecutive API requests.