# Add a new Custom Profile payload configuration to an existing profile To create Ios Custom profile ## Endpoint **POST** `/api/v1/mdm/profiles/{profile_id}/payloads/ioscustomprofiles` ## Request URL `https://{server-hostname}:8383/api/v1/mdm/profiles/{profile_id}/payloads/ioscustomprofiles` ## 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` - `JSON Object` - **custom_profile_file_id** `string` — **Mandatory** - Custom Profile File Id. 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_file_path** `string` — Optional - Custom Profile File Path - **custom_profile_id** `long` — Optional - Custom Profile Id - **allow_existing_payload** `boolean` — Optional - Allow Existing Payload. 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/ioscustomprofiles \ --header 'Accept: application/json' \ --header 'Authorization: d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/json' \ --data '{"custom_profile_type":1,"custom_profile_file_id":"value","custom_profile_file_path":"value","custom_profile_id":1,"allow_existing_payload":false}' ``` ### Sample Request Body Add Custom Profile payload to the profile ```json { "custom_profile_type": 1, "custom_profile_file_id": "value", "custom_profile_file_path": "value", "custom_profile_id": 1, "allow_existing_payload": false } ``` ## Response Parameters ### HTTP Code 200 Response Body — `application/json` - `JSON Object` - **payload_id** `long` - Unique identifier for the created payload item - **custom_profile_file_id** `string` - Custom Profile File Id. 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_file_path** `string` - Custom Profile File Path - **custom_profile_id** `long` - Custom Profile Id - **allow_existing_payload** `boolean` - Allow Existing Payload. Default: False - **custom_profile_type** `integer` - Custom profile type. Allowed 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": 9007199254741000, "custom_profile_type": 1, "custom_profile_file_id": "value", "custom_profile_file_path": "value", "custom_profile_id": 1, "allow_existing_payload": false } ``` **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.