# Bulk import add-ons from a CSV file Bulk imports add-ons from a CSV file. Limited to 5000 entries and 30 MB. ## Endpoint `POST /bsp/api/v1/bmp/addons/import` ## Request ### Request URL `https://`[*{serverurl}*](https://www.manageengine.com/products/desktop-central/help/api/cloud/oauth-authentication-endpoint-domain.html)`/bsp/api/v1/bmp/addons/import` ### Scope `DesktopCentralCloud.BrowserManager.CREATE` #### Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ### Request Parameters #### Request Headers - **Content-Type** `string` — **Mandatory**: `application/json` - **Accept** `string` — **Mandatory**: `application/json` #### Request Body JSON body with CSV file ID and browser type. The CSV file must contain an Identifier column header with addon IDs. Maximum 5000 entries, file size limit 30MB. `application/json` - `file_id` `long` — Optional File ID of the previously uploaded CSV file containing addon identifiers. - `browser_type` `string` — Optional Browser type for all imported add-ons. `1=Chrome`, `2=Firefox`, `3=Internet Explorer`, `5=Chromium Edge`, `31=Ulaa`, `1024=Other Chromium`. ### Sample Request ```curl curl --request POST \ --url https://appdomains/bsp/api/v1/bmp/addons/import \ --header 'Accept: application/json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/json' \ --data '{}' ``` ### Sample Request Body #### Import Chrome extensions (browser_type=1) ```json { "file_id": 103, "browser_type": 1 } ``` #### Import Edge extensions (browser_type=5) ```json { "file_id": 105, "browser_type": 5 } ``` #### Import Other Chromium extensions (browser_type=1024) ```json { "file_id": 106, "browser_type": 1024 } ``` ## Response Parameters ### HTTP Code 200 Response body: `application/json` - `addons` `JSON Array` Imported addon records with assigned binary IDs. ### HTTP Code 400 Response body: `application/json` - `errorCode` `string` Error code indicating a request parameter has an invalid format. - `url` `string` The request URL that triggered the error. - `errorMsg` `string` Message identifying which parameter has an invalid format. ### HTTP Code 401 Response body: `application/json` - `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` - `errorCode` `long` Forbidden error code returned when the authenticated user does not have the required uem-roles (e.g., DataEncryption_Admin or DataEncryptionRecoveryKey_Admin). - `errorMsg` `string` Message indicating insufficient privileges to access this resource. ### HTTP Code 429 Response body: `application/json` - `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` - `error_description` `string` Message describing the internal server error. - `error_code` `string` Error code identifying the type of server error. ## Sample Responses ### HTTP 200 #### Imported extensions with binary IDs ```json { "addons": [ { "extension_group_id": "100", "binary_id": "100", "id": "cjpalhdlnbpafiamejdnhcphjbkeiagm" }, { "extension_group_id": "101", "binary_id": "101", "id": "gighmmpiobklfepjocnamgkkbiglidom" } ] } ``` ### HTTP 400 #### Invalid browser_type value ```json { "errorCode": "IAM0025", "url": "/bsp/api/v1/bmp/addons/import", "errorMsg": "browser_type is an invalid parameter format." } ``` ### HTTP 401 #### Unauthorized ```json { "errorCode": "UNAUTHORIZED", "errorMsg": "You are not authorized to perform this action" } ``` ### HTTP 403 #### Insufficient permissions ```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" } ``` #### File not found ```json { "error_description": "Internal Server error, Please try again in a moment.", "error_code": "COM0004" } ``` ## Rate Limits **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.