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)
OEM API Reference
https://api.keepsolid.com/oem/v2The KeepSolid OEM API lets you provision and manage branded VPN accounts, users, and sessions programmatically. All requests are authenticated with a secret API key and use conventional HTTP response codes, verbs, and JSON payloads.
Authentication
Authenticate requests with your secret API key in the Authorization header: `Authorization: Bearer sk_live_...`. Keep keys secret — never expose them in client-side code. Use test keys (`sk_test_...`) against the sandbox base URL.
Accounts
The Account object
An Account represents a partner tenant in your white-label VPN program — the entity you provision users and subscriptions under.
Attributes
- id string
- Unique identifier for the account, e.g. acct_1A2b3C.
- object string
- String representing the object type. Always "account".
- name string
- The partner-facing display name for the account.
- email string
- Primary contact email for the account.
- status enum
- One of active, suspended, or closed.
- created timestamp
- Time at which the account was created (Unix epoch seconds).
- metadata hash
- Set of key-value pairs you can attach to the object.
{
"id": "acct_1A2b3C",
"object": "account",
"name": "Acme Secure",
"email": "[email protected]",
"status": "active",
"created": 1785600000,
"metadata": {}
}Create an account
/v2/accountsCreates a new partner account in your OEM program.
Parameters
- name stringRequired
- The partner-facing display name.
- email stringRequired
- Primary contact email for the account.
- metadata hash
- Set of key-value pairs you can attach to the object.
Returns the Account object if the call succeeds.
curl https://api.keepsolid.com/oem/v2/accounts \
-H "Authorization: Bearer sk_live_..." \
-d name="Acme Secure" \
-d email="[email protected]"{
"id": "acct_1A2b3C",
"object": "account",
"name": "Acme Secure",
"email": "[email protected]",
"status": "active",
"created": 1785600000,
"metadata": {}
}Retrieve an account
/v2/accounts/:idRetrieves the details of an existing account by its ID.
Parameters
- id stringRequired
- The identifier of the account to retrieve.
Returns the Account object if a valid identifier was provided.
curl https://api.keepsolid.com/oem/v2/accounts/acct_1A2b3C \
-H "Authorization: Bearer sk_live_..."{
"id": "acct_1A2b3C",
"object": "account",
"name": "Acme Secure",
"status": "active"
}List accounts
/v2/accountsReturns a list of accounts. The accounts are returned sorted by creation date, most recent first.
Parameters
- limit integer
- A limit on the number of objects to return (1–100, default 10).
- starting_after string
- A cursor for pagination — an account ID.
Returns a dictionary with a data property containing an array of Account objects.
curl https://api.keepsolid.com/oem/v2/accounts?limit=2 \
-H "Authorization: Bearer sk_live_..."{
"object": "list",
"url": "/v2/accounts",
"has_more": false,
"data": [
{ "id": "acct_1A2b3C", "object": "account", "name": "Acme Secure" },
{ "id": "acct_9Z8y7X", "object": "account", "name": "Globex VPN" }
]
}VPN users
The VPN user object
A VPN user is an end user provisioned under a partner account, with entitlements to connect to the VPN network.
Attributes
- id string
- Unique identifier, e.g. vpnu_5F6g7H.
- object string
- Always "vpn_user".
- account string
- ID of the account this user belongs to.
- email string
- The user's email address.
- plan string
- The entitlement plan assigned to the user.
- status enum
- One of active, paused, or revoked.
{
"id": "vpnu_5F6g7H",
"object": "vpn_user",
"account": "acct_1A2b3C",
"email": "[email protected]",
"plan": "pro",
"status": "active"
}Provision a VPN user
/v2/vpn_usersProvisions a new VPN user under an account and returns connection credentials.
Parameters
- account stringRequired
- ID of the account to provision under.
- email stringRequired
- The user's email address.
- plan string
- Entitlement plan (default: basic).
Returns the VPN user object with connection credentials.
curl https://api.keepsolid.com/oem/v2/vpn_users \
-H "Authorization: Bearer sk_live_..." \
-d account="acct_1A2b3C" \
-d email="[email protected]" \
-d plan="pro"{
"id": "vpnu_5F6g7H",
"object": "vpn_user",
"account": "acct_1A2b3C",
"email": "[email protected]",
"plan": "pro",
"status": "active"
}Servers
List servers
/v2/serversReturns the VPN server locations available to your program.
Parameters
- country string
- Filter by ISO country code, e.g. US.
Returns a list of server objects.
curl https://api.keepsolid.com/oem/v2/servers?country=US \
-H "Authorization: Bearer sk_live_..."{
"object": "list",
"url": "/v2/servers",
"has_more": true,
"data": [
{ "id": "srv_us_nyc_1", "object": "server", "country": "US", "city": "New York" },
{ "id": "srv_us_lax_2", "object": "server", "country": "US", "city": "Los Angeles" }
]
}