# Add a new VPN payload configuration to an existing profile Create Android VPN Policy Payload ## Endpoint **POST** `/api/v1/mdm/profiles/{profile_id}/payloads/androidvpnpolicy` ## Request URL ```text https://{server-hostname}:8383/api/v1/mdm/profiles/{profile_id}/payloads/androidvpnpolicy ``` ## Scope ```text MDMDeviceMgmt.CREATE ``` ## Header ```text 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` - **connection_name** — string — **Mandatory** VPN connection display name (required) - **connection_type** — integer — **Mandatory** VPN connection protocol type. 1 = L2TP/IPSec PSK, 2 = L2TP/IPSec RSA, 3 = IPSec Xauth PSK, 4 = IPSec Xauth RSA, 5 = IPSec IKEv2 PSK, 6 = IPSec IKEv2 RSA, 7 = IPSec Hybrid RSA, 8 = PPTP, 19 = Cisco AnyConnect, 20 = Pulse Secure, 21 = F5 SSL, 22 = Palo Alto (required) - **vpn_app_id** — JSON Object — Optional App identifier for the VPN client application - **vpn_lockdown_excluded_apps** — JSON Array — Optional List of apps excluded from VPN lockdown - **always_on** — boolean — Optional Whether VPN is always on. Default: false - **lockdown_enabled** — boolean — Optional Whether VPN lockdown is enabled (blocks traffic without VPN). Default: false - **l2tp_psk** — JSON Object — Optional L2TP/IPSec PSK connection configuration - **l2tp_rsa** — JSON Object — Optional L2TP/IPSec RSA connection configuration - **pptp** — JSON Object — Optional PPTP connection configuration - **ipsec_xauth_psk** — JSON Object — Optional IPSec Xauth PSK connection configuration - **ipsec_xauth_rsa** — JSON Object — Optional IPSec Xauth RSA connection configuration - **ipsec_ikev2_psk** — JSON Object — Optional IPSec IKEv2 PSK connection configuration - **ipsec_ikev2_rsa** — JSON Object — Optional IPSec IKEv2 RSA connection configuration - **ipsec_hybrid_rda** — JSON Object — Optional IPSec Hybrid RSA connection configuration - **pulsesecure** — JSON Object — Optional Pulse Secure VPN connection configuration - **f5ssl** — JSON Object — Optional F5 SSL VPN connection configuration - **ciscoanyconnect** — JSON Object — Optional Cisco AnyConnect VPN connection configuration - **paloalto** — JSON Object — Optional Palo Alto Networks GlobalProtect VPN connection configuration ## Sample Request ```curl curl --request POST \ --url https://appdomain/api/v1/mdm/profiles/{profile_id}/payloads/androidvpnpolicy \ --header 'Accept: application/json' \ --header 'Authorization: d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/json' \ --data '{"connection_name":"VPN Configuration","lockdown_enabled":false,"connection_type":19,"vpn_app_id":{},"l2tp_psk":{},"vpn_lockdown_excluded_apps":[],"ipsec_xauth_psk":{},"always_on":false,"pptp":{},"l2tp_rsa":{}}' ``` ## Sample Request Body Add VPN payload to the profile ```json { "connection_name": "VPN Configuration", "lockdown_enabled": false, "connection_type": 19, "vpn_app_id": {}, "l2tp_psk": {}, "vpn_lockdown_excluded_apps": [], "ipsec_xauth_psk": {}, "always_on": false, "pptp": {}, "l2tp_rsa": {} } ``` ## Response Parameters ### HTTP Code 200 Response Body — `application/json` - **payload_id** — long Unique identifier for the created payload item - **connection_name** — string VPN connection display name (required) - **connection_type** — integer VPN connection protocol type. 1 = L2TP/IPSec PSK, 2 = L2TP/IPSec RSA, 3 = IPSec Xauth PSK, 4 = IPSec Xauth RSA, 5 = IPSec IKEv2 PSK, 6 = IPSec IKEv2 RSA, 7 = IPSec Hybrid RSA, 8 = PPTP, 19 = Cisco AnyConnect, 20 = Pulse Secure, 21 = F5 SSL, 22 = Palo Alto (required) - **vpn_app_id** — JSON Object App identifier for the VPN client application - **vpn_lockdown_excluded_apps** — JSON Array List of apps excluded from VPN lockdown - **always_on** — boolean Whether VPN is always on. Default: false - **lockdown_enabled** — boolean Whether VPN lockdown is enabled (blocks traffic without VPN). Default: false - **l2tp_psk** — JSON Object L2TP/IPSec PSK connection configuration - **l2tp_rsa** — JSON Object L2TP/IPSec RSA connection configuration - **pptp** — JSON Object PPTP connection configuration - **ipsec_xauth_psk** — JSON Object IPSec Xauth PSK connection configuration - **ipsec_xauth_rsa** — JSON Object IPSec Xauth RSA connection configuration - **ipsec_ikev2_psk** — JSON Object IPSec IKEv2 PSK connection configuration - **ipsec_ikev2_rsa** — JSON Object IPSec IKEv2 RSA connection configuration - **ipsec_hybrid_rda** — JSON Object IPSec Hybrid RSA connection configuration - **pulsesecure** — JSON Object Pulse Secure VPN connection configuration - **f5ssl** — JSON Object F5 SSL VPN connection configuration - **ciscoanyconnect** — JSON Object Cisco AnyConnect VPN connection configuration - **paloalto** — JSON Object Palo Alto Networks GlobalProtect VPN connection configuration ## Possible Response Codes - **200** — HTTP code ## Sample Response: HTTP 200 VPN payload successfully added ```json { "connection_name": "VPN Configuration", "payload_id": 9007199254741000, "lockdown_enabled": false, "connection_type": 19, "vpn_app_id": {}, "l2tp_psk": {}, "vpn_lockdown_excluded_apps": [], "ipsec_xauth_psk": {}, "always_on": false, "pptp": {}, "l2tp_rsa": {} } ``` ## Rate Limits **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.