# Add a new APN payload configuration to an existing profile Create Android APN profile payload ## Endpoint **POST** `/api/v1/mdm/profiles/{profile_id}/payloads/androidapnpolicy` ## Request URL ``` https://{serverurl}/api/v1/mdm/profiles/{profile_id}/payloads/androidapnpolicy ``` ## Scope ``` MDMOnDemand.MDMDeviceMgmt.CREATE ``` ## Header ``` Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52 ``` ## Request Parameters ### Path Parameters - **profile_id** `string` (Mandatory) Unique identifier of the profile. Obtain from the [Create Profile](https://www.manageengine.com/mobile-device-management/help/api/cloud/profiles-create-profile.html) or [Get Profiles](https://www.manageengine.com/mobile-device-management/help/api/cloud/profiles-get-profile.html) response. ### Query Parameters - **t** `long` (Optional) - **ignoreHeader** `boolean` (Optional) - **qlt** `long` (Optional) - **previousTab** `string` (Optional) - **service** `string` (Optional) - **search** `string` (Optional) Free-text search string applied to the default searchable fields of the resource - **all** `boolean` (Optional) - **dc_customerid** `long` (Optional) - **mdm_instance** `string` (Optional) - **signupsrc** `string` (Optional) - **zaaid** `string` (Optional) - **command** `string` (Optional) - **orderby** `string` (Optional) - **sortorder** `string` (Optional) - **select_all** `boolean` (Optional) When true, applies the operation to every record matching the current filter rather than to specific IDs. Default: false - **zoho-internal** `boolean` (Optional) - **dc_instance** `string` (Optional) - **SUBREQUEST** `string` (Optional) - **source** `string` (Optional) - **nocache** `long` (Optional) Param to avoid being served from cache - **wms_csrparam** `string` (Optional) CSRF Token ### Request Body **Content-Type:** `application/json` **Type:** JSON object - **sub_config** `string` (Optional) Sub Config. Default: ANDROID_APN_EXTENSION - **access_point_name** `string` (Optional) Access Point Name - **access_point_user_name** `string` (Optional) Access Point User Name - **access_point_password** `string` (Optional) Access Point Password (sensitive - write-only) - **access_point_password_id** `long` (Optional) Access Point Password Id - **proxy_server** `string` (Optional) Proxy Server - **proxy_server_port** `integer` (Optional) Proxy Server Port - **android_apn_extension** `object` (Optional) Android APN Extension — carrier-specific APN configuration #### android_apn_extension Sub-Attributes - **name** `string` (Optional) APN Name - **auth_type** `integer` (Optional) Authentication Type. Default: -1 (None) - **server** `string` (Optional) APN Server address - **protocol** `integer` (Optional) Protocol. Default: 0 (IPv4) - **mcc** `string` (Optional) Mobile Country Code - **mnc** `string` (Optional) Mobile Network Code - **mmsc** `string` (Optional) Multimedia Messaging Service Center URL - **mms_port** `integer` (Optional) MMS Proxy Port - **mms_proxy** `string` (Optional) MMS Proxy Server address - **type** `string` (Optional) APN Type. Default: default - **roaming_protocol** `integer` (Optional) Roaming Protocol. Default: 0 (IPv4) - **is_preferred_apn** `boolean` (Optional) Whether this is the preferred APN. Default: true - **mvno** `integer` (Optional) MVNO Type. Default: -1 (None) ## Sample Request ### Curl ```bash curl --request POST \ --url https://appdomain/api/v1/mdm/profiles/{profile_id}/payloads/androidapnpolicy \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \ --header 'content-type: application/json' \ --data '{}' ``` ### Java ```java import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.io.IOException; import java.net.http.HttpTimeoutException; public class Main { public static void main(String[] args) { HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://appdomain/api/v1/mdm/profiles/{profile_id}/payloads/androidapnpolicy")) .header("content-type", "application/json") .header("Authorization", "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52") .method("POST", HttpRequest.BodyPublishers.ofString("{}")) .build(); HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); } } ``` ### Python ```python import http.client conn = http.client.HTTPSConnection("appdomain") payload = "{}" headers = { 'content-type': "application/json", 'Authorization': "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52" } conn.request("POST", "/api/v1/mdm/profiles/{profile_id}/payloads/androidapnpolicy", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ### Deluge ```javascript headersMap = Map(); headersMap.put("Content-Type", "application/json"); headersMap.put("Accept", "application/json"); data=Map(); response = invokeUrl [ url: "https://appDomain/api/v1/mdm/profiles/{profile_id}/payloads/androidapnpolicy" type: POST headers: headersMap body: data connection: connection_name ] info response; ``` ### PowerShell ```powershell $headers=@{} $headers.Add("content-type", "application/json") $headers.Add("Authorization", "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52") $response = Invoke-WebRequest -Uri 'https://appdomain/api/v1/mdm/profiles/{profile_id}/payloads/androidapnpolicy' -Method POST -Headers $headers -ContentType 'application/json' -Body '{}' ``` ## Sample Request Body Add APN payload to the profile ```json { "access_point_user_name": "Zylker User", "sub_config": "ANDROID_APN_EXTENSION", "proxy_server": "10.0.0.1", "access_point_name": "Zylker User", "access_point_password": "********", "android_apn_extension": { "auth_type": -1, "protocol": 0, "name": "Corporate APN", "type": "default", "is_preferred_apn": true }, "access_point_password_id": 1, "proxy_server_port": 8080 } ``` ## Response Parameters ### HTTP 200 **Response Body:** `application/json` **Type:** JSON object - **payload_id** `long` Unique identifier for the created payload item - **sub_config** `string` Sub Config. Default: ANDROID_APN_EXTENSION - **access_point_name** `string` Access Point Name - **access_point_user_name** `string` Access Point User Name - **access_point_password** `string` Access Point Password (sensitive - write-only) - **access_point_password_id** `long` Access Point Password Id - **proxy_server** `string` Proxy Server - **proxy_server_port** `integer` Proxy Server Port - **android_apn_extension** `object` Android APN Extension — carrier-specific APN configuration #### android_apn_extension Sub-Attributes - **name** `string` APN Name - **auth_type** `integer` Authentication Type. Default: -1 (None) - **server** `string` APN Server address - **protocol** `integer` Protocol. Default: 0 (IPv4) - **mcc** `string` Mobile Country Code - **mnc** `string` Mobile Network Code - **mmsc** `string` Multimedia Messaging Service Center URL - **mms_port** `integer` MMS Proxy Port - **mms_proxy** `string` MMS Proxy Server address - **type** `string` APN Type. Default: default - **roaming_protocol** `integer` Roaming Protocol. Default: 0 (IPv4) - **is_preferred_apn** `boolean` Whether this is the preferred APN. Default: true - **mvno** `integer` MVNO Type. Default: -1 (None) ## Possible Response Codes - **200** — HTTP code ## Sample Response: HTTP 200 APN payload successfully added ```json { "payload_id": 9007199254741000, "access_point_user_name": "Zylker User", "sub_config": "ANDROID_APN_EXTENSION", "proxy_server": "10.0.0.1", "access_point_name": "Zylker User", "access_point_password": "********", "android_apn_extension": { "auth_type": -1, "protocol": 0, "name": "Corporate APN", "type": "default", "is_preferred_apn": true }, "access_point_password_id": 1, "proxy_server_port": 8080 } ``` **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.