You can generate an mdm.xml file directly by providing configuration details as URL query parameters and adding ?generate=xml to the end of the Worker URL.
Provide the required fields and any optional fields directly as parameters. Booleans should be true or false. Empty parameters will be ignored.
Example:
/your-worker-url?generate=xml&organization=my-org&display_name=My+WARP+Config&service_mode=warp&onboarding=false&warp_tunnel_protocol=masque&auto_connect=1
For Windows-specific settings (multi_user, pre_login), include them directly with a value of true. If pre_login=true, you must provide the pre-login configuration details using the pl_ prefix.
Example (Windows with Pre-login):
/your-worker-url?generate=xml&multi_user=true&pre_login=true&pl_organization=my-org-prelogin&pl_display_name=PreLogin+Config&pl_service_mode=warp&pl_onboarding=false&pl_warp_tunnel_protocol=masque&pl_auth_client_id=...&pl_auth_client_secret=...&organization=my-org-user&display_name=User+Config&service_mode=warp&onboarding=false&warp_tunnel_protocol=masque
Note: In the Windows example, parameters without the pl_ prefix define the configuration used after login (nested under <key>configs</key> if pre-login is also defined).
The following parameters are recognized. Use the pl_ prefix for the pre-login configuration when pre_login=true.
organization (string)display_name (string)service_mode (string: warp, 1dot1, proxy, postureonly)onboarding (boolean: true, false)warp_tunnel_protocol (string: masque, wireguard)proxy_port (integer: 1-65535) - Required only if service_mode=proxyauth_client_id (string) - Format: 32 lowercase letters/numbers + .accessauth_client_secret (string) - Format: 64 letters/numbersunique_client_id (string)enable_post_quantum (boolean: true, false)auto_connect (integer)support_url (string)allow_updates (boolean: true, false)switch_locked (boolean: true, false)override_api_endpoint (string)override_doh_endpoint (string)override_warp_endpoint (string)multi_user (boolean: true) - Only include if value is exactly 'true'.pre_login (boolean: true) - Only include if value is exactly 'true'. Requires pl_ prefixed parameters.Note: Multiple configurations (arrays) are not currently supported via query parameters.