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.

Request SDK details
VPN SDK & API to build VPN into your product

OEM API Reference

https://api.keepsolid.com/oem/v2

The 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

POST/v2/accounts

Creates 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]"
Response
{
  "id": "acct_1A2b3C",
  "object": "account",
  "name": "Acme Secure",
  "email": "[email protected]",
  "status": "active",
  "created": 1785600000,
  "metadata": {}
}

Retrieve an account

GET/v2/accounts/:id

Retrieves 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_..."
Response
{
  "id": "acct_1A2b3C",
  "object": "account",
  "name": "Acme Secure",
  "status": "active"
}

List accounts

GET/v2/accounts

Returns 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_..."
Response
{
  "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

POST/v2/vpn_users

Provisions 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"
Response
{
  "id": "vpnu_5F6g7H",
  "object": "vpn_user",
  "account": "acct_1A2b3C",
  "email": "[email protected]",
  "plan": "pro",
  "status": "active"
}

Servers

List servers

GET/v2/servers

Returns 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_..."
Response
{
  "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" }
  ]
}