# Add a new Custom Profile payload configuration to an existing profile To create Mac Custom Profiles ## Endpoint `POST /api/v1/mdm/profiles/{profile_id}/payloads/maccustomprofiles` ## Request URL `https://{server-hostname}:8383/api/v1/mdm/profiles/{profile_id}/payloads/maccustomprofiles` ## Scope `MDMDeviceMgmt.CREATE` ## Header `Authorization: d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers - **Content-Type** `string` — Mandatory `application/json` - **Accept** `string` — Mandatory `application/json` ### Path Parameters - **profile_id** `string` — Mandatory Unique identifier of the profile. Obtain from the [Create Profile](https://www.manageengine.com/products/desktop-central/help/api/onpremise/mdm-profiles-create-profile.html) or [Get Profiles](https://www.manageengine.com/products/desktop-central/help/api/onpremise/mdm-profiles-get-profile.html) response. ### Request Body `application/json` - **custom_profile_file_id** `long` — Mandatory File ID of the uploaded custom profile. Use the fileID from the [File Upload API](https://www.manageengine.com/products/desktop-central/help/api/onpremise/files-upload-file-ems.html) response. - **custom_profile_id** `long` — Optional Identifier for an existing custom profile configuration to update. - **allow_existing_payload** `boolean` — Optional Allow existing payload types to coexist with this custom profile. true=allow, false=reject conflicts. Default: false. - **custom_profile_type** `integer` — Optional Custom profile type. Allowed values: 1=Configuration Profile, 2=Custom command, 3=DDM Configuration. ## Sample Request ```curl curl --request POST \ --url https://appdomain/api/v1/mdm/profiles/{profile_id}/payloads/maccustomprofiles \ --header 'Accept: application/json' \ --header 'Authorization: d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/json' \ --data '{"custom_profile_type":1,"custom_profile_file_id":6967000001030034,"custom_profile_id":6967000001030045,"allow_existing_payload":false}' ``` ## Sample Request Body Add Custom Profile payload to the profile ```json { "custom_profile_type": 1, "custom_profile_file_id": 6967000001030034, "custom_profile_id": 6967000001030045, "allow_existing_payload": false } ``` ## Response Parameters ### HTTP Code 200 Response Body — `application/json` - **payload_id** `long` Unique identifier for the created payload item. - **custom_profile_file_id** `long` File ID of the uploaded custom profile. Obtained from the [File Upload API](https://www.manageengine.com/products/desktop-central/help/api/onpremise/files-upload-file-ems.html) response. - **custom_profile_id** `long` Identifier for the custom profile configuration. - **allow_existing_payload** `boolean` Whether existing payload types are allowed to coexist. Default: false. - **custom_profile_type** `string` Custom profile type. Values: 1=Configuration Profile, 2=Custom command, 3=DDM Configuration. ## Possible Response Codes - **200** — HTTP code ## Sample Response: HTTP 200 Custom Profile payload successfully added ```json { "payload_id": 6967000001030056, "custom_profile_type": "1", "custom_profile_file_id": 6967000001030034, "custom_profile_id": 6967000001030045, "allow_existing_payload": false } ``` ## Rate Limit **Duration:** 1 minute | **Threshold:** 30 | **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.