VPN SDK & API to build VPN into your product
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.
_19047.webp)
WL API - white-label compatibility gateway Reference
https://apis.oem.vpnunlimited.com
The observable HTTP contract of the white-label gateway. This document describes the 33 compatibility paths exactly as docs/api-contract.md fixes them. It is published as a static asset and is never generated at runtime (AD-010). The gateway does not own the business payloads it forwards, so unknown auth, VPN and sales fields stay free-form rather than invented.
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.
Accounts & authentication
Confirm Send
/confirmSendFlow `normal_command`. Forwarded to the configured `auth` API as action `confirmaccountmailsend`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/confirmSend" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Gdpr Delete Wl
/gdpr/deleteFlow `normal_command`. Forwarded to the configured `auth` API as action `gdpr_delete_wl`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/gdpr/delete" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Gdpr Delete
/gdprDeleteFlow `normal_command`. Forwarded to the configured `auth` API as action `gdpr_delete`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/gdprDelete" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Gdpr Delete New
/gdprDeleteNewFlow `public_bridge`. Forwarded to the configured `auth` API as action `gdpr_delete_wl_new`. The 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.
curl -X GET "https://apis.oem.vpnunlimited.com/gdprDeleteNew"Gdpr Export
/gdprExportFlow `normal_command`. Forwarded to the configured `auth` API as action `gdpr_export`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/gdprExport" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Login
/loginFlow `normal_command`. Forwarded to the configured `auth` API as action `login`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/login" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Login V2
/loginV2Flow `normal_command`. Forwarded to the configured `auth` API as action `login_v2`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/loginV2" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Logout
/logoutFlow `normal_command`. Forwarded to the configured `auth` API as action `logout`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/logout" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Recovery Password
/recoveryPasswordFlow `normal_command`. Forwarded to the configured `auth` API as action `recoveryaccountpassword`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/recoveryPassword" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Recovery Password Send
/recoveryPasswordSendFlow `normal_command`. Forwarded to the configured `auth` API as action `recoveryaccountpasswordmailsend`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/recoveryPasswordSend" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Registration
/registrationFlow `normal_command`. Forwarded to the configured `auth` API as action `register`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/registration" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Registration V2
/registrationV2Flow `normal_command`. Forwarded to the configured `auth` API as action `register_v2`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/registrationV2" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Session
/sessionFlow `normal_query`. Forwarded to the configured `auth` API as action `checksession`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X GET "https://apis.oem.vpnunlimited.com/session" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>"User Info
/userFlow `normal_query`. Forwarded to the configured `auth` API as action `userinfo`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X GET "https://apis.oem.vpnunlimited.com/user" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>"User Accounts
/user/accountsFlow `normal_query`. Forwarded to the configured `auth` API as action `useraccounts`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X GET "https://apis.oem.vpnunlimited.com/user/accounts" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>"User Change Name
/user/changeNameFlow `normal_command`. Forwarded to the configured `auth` API as action `changeuserflname`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X PUT "https://apis.oem.vpnunlimited.com/user/changeName" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'User Change Password
/user/changePasswordFlow `normal_command`. Forwarded to the configured `auth` API as action `changeaccountpassword`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X PUT "https://apis.oem.vpnunlimited.com/user/changePassword" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'User Change Subscription
/user/changeSubscriptionFlow `normal_command`. Forwarded to the configured `auth` API as action `changeusersubscription`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X PUT "https://apis.oem.vpnunlimited.com/user/changeSubscription" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'User Device Delete
/user/deviceFlow `normal_command`. Forwarded to the configured `auth` API as action `userdeletedevice`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X DELETE "https://apis.oem.vpnunlimited.com/user/device" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>"User Devices
/user/devicesFlow `normal_query`. Forwarded to the configured `auth` API as action `userdevicelist`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X GET "https://apis.oem.vpnunlimited.com/user/devices" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>"VPN configuration
Account Status
/accountStatusFlow `normal_query`. Forwarded to the configured `vpn` API as action `account_status_v2`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X GET "https://apis.oem.vpnunlimited.com/accountStatus" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>"Config
/configFlow `normal_query`. Forwarded to the configured `vpn` API as action `config_info`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X GET "https://apis.oem.vpnunlimited.com/config" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>"Config Ovpn
/config/ovpnFlow `private_bridge`. Forwarded to the configured `vpn` API as action `get_ovpn_config_by_user_pb`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X GET "https://apis.oem.vpnunlimited.com/config/ovpn" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>"Config Wg
/config_wgFlow `normal_query`. Forwarded to the configured `vpn` API as action `wireguard_client_config`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X GET "https://apis.oem.vpnunlimited.com/config_wg" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>"Regions
/regionsFlow `normal_query`. Forwarded to the configured `vpn` API as action `vpn_regions`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X GET "https://apis.oem.vpnunlimited.com/regions" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>"Purchases & subscriptions
Purchase Buy
/purchase/buyFlow `normal_command`. Forwarded to the configured `sales` API as action `wl_buy`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/purchase/buy" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Purchase Create
/purchase/createFlow `normal_command`. Forwarded to the configured `sales` API as action `wl_create_purchase`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/purchase/create" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Purchase Locale
/purchase/localeFlow `normal_command`. Forwarded to the configured `sales` API as action `wl_create_locale`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X POST "https://apis.oem.vpnunlimited.com/purchase/locale" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Purchase Locale Update
/purchase/locale/updateFlow `normal_command`. Forwarded to the configured `sales` API as action `wl_update_locale`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X PUT "https://apis.oem.vpnunlimited.com/purchase/locale/update" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Purchase Refund
/purchase/refundFlow `normal_command`. Forwarded to the configured `sales` API as action `wl_refund_purchase`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X PUT "https://apis.oem.vpnunlimited.com/purchase/refund" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Purchase Update
/purchase/updateFlow `normal_command`. Forwarded to the configured `sales` API as action `wl_update_purchase`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X PUT "https://apis.oem.vpnunlimited.com/purchase/update" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'Subscription Cancel
/subscription/cancelFlow `normal_command`. Forwarded to the configured `sales` API as action `wl_cancel_subscription`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X PUT "https://apis.oem.vpnunlimited.com/subscription/cancel" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>" \
-H "Content-Type: application/json" \
-d '{}'User Purchases
/user/purchasesFlow `normal_query`. Forwarded to the configured `sales` API as action `wl_user_purchases`. The 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.
Parameters
- X-Keepsolid-Applicationid stringRequired
- Positive decimal integer; an existing companies_products.id.
- X-Keepsolid-Authorization stringRequired
- 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.
curl -X GET "https://apis.oem.vpnunlimited.com/user/purchases" \
-H "X-Keepsolid-Applicationid: <x-keepsolid-applicationid>" \
-H "X-Keepsolid-Authorization: <x-keepsolid-authorization>"