# Update the scan schedule Updates the schedule used to scan managed devices. ## Endpoint `PUT /bsp/api/v1/bmp/devices/scan/schedule` ## 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 ## 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`, and `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 returned when authentication credentials are missing, expired, or invalid (`authentication=required`). - **errorMsg** — string Authentication failure reason. ### HTTP code 403 #### Response Body — application/json JSON Object - **errorCode** — long Forbidden error code returned when the authenticated user does not have the required uem-roles (for example, `DataEncryption_Admin` or `DataEncryptionRecoveryKey_Admin`). - **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 threshold (configured via threshold/duration in security XML) is exceeded; client is locked out for lock-period minutes. - **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. ## Sample Response: 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" } ``` ## Sample Response: HTTP 400 ### Invalid parameter ```json { "errorCode": "IAM0018", "url": "/bsp/api/v1/bmp/devices/scan/schedule", "errorMsg": "Invalid parameter \"param\" detected." } ``` ## Sample Response: HTTP 401 ### Unauthorized ```json { "errorCode": "UNAUTHORIZED", "errorMsg": "You are not authorized to perform this action" } ``` ## Sample Response: HTTP 403 ### Forbidden ```json { "errorCode": "FORBIDDEN", "errorMsg": "You do not have permission to access this resource" } ``` ## Sample Response: HTTP 429 ### Rate limit exceeded ```json { "errorCode": "RATE_LIMIT_EXCEEDED", "errorMsg": "You have exceeded the maximum number of API calls. Please try again later." } ``` ## Sample Response: HTTP 500 ### Server error ```json { "error_description": "Internal Server error, Please try again in a moment.", "error_code": "COM0004" } ``` ![ ](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.