Account Management APIs
APIs for MSPs and Distributors to manage accounts
Capabilities of the APIs
The primary use cases enabled via the API are:
Create Trial Accounts
Convert To Paid Accounts
List all MSPs
Get Current Usage
Get Monthly Usage
Cancel Paid Accounts
Activate Expired Accounts
List MSP Products
Delete Pending/Conflict Accounts
In order to access the MSP specific APIs, contact your support representative to request an API key, this will be shared as a secret key in a Keeper record.
API definitions
convert-to-paid
JWT with HS512 alg
Bearer
vendor_name(Provided by Keeper)
OK
Bad Request
Unauthorized
POST /bi_api/v1/services/mspvendor/convert-to-paid HTTP/1.1
Host: keepersecurity.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 29
{
"vendorInternalId": "string"
}{
"success": true,
"message": "Converted Trial to Paid"
}Fetch Current Usage
JWT with HS512 alg
Bearer
vendor_name(Provided by Keeper)
OK
current usage details
Bad Request
Unauthorized
POST /bi_api/v1/services/mspvendor/current-usage HTTP/1.1
Host: keepersecurity.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 29
{
"vendorInternalId": "string"
}{
"success": true,
"usage": {
"mspItem": {
"companyName": "msp",
"companyId": "msp_partnerId",
"invitedUsers": 0,
"products": [
{
"productName": "basePlan",
"productId": 720,
"quantity": 1
},
{
"productName": "addon",
"productId": 916,
"quantity": 1
}
]
},
"mcItems": [
{
"companyName": "mc1",
"companyId": "mc1_partnerId",
"invitedUsers": 0,
"maximumAllowedUsers": 11110,
"plan": "Keeper Business Bundle",
"products": [
{
"productName": "bundle",
"productId": 10011,
"quantity": 2
},
{
"productName": "addon",
"productId": 916,
"quantity": 1.1
}
]
},
{
"companyName": "mc2",
"companyId": "mc2_partnerId",
"invitedUsers": 0,
"maximumAllowedUsers": 1000,
"plan": "Keeper Business Plus Bundle",
"products": [
{
"productName": "bundle2",
"productId": 10011,
"quantity": 1.1
},
{
"productName": "addon",
"productId": 916,
"quantity": 1.1
}
]
}
]
}
}Fetch Monthly Usage
JWT with HS512 alg
Bearer
vendor_name(Provided by Keeper)
OK
usage details
Bad Request
Unauthorized
POST /bi_api/v1/services/mspvendor/monthly-usage HTTP/1.1
Host: keepersecurity.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 56
{
"vendorInternalId": "string",
"month": "08",
"year": "2021"
}{
"success": true,
"usage": {
"mspItem": {
"companyName": "msp",
"companyId": "msp_partner_id",
"products": [
{
"productName": "basePlan",
"productId": 720,
"quantity": 1.1,
"unitPrice": 2.54,
"unit": "string",
"avgMonthlyCost": 3.11
},
{
"productName": "addon",
"productId": 916,
"quantity": 1.1,
"unitPrice": 2.54,
"unit": "string",
"avgMonthlyCost": 3.11
}
],
"total": 2.54
},
"mcItems": [
{
"companyName": "mc1",
"companyId": "mc1_partner_id",
"products": [
{
"productName": "bundle",
"productId": 720,
"quantity": 1.1,
"unitPrice": 2.54,
"unit": "string",
"avgMonthlyCost": 3.11
},
{
"productName": "addon",
"productId": 916,
"quantity": 1.1,
"unitPrice": 2.54,
"unit": "string",
"avgMonthlyCost": 3.11
}
],
"total": 2.54
},
{
"companyName": "mc2",
"companyId": "mc2_partner_id",
"products": [
{
"productName": "bundle2",
"productId": 720,
"quantity": 1.1,
"unitPrice": 2.54,
"unit": "string",
"avgMonthlyCost": 3.11
},
{
"productName": "addon",
"productId": 916,
"quantity": 1.1,
"unitPrice": 2.54,
"unit": "string",
"avgMonthlyCost": 3.11
}
],
"total": 2.54
}
],
"subTotal": 10.1,
"tax": 0,
"totalCost": 10.1,
"currency": "USD"
}
}Cancel Paid Account
JWT with HS512 alg
Bearer
vendor_name(Provided by Keeper)
OK
Bad Request
Unauthorized
POST /bi_api/v1/services/mspvendor/cancel-paid-account HTTP/1.1
Host: keepersecurity.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 20
{
"partnerId": "text"
}{
"success": true,
"message": "Cancelled paid account"
}Create Trial Account
Bearer JWT
vendor_name(Provided by Keeper)
Create Trial Account Request
iso standard country code
USCountry Code followed by phone number
+1 9191919191falseSuccess Response
partner Details
Unique identifier for the given user.
iso standard country code
USzip-code for US , postalCode for non-US countriesUnique identifier for each account.
Bad Request
Unauthorized
POST /bi_api/v1/services/mspvendor/create-trial-account HTTP/1.1
Host: keepersecurity.com
Content-Type: application/json
Accept: */*
Content-Length: 199
{
"name": "text",
"country": "US",
"zipCode": "text",
"email": "name@gmail.com",
"vendorInternalId": "text",
"state": "text",
"city": "text",
"street": "text",
"phone": "+1 9191919191",
"showPricingInMSPConsole": false
}{
"success": true,
"partnerDetails": {
"partnerId": "12345678-1234-5678-1234-567812345678",
"first name": "John",
"last name": "Doe",
"country": "US",
"locale": "en_US",
"state": "Colorado",
"city": "Broomfield",
"street": "4753 Pine Garden Lane",
"zipCode": "80021",
"phone": "+1 9191919191",
"email": "johndoe@partner.test",
"vendorInternalId": "msp-vendor-internal-id12345678-1234-5678-1234-567812345678",
"trial": true,
"showPricingInMSPConsole": false
}
}Get All linked MSPs
JWT with HS512 alg
Bearer
vendor_name(Provided by Keeper)
OK
get All accounts response
Unauthorized
GET /bi_api/v1/services/mspvendor/accounts HTTP/1.1
Host: keepersecurity.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"success": true,
"accounts": [
{
"companyName": "msp11",
"vendorInternalId": "msp11_internalId",
"email": "email11",
"status": "TRIAL"
},
{
"companyName": "msp12",
"vendorInternalId": "msp13_internalId",
"email": "email12",
"status": "ACTIVE"
},
{
"companyName": "msp13",
"vendorInternalId": "msp13_internalId",
"email": "email13",
"status": "EXPIRED"
},
{
"vendorInternalId": "msp14_internalId",
"email": "email14",
"status": "PENDING"
},
{
"vendorInternalId": "msp15_internalId",
"email": "email15",
"status": "REGION_CONFLICT",
"accountRegion": "US"
},
{
"vendorInternalId": "msp16_internalId",
"email": "email16",
"status": "PRODUCT_CONFLICT",
"productType": "ENTERPRISE_TRIAL"
}
]
}Activate Expired Account
JWT with HS512 alg
Bearer
vendor_name(Provided by Keeper)
OK
Bad Request
Unauthorized
POST /bi_api/v1/services/mspvendor/activate-expired HTTP/1.1
Host: keepersecurity.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 27
{
"vendorInternalId": "text"
}{
"success": true,
"message": "Activated Expired Account"
}Get available Keeper MSP products
JWT with HS512 alg
Bearer
vendor_name(Provided by Keeper)
OK
get MSP Products response
Unauthorized
GET /bi_api/v1/services/mspvendor/msp-products HTTP/1.1
Host: keepersecurity.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"success": true,
"products": [
{
"productId": 720,
"productName": "Keeper MSP"
}
]
}Delete Pending/Conflict Account
JWT with HS512 alg
Bearer
vendor_name(Provided by Keeper)
OK
Bad Request
Unauthorized
POST /bi_api/v1/services/mspvendor/remove-account HTTP/1.1
Host: keepersecurity.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 20
{
"partnerId": "text"
}{
"success": true,
"message": "Deleted Pending/Conflict Account"
}Creating a JSON Web Token from your pre-shared secret
After access has been requested, Keeper will share a record with you that will include the necessary information to use the APIs. In order to use any of the above API methods, a JWT needs to be created. In the example below, the 'iat' and 'exp' are 5 minutes apart. The code below will generate the token needed in the web request:
Sample JWT script example
The script below will correctly generate JWT and has the data needed for the 'create-trial-account' POST.
Other methods to generate the JWT
You can use a look like JWT.io to generate your JSON Web Token from the pre-shared secret.
For encryption, use HS512 Algorithm
Use the below json as payload, note this token has a 5 minute expiration
use
secret.keyas secret key to encode the token
Additional API Details
MSP Account Statuses
Certain API endpoints will return the status of an MSP. The below explains what each status is:
PENDING
When an account is created created via the /create-trial-account endpoint, an email is sent inviting the user to activate the account and begin their trial.
TRIAL
A newly activated MSP automatically starts with a 14 day trial. At the end of the trial, if the /convert-to-paid endpoint is not called, the MSP will be deactivated and they can no longer log in. Data will be deleted after 1 year. An expired trial can be re-activated within the data retention period.
ACTIVE
An active, paid MSP account with an expiration date some time in the future.
REGION_CONFLICT
When an account is created via the /create-trial-account endpoint in US region instead of activating account from email link, user activated trial account from website in other region. Field “accountRegion” in the response shows the registered account region.
PRODUCT_CONFLICT
When an account is created created via the /create-trial-account endpoint in US region instead of activating account from email link, user activated enterprise trial/consumer trial account from website. Field “productType” in the response shows the Keeper product type.
EXPIRED
If the /cancel-paid-account endpoint is called, the MSP provided will be immediately expired and billing will stop for this MSP.
Product ID to SKU Mapping
Each Keeper line item has a human-readable name that maps to IDs. These are provided in the usage API endpoints.
720
Keeper MSP
10001
Keeper Business
10002
Keeper Business Plus
10010
Keeper Enterprise
10011
Keeper Enterprise Plus
967
Keeper Connection Manager Add-On
968
Keeper Secrets Manager Add-On
910
KeeperChat Add-On
920
Keeper ARAM Add-On
930
Keeper BreachWatch Add-On
940
Keeper Compliance Reporting Add-On
1011
Keeper 1TB Storage Add-On
1012
Keeper 10TB Storage Add-On
730
Dedicated Service & Support
973
Remote Browser Isolation
978
Privileged Access Management
API definition YAML file
If you wish to explore the APIs in another tool like Postman or the Swagger Editor, download the associated YAML definition of the APIs below.
Sample output of current usage
Sample Output of Monthly Usage

If you need support or have additional questions on the use of these APIs, contact support or your sales representative.
Last updated

