[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"cms-page:\u002Fsdk-api":3,"sdk-api-reference":44},{"id":4,"url":5,"alias":6,"fullPath":6,"hostname":7,"settings":8,"components":16,"breadcrumbs":36,"hreflangLocales":43,"fullPathBreadCrumbs":6},19399,"https:\u002F\u002FOEM.vpnunlimited.com\u002Fsdk-api","sdk-api","https:\u002F\u002FOEM.vpnunlimited.com",{"title":9,"keywords":10,"description":11,"crumb":12,"og_title":13,"og_description":14,"structuredData":15},"VPN SDK & API for Apps - KeepSolid OEM","VPN SDK, VPN API service, add VPN to app, VPN SDK for Android, OEM SDK, white label VPN API","Add secure VPN to iOS, Android, macOS, or Windows apps with KeepSolid's VPN SDK and partner API, without operating VPN infrastructure.","VPN SDK and API","Build VPN into Your App with KeepSolid SDK & API","Add secure VPN to your app with KeepSolid's SDK, partner API, global network, and security foundation.",{},[17],{"name":18,"data":19,"children":28},"components\u002FHero",{"subtitle":20,"title":21,"note":22,"checklistTitle":22,"ctaText":23,"ctaHref":24,"image":25},"\u003Cp>Add secure, high-speed VPN to your app without building network infrastructure or protocol stacks from scratch. KeepSolid provides the SDK, the global server backbone, and the security foundation — you keep your brand, your UX, and your roadmap.\u003C\u002Fp>","VPN SDK & API to build VPN into your product","","Request SDK details","#",{"name":26,"description":27,"poster":28,"src":29,"webp":30,"size":31,"sizes":35},"Group%204602%20(1)_19047","Group 4602 (1)",null,"\u002F_coms-media\u002Fimg\u002FGroup%204602%20(1)_19047.png","\u002F_coms-media\u002Fimg\u002FGroup%204602%20(1)_19047.webp",{"density":32,"width":33,"height":34},1,1300,880,{},[37,42],{"url":38,"path":39,"title":40,"noindex":41},"https:\u002F\u002FOEM.vpnunlimited.com\u002F","\u002F","KeepSolid OEM",false,{"url":5,"path":6,"title":12,"noindex":41},[],{"title":45,"version":46,"versions":47,"baseUrl":48,"intro":49,"sections":50},"WL API - white-label compatibility gateway","1.0.0",[46],"https:\u002F\u002Fapis.oem.vpnunlimited.com","The observable HTTP contract of the white-label gateway.\n\nThis document describes the 33 compatibility paths exactly as docs\u002Fapi-contract.md fixes them. It is published as a static asset and is never generated at runtime (AD-010).\n\nThe gateway does not own the business payloads it forwards, so unknown auth, VPN and sales fields stay free-form rather than invented.",[51,56,291,350],{"id":52,"title":53,"description":54,"endpoints":55},"authentication","Authentication","Positive decimal integer; an existing companies_products.id. Lowercase 40-character hex HMAC-SHA1. GET and DELETE sign the raw request target; POST and PUT sign the raw body.",[],{"id":57,"title":58,"endpoints":59},"auth","Accounts & authentication",[60,81,92,103,113,124,135,146,157,168,179,190,201,212,223,234,246,257,268,280],{"id":61,"method":62,"path":63,"title":64,"description":65,"parameters":66,"returns":75,"samples":76,"response":22},"confirm_send","POST","\u002FconfirmSend","Confirm Send","Flow `normal_command`. Forwarded to the configured `auth` API as action `confirmaccountmailsend`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[67,72],{"name":68,"type":69,"required":70,"description":71},"X-Keepsolid-Applicationid","string",true,"Positive decimal integer; an existing companies_products.id.",{"name":73,"type":69,"required":70,"description":74},"X-Keepsolid-Authorization","Lowercase 40-character hex HMAC-SHA1. GET and DELETE sign the raw request target; POST and PUT sign the raw body.","D1: the downstream body byte-for-byte, whatever status the downstream returned.",[77],{"label":78,"lang":79,"code":80},"cURL","bash","curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002FconfirmSend\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":82,"method":62,"path":83,"title":84,"description":85,"parameters":86,"returns":75,"samples":89,"response":22},"gdpr_delete_wl","\u002Fgdpr\u002Fdelete","Gdpr Delete Wl","Flow `normal_command`. Forwarded to the configured `auth` API as action `gdpr_delete_wl`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[87,88],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[90],{"label":78,"lang":79,"code":91},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fgdpr\u002Fdelete\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":93,"method":62,"path":94,"title":95,"description":96,"parameters":97,"returns":75,"samples":100,"response":22},"gdpr_delete","\u002FgdprDelete","Gdpr Delete","Flow `normal_command`. Forwarded to the configured `auth` API as action `gdpr_delete`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[98,99],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[101],{"label":78,"lang":79,"code":102},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002FgdprDelete\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":104,"method":105,"path":106,"title":107,"description":108,"parameters":109,"samples":110,"response":22},"gdpr_delete_new","GET","\u002FgdprDeleteNew","Gdpr Delete New","Flow `public_bridge`. Forwarded to the configured `auth` API as action `gdpr_delete_wl_new`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[],[111],{"label":78,"lang":79,"code":112},"curl -X GET \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002FgdprDeleteNew\"",{"id":114,"method":62,"path":115,"title":116,"description":117,"parameters":118,"returns":75,"samples":121,"response":22},"gdpr_export","\u002FgdprExport","Gdpr Export","Flow `normal_command`. Forwarded to the configured `auth` API as action `gdpr_export`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[119,120],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[122],{"label":78,"lang":79,"code":123},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002FgdprExport\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":125,"method":62,"path":126,"title":127,"description":128,"parameters":129,"returns":75,"samples":132,"response":22},"login","\u002Flogin","Login","Flow `normal_command`. Forwarded to the configured `auth` API as action `login`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[130,131],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[133],{"label":78,"lang":79,"code":134},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Flogin\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":136,"method":62,"path":137,"title":138,"description":139,"parameters":140,"returns":75,"samples":143,"response":22},"login_v2","\u002FloginV2","Login V2","Flow `normal_command`. Forwarded to the configured `auth` API as action `login_v2`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[141,142],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[144],{"label":78,"lang":79,"code":145},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002FloginV2\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":147,"method":62,"path":148,"title":149,"description":150,"parameters":151,"returns":75,"samples":154,"response":22},"logout","\u002Flogout","Logout","Flow `normal_command`. Forwarded to the configured `auth` API as action `logout`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[152,153],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[155],{"label":78,"lang":79,"code":156},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Flogout\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":158,"method":62,"path":159,"title":160,"description":161,"parameters":162,"returns":75,"samples":165,"response":22},"recovery_password","\u002FrecoveryPassword","Recovery Password","Flow `normal_command`. Forwarded to the configured `auth` API as action `recoveryaccountpassword`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[163,164],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[166],{"label":78,"lang":79,"code":167},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002FrecoveryPassword\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":169,"method":62,"path":170,"title":171,"description":172,"parameters":173,"returns":75,"samples":176,"response":22},"recovery_password_send","\u002FrecoveryPasswordSend","Recovery Password Send","Flow `normal_command`. Forwarded to the configured `auth` API as action `recoveryaccountpasswordmailsend`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[174,175],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[177],{"label":78,"lang":79,"code":178},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002FrecoveryPasswordSend\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":180,"method":62,"path":181,"title":182,"description":183,"parameters":184,"returns":75,"samples":187,"response":22},"registration","\u002Fregistration","Registration","Flow `normal_command`. Forwarded to the configured `auth` API as action `register`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[185,186],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[188],{"label":78,"lang":79,"code":189},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fregistration\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":191,"method":62,"path":192,"title":193,"description":194,"parameters":195,"returns":75,"samples":198,"response":22},"registration_v2","\u002FregistrationV2","Registration V2","Flow `normal_command`. Forwarded to the configured `auth` API as action `register_v2`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[196,197],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[199],{"label":78,"lang":79,"code":200},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002FregistrationV2\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":202,"method":105,"path":203,"title":204,"description":205,"parameters":206,"returns":75,"samples":209,"response":22},"session","\u002Fsession","Session","Flow `normal_query`. Forwarded to the configured `auth` API as action `checksession`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[207,208],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[210],{"label":78,"lang":79,"code":211},"curl -X GET \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fsession\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\"",{"id":213,"method":105,"path":214,"title":215,"description":216,"parameters":217,"returns":75,"samples":220,"response":22},"user_info","\u002Fuser","User Info","Flow `normal_query`. Forwarded to the configured `auth` API as action `userinfo`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[218,219],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[221],{"label":78,"lang":79,"code":222},"curl -X GET \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fuser\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\"",{"id":224,"method":105,"path":225,"title":226,"description":227,"parameters":228,"returns":75,"samples":231,"response":22},"user_accounts","\u002Fuser\u002Faccounts","User Accounts","Flow `normal_query`. Forwarded to the configured `auth` API as action `useraccounts`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[229,230],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[232],{"label":78,"lang":79,"code":233},"curl -X GET \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fuser\u002Faccounts\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\"",{"id":235,"method":236,"path":237,"title":238,"description":239,"parameters":240,"returns":75,"samples":243,"response":22},"user_change_name","PUT","\u002Fuser\u002FchangeName","User Change Name","Flow `normal_command`. Forwarded to the configured `auth` API as action `changeuserflname`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[241,242],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[244],{"label":78,"lang":79,"code":245},"curl -X PUT \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fuser\u002FchangeName\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":247,"method":236,"path":248,"title":249,"description":250,"parameters":251,"returns":75,"samples":254,"response":22},"user_change_password","\u002Fuser\u002FchangePassword","User Change Password","Flow `normal_command`. Forwarded to the configured `auth` API as action `changeaccountpassword`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[252,253],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[255],{"label":78,"lang":79,"code":256},"curl -X PUT \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fuser\u002FchangePassword\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":258,"method":236,"path":259,"title":260,"description":261,"parameters":262,"returns":75,"samples":265,"response":22},"user_change_subscription","\u002Fuser\u002FchangeSubscription","User Change Subscription","Flow `normal_command`. Forwarded to the configured `auth` API as action `changeusersubscription`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[263,264],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[266],{"label":78,"lang":79,"code":267},"curl -X PUT \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fuser\u002FchangeSubscription\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":269,"method":270,"path":271,"title":272,"description":273,"parameters":274,"returns":75,"samples":277,"response":22},"user_device_delete","DELETE","\u002Fuser\u002Fdevice","User Device Delete","Flow `normal_command`. Forwarded to the configured `auth` API as action `userdeletedevice`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[275,276],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[278],{"label":78,"lang":79,"code":279},"curl -X DELETE \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fuser\u002Fdevice\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\"",{"id":281,"method":105,"path":282,"title":283,"description":284,"parameters":285,"returns":75,"samples":288,"response":22},"user_devices","\u002Fuser\u002Fdevices","User Devices","Flow `normal_query`. Forwarded to the configured `auth` API as action `userdevicelist`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[286,287],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[289],{"label":78,"lang":79,"code":290},"curl -X GET \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fuser\u002Fdevices\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\"",{"id":292,"title":293,"endpoints":294},"vpn","VPN configuration",[295,306,317,328,339],{"id":296,"method":105,"path":297,"title":298,"description":299,"parameters":300,"returns":75,"samples":303,"response":22},"account_status","\u002FaccountStatus","Account Status","Flow `normal_query`. Forwarded to the configured `vpn` API as action `account_status_v2`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[301,302],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[304],{"label":78,"lang":79,"code":305},"curl -X GET \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002FaccountStatus\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\"",{"id":307,"method":105,"path":308,"title":309,"description":310,"parameters":311,"returns":75,"samples":314,"response":22},"config","\u002Fconfig","Config","Flow `normal_query`. Forwarded to the configured `vpn` API as action `config_info`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[312,313],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[315],{"label":78,"lang":79,"code":316},"curl -X GET \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fconfig\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\"",{"id":318,"method":105,"path":319,"title":320,"description":321,"parameters":322,"returns":75,"samples":325,"response":22},"config_ovpn","\u002Fconfig\u002Fovpn","Config Ovpn","Flow `private_bridge`. Forwarded to the configured `vpn` API as action `get_ovpn_config_by_user_pb`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[323,324],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[326],{"label":78,"lang":79,"code":327},"curl -X GET \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fconfig\u002Fovpn\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\"",{"id":329,"method":105,"path":330,"title":331,"description":332,"parameters":333,"returns":75,"samples":336,"response":22},"config_wg","\u002Fconfig_wg","Config Wg","Flow `normal_query`. Forwarded to the configured `vpn` API as action `wireguard_client_config`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[334,335],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[337],{"label":78,"lang":79,"code":338},"curl -X GET \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fconfig_wg\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\"",{"id":340,"method":105,"path":341,"title":342,"description":343,"parameters":344,"returns":75,"samples":347,"response":22},"regions","\u002Fregions","Regions","Flow `normal_query`. Forwarded to the configured `vpn` API as action `vpn_regions`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[345,346],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[348],{"label":78,"lang":79,"code":349},"curl -X GET \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fregions\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\"",{"id":351,"title":352,"endpoints":353},"sales","Purchases & subscriptions",[354,365,376,387,398,409,420,431],{"id":355,"method":62,"path":356,"title":357,"description":358,"parameters":359,"returns":75,"samples":362,"response":22},"purchase_buy","\u002Fpurchase\u002Fbuy","Purchase Buy","Flow `normal_command`. Forwarded to the configured `sales` API as action `wl_buy`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[360,361],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[363],{"label":78,"lang":79,"code":364},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fpurchase\u002Fbuy\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":366,"method":62,"path":367,"title":368,"description":369,"parameters":370,"returns":75,"samples":373,"response":22},"purchase_create","\u002Fpurchase\u002Fcreate","Purchase Create","Flow `normal_command`. Forwarded to the configured `sales` API as action `wl_create_purchase`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[371,372],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[374],{"label":78,"lang":79,"code":375},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fpurchase\u002Fcreate\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":377,"method":62,"path":378,"title":379,"description":380,"parameters":381,"returns":75,"samples":384,"response":22},"purchase_locale","\u002Fpurchase\u002Flocale","Purchase Locale","Flow `normal_command`. Forwarded to the configured `sales` API as action `wl_create_locale`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[382,383],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[385],{"label":78,"lang":79,"code":386},"curl -X POST \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fpurchase\u002Flocale\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":388,"method":236,"path":389,"title":390,"description":391,"parameters":392,"returns":75,"samples":395,"response":22},"purchase_locale_update","\u002Fpurchase\u002Flocale\u002Fupdate","Purchase Locale Update","Flow `normal_command`. Forwarded to the configured `sales` API as action `wl_update_locale`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[393,394],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[396],{"label":78,"lang":79,"code":397},"curl -X PUT \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fpurchase\u002Flocale\u002Fupdate\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":399,"method":236,"path":400,"title":401,"description":402,"parameters":403,"returns":75,"samples":406,"response":22},"purchase_refund","\u002Fpurchase\u002Frefund","Purchase Refund","Flow `normal_command`. Forwarded to the configured `sales` API as action `wl_refund_purchase`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[404,405],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[407],{"label":78,"lang":79,"code":408},"curl -X PUT \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fpurchase\u002Frefund\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":410,"method":236,"path":411,"title":412,"description":413,"parameters":414,"returns":75,"samples":417,"response":22},"purchase_update","\u002Fpurchase\u002Fupdate","Purchase Update","Flow `normal_command`. Forwarded to the configured `sales` API as action `wl_update_purchase`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[415,416],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[418],{"label":78,"lang":79,"code":419},"curl -X PUT \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fpurchase\u002Fupdate\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":421,"method":236,"path":422,"title":423,"description":424,"parameters":425,"returns":75,"samples":428,"response":22},"subscription_cancel","\u002Fsubscription\u002Fcancel","Subscription Cancel","Flow `normal_command`. Forwarded to the configured `sales` API as action `wl_cancel_subscription`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[426,427],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[429],{"label":78,"lang":79,"code":430},"curl -X PUT \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fsubscription\u002Fcancel\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{}'",{"id":432,"method":105,"path":433,"title":434,"description":435,"parameters":436,"returns":75,"samples":439,"response":22},"user_purchases","\u002Fuser\u002Fpurchases","User Purchases","Flow `normal_query`. Forwarded to the configured `sales` API as action `wl_user_purchases`.\n\nThe downstream business payload is not modelled: auth, VPN and sales own those fields and no approved document defines them, so bodies stay free-form rather than invented.",[437,438],{"name":68,"type":69,"required":70,"description":71},{"name":73,"type":69,"required":70,"description":74},[440],{"label":78,"lang":79,"code":441},"curl -X GET \"https:\u002F\u002Fapis.oem.vpnunlimited.com\u002Fuser\u002Fpurchases\" \\\n  -H \"X-Keepsolid-Applicationid: \u003Cx-keepsolid-applicationid>\" \\\n  -H \"X-Keepsolid-Authorization: \u003Cx-keepsolid-authorization>\""]