# List configuration profiles Retrieves all configuration profiles along with their basic metadata and publish status. ## Endpoint `GET /bsp/api/v1/bmp/profiles` ## Request URL `https://`[*{serverurl}*](https://www.manageengine.com/products/desktop-central/help/api/cloud/oauth-authentication-endpoint-domain.html)`/bsp/api/v1/bmp/profiles` ## Scope `DesktopCentralCloud.BrowserManager.READ` ## Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers | Parameter | Type | Required | Value | |---|---|---|---| | Accept | string | Mandatory | `application/json` | ### Query Parameters | Parameter | Type | Required | Description | |---|---|---|---| | search | string | Optional | Filter profiles by name (contains match). Example: `'corporate'`, `'finance'`, `'security'` | | published | boolean | Optional | Filter by published status. Values: true (only published/active profiles), false (only draft profiles) | | type | string | Optional | Filter by profile type ID. Comma-separated for multiple types. Common values: 64005 (Browser Customization), 64600 (Security), 64700 (Privacy), 64800 (Download Filter), 64900 (Upload Filter), 64950 (URL Filter). Example: `'64005'` or `'64005,64600'` | | limit | integer | Optional | Max results per page. Example: 50, 100, 200 | | offset | integer | Optional | Starting index for results (0-based). Example: 0, 50, 100 | | skip-token | string | Optional | Cursor-based pagination token returned from previous response for fetching next page | | platform_type | string | Optional | Platform filter. Values: `'1'` (Windows only), `'2'` (Mac only), `'-1'` (all platforms) | | trash | boolean | Optional | Filter by trash status. Values: true (only trashed/deleted profiles), false (only active profiles, default) | ## Sample Request ```curl curl --request GET \ --url https://appdomains/bsp/api/v1/bmp/profiles \ --header 'Accept: application/json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' ``` ## Response Parameters ### HTTP Code 200 Response body: `application/json` **JSON Object** List of configuration profiles. | Attribute | Type | Description | |---|---|---| | profiles | JSON Array | Configuration profiles with name, type, status, platform, and browser details | | paging | JSON Object | Pagination. Contains `'next'` URL with skip-token when more results exist | ### HTTP Code 400 Response body: `application/json` **JSON Object** Bad request error for invalid input or constraint violations. | Attribute | Type | Description | |---|---|---| | errorcode | string | Error code identifying the specific validation failure | | errormsg | string | Message describing the validation failure | ### HTTP Code 401 Response body: `application/json` **JSON Object** | Attribute | Type | Description | |---|---|---| | errorCode | long | Unauthorized error code: credentials missing, expired, or invalid | | errorMsg | string | Authentication failure reason | ### HTTP Code 403 Response body: `application/json` **JSON Object** | Attribute | Type | Description | |---|---|---| | 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** | Attribute | Type | Description | |---|---|---| | 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 response for profile operations. | Attribute | Type | Description | |---|---|---| | error_description | string | Error message describing the server failure | | error_code | string | Error code for internal server errors | ## Possible Response Codes - `200` - `400` - `401` - `403` - `429` - `500` ## Sample Responses ### HTTP 200 List of configuration profiles with pagination: ```json { "profiles": [ { "platform_type": "1", "profiletype": "64960", "profilestatus": "1", "profileid": "111", "profilename": "ManagedbrowserPolicy 15" }, { "platform_type": "1", "profiletype": "64200", "profilestatus": "1", "profileid": "111", "profilename": "ThreatPreventionPolicy 19" } ], "paging": { "next": "/api/v1/bmp/profiles?skip-token=NTA6NTE6MToxNzc2MTY1MDg0Nzk3" } } ``` No matching profiles found: ```json { "profiles": [] } ``` ### HTTP 400 Pagination parameters out of allowed range: ```json { "errorcode": "IAM0003", "errormsg": "Invalid request." } ``` ### HTTP 401 API key is missing or invalid: ```json { "errorCode": "IAM0001", "errorMsg": "Authentication key is invalid. Please regenerate the key and try again." } ``` ### HTTP 403 Forbidden: ```json { "errorCode": "FORBIDDEN", "errorMsg": "User does not have permission to perform this operation" } ``` ### HTTP 429 Rate limit exceeded: ```json { "errorCode": "RATE_LIMIT_EXCEEDED", "errorMsg": "Too many requests. Please try again after 5 minutes" } ``` ### HTTP 500 Server error: ```json { "error_description": "Internal Server error, Please try again in a moment.", "error_code": "COM0004" } ``` ## Rate Limit **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.