Introduction

With Inperium API, you can easily access our apps and create integrations with other products. Our API is meant to be simple and human-readable: you send requests to endpoints and get responses, just like with any other REST API.

This API reference describes public Inperium endpoints and methods as well as explains important concepts that will help you create awesome integrations with Inperium products.

How is Inperium API organized?

Inperium allows access to all Inperium products as well as common services running under the hood. Depending on your goal, look for endpoints in a corresponding section:

  • Sell API - provides access to contacts, companies, deals, and many more.
  • Talk API (currently in BETA)- provides access to calls, auto receptionist settings, etc.
  • Hub API - provides access to common settings, user and role management, subscription settings, etc.
  • Message Center API - facilitates sending and receiving emails within Inperium Sell.
  • Object Bucket Storage API - manages documents and files stored with Inperium.

New to the API world? Need more details about REST API?

With an API (application programming interface), you can request data or send it to the app without any visual user interface (what you see on your screen). It’s handy for computer-to-computer interaction. In most cases, APIs sort of copy what humans do while using the app.

In REST APIs, the data is sent in and out through specially exposed gateways, called endpoints. A company with a public API allows access to its resources through a dedicated server. Together, the server name followed by an endpoint look like a regular URL. For example, for Inperium it can be https://api.inperium.com/v1/sell/companies.

While each service operates differently, in general you will leverage standard HTTP methods such as GET to query data and POST, PUT, or PATCH to submit data. Standard HTTP responses such as 200 OK or 401 Unauthorized will notify on the call results. Along with these requests, you’ll send or receive data. For example, after querying the list of companies, you’ll get a JSON with company objects. But to create a new company, you have to send a company object in a POST body instead.

Authentication

To access Inperium resources, you’ve got to authenticate your API calls. Inperium allows authenticating with Bearer tokens and with API keys. The latter method is recommended.

API key authentication

The API key is a safe and reliable way to authenticate and authorize your apps with Inperium. Start by creating an API key in Inperium Account. Learn more about generating API keys. Note that Inperium doesn’t store the unencrypted API key, just the last four digits so make sure to copy it before closing the popup window.

To authenticate your calls, include X-API-KEY in the request header.

The API key has the same permissions as the user who generated it (for example, view-only rights). To see your permissions, send GET /users/me request. An API key is valid for 365 days. Once the key expires, the access to Inperium resources will be revoked.

Bearer authentication

When authenticating with a Bearer token, you leverage the same very token that is generated when you log in to the product online. With a token, you can send requests to Inperium API and get access to resources the user is authorized to see. The bearer token consists of the access token and the refresh token. Initially, look for them in the Local Storage.

The Authorization: Bearer should be provided in the request header for every call you make.

The token expires after 1 minute. To continue using API, you have to refresh it by sending a request to /auth/tokens/. The refresh token is valid for 10 minutes.

API key authentication
1$ curl https://api.inperium.com/v1/sell/companies -i -X GET 
2 -H 'Accept: application/json' 
3 -H 'X-API-KEY: $YOUR-APIKEY' 
4 
Bearer authentication
1$ curl https://api.inperium.com/v1/sell/companies -i -X GET 
2 -H 'Accept: application/json' 
3 -H 'Authorization: Bearer $YOUR-TOKEN' 
4 

Quick Start

Ready to start? Let’s dive right in. Follow these steps to get started with Inperium API.

Get your Inperium account

Make sure you have an account with Inperium. It’s a good idea to create a new account dedicated to API integration.

If you are the first user and need more information on how to set a tenant, then refer to Inperium user documentation.

Generate an API key

To authenticate your calls to Inperium API, you have to provide an API key with each request. Otherwise, Inperium will return an error 401 Unauthorized.

To get a key:

  1. Go Inperium Account, sign in, and proceed to the API key page.
  2. Select Add API key, enter its name, and click Generate.
  3. Copy the key and save it to a secure location. Note that Inperium doesn’t store the unencrypted key and you won’t be able to see it after closing the window.

Understand Inperium API structure

Depending on your goal, look for endpoints in a corresponding section:

  • Sell API - provides access to contacts, companies, deals, and many more.
  • Talk API (currently in BETA)- provides access to calls, auto receptionist settings, etc.
  • Hub API - provides access to common settings, user and role management, subscription settings, etc.
  • Message Center API - facilitates sending and receiving emails.
  • Object Bucket Storage API - manages documents and files stored with Inperium.

Send a test GET request

Note: for this tutorial, we assume your company has an active subscription to Inperium Sell.

Let’s start with a safe and easy API call. We’ll query the products currently offered by your company.

Request:

curl -i -X GET \
   -H "Accept:application/json" \
   -H "X-API-KEY:$YOUR-APIKEY" \
 'https://api.inperium.com/v1/sell/products'

Response:

200 OK

{
    "data":[
        {
        "id": "$ID-UUID",
        "tenantId": null,
        "properties":{
            "code": "fl",
            "cost": 350,
            "price": 520,
            "name": "Flute",
            "description": "Entry-level flute"}
        },
        {},
        ...
    ],
    "paging":{
        "pageNumber": 1,
        "pageSize": 20,
        "totalNumberOfRecords": 52,
        "totalNumberOfPages": 3,
        "hasNextPage": true,
        "hasPreviousPage": false,
        "sortingCriteria": "+createdAt",
        "hasMore": true
    }
}

Add query parameters

Like with any other REST API, you can modify your queries by adding parameters. For example, change the number of objects returned per page or query the objects from the next page. For example, let’s update the query to return 25 records per page and get the second page.

curl -i -X GET \
   -H "Accept:application/json" \
   -H "X-API-KEY:$YOUR-APIKEY" \
  'https://api.inperium.com/v1/sell/products?pageSize=25&pageNumber=2'

Send a test POST request

Let’s add a new product. Before sending a POST request, check the incoming object specification, i.e. the parameters the object must have to be accepted by Inperium API. You can always look for the request object in API reference.

In case the object has JSON-formatted properties (and the ProductRequest object does!), retrieve properties by sending GET to https://api.inperium.com/v1/sell/properties?objectType=Products.

Request:

curl -i -X POST \
   -H "Accept:application/json" \
   -H "X-API-KEY:$YOUR-APIKEY" \
   -H "Content-Type:application/json" \
   -d \
    '{
        "code": "hp",
        "cost": 7600,
        "price": 11990,
        "name": "Harp",
        "description": "Full-size pedal harp"
    }' \
 'https://api.inperium.com/v1/sell/products'

Response:

201 CREATED

Send a test DELETE request

  1. To delete a newly created Harp object, you must find out its ID first. Let’s query products and search for “Harp”.

Request:

curl -i -X GET \
   -H "Accept:application/json" \
   -H "X-API-KEY:$YOUR-APIKEY" \
 'https://api.inperium.com/v1/sell/products?name=Harp'

Response:

200 OK

{
    "data":[
        {
            "id": "$ID-UUID",
            "tenantId": null,
            "properties":{
                "code": "hp",
                "cost": 7600,
                "price": 11990,
                "name": "Harp",
                "description": "Full-size pedal harp"
            }
        }
    ],
    "paging":{}
}
  1. Now, knowing the Harp object ID, send a DELETE request to the /products URL ending with the ID of the object to be deleted.

Request:

curl -i -X DELETE \
   -H "Accept:application/json" \
   -H "X-API-KEY:$YOUR-APIKEY" \
 'https://api.inperium.com/v1/sell/products/$ID-UUID'

Response:

204 NO CONTENT

PUT or PATCH?

Inperium allows modifying data with PUT and PATCH requests. The former completely re-writes the object while the latter updates the parameters you pass and keeps remaining as they are.

Object Models

Inperium APIs operate with objects. High-level objects can include smaller subordinary objects. For example the Quote object includes Items, PaymentPlans, and AdditionalFees.

In some cases, the object you submit and the object you receive may slightly vary in structure. The objects returned by Inperium API typically include the UUID generated by the server and other additional parameters. To distinguish models, the incoming object names typically end with “request”. For example, CompanyRequest, ProductRequest, or BillingCompanyRequest.

Incoming object model - CompanyRequest

{
    "companyName": "Arrow Inc.",
    "industry": "RETAIL",
    "type": "LEAD",
    "employeeCount": "100",
    "addressLine1": "232 1st street",
    "addressLine2": "Suite 2210",
    "city": "Newtown",
    "country": "US"
}
1$ curl https://api.inperium.com/v1/sell/companies -i -X GET 
2 -H 'Accept:application/json' 
3 -H 'X-API-KEY:$YOUR-APIKEY' 
4 
200 OK
{
  "data": [
    {
      "id": "$ID-UUID",
      "properties": {
        "companyName": "Arrow Inc.",
        "industry": "RETAIL",
        "type": "LEAD",
        "employeeCount": "100",
        "addressLine1": "232 1st street",
        "addressLine2": "Suite 2210",
        "city": "Newtown",
        "country": "US",
        "dealIds": [
          "$DEAL-UUID",
          "$DEAL-UUID"
        ]
      },
      "createdAt": 1613474117747,
      "updatedAt": 1613474117747
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 20,
    "totalNumberOfRecords": 1,
    "totalNumberOfPages": 1,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "sortingCriteria": null,
    "hasMore": false
  }
}

Responses

Inperium API uses standard HTTP responses for API calls. Depending on the request method (POST, GET, DELETE, PUT, or PATCH), you’ll receive a response that can either be successful or failed.

Successful responses

  • 200 OK is returned for successful GET, PATCH, and PUT operations.
  • 201 CREATED is returned for successful POST operations.
  • 204 NO CONTENT is returned for successful DELETE operations.

200 and 201 responses return the object in the response body. Note that incoming objects and the objects returned in response may slightly vary in structure.

Error responses

  • 400 BAD REQUEST
  • 401 UNAUTHORIZED
  • 404 NOT FOUND
  • 405 METHOD NOT ALLOWED
  • 500 INTERNAL SERVER ERROR and other 5XX errors

The errors come with a description explaining the issue.

Filtering

For most high-level GET requests, Inperium enables you to filter data before retrieving it. You can create flexible and complex queries while searching for records you are interested in. Currently, filtering is different for Sell API and the rest of the services.

Filtering in Sell API

Simple filtering

For queries like “Retrieve all companies belonging to software industry”, you can leverage simple filtering. Add a filtering parameter to your API call and provide the value you are looking for: /endpoint?{parametername}={value}. Sell API will return records that are exact matches.

For example: https://api.inperium.com/v1/sell/companies?industry=SOFTWARE

Advanced filtering

Advanced filtering is a versatile tool for data management. You can create multi-tier complex queries combining AND and OR clauses, organizing filtering parameters into groups, introducing nesting, searching for fuzzy results, etc.

Advanced filtering is supported by GET /companies, GET /contacts, and GET /deals endpoints. Add filter=operator(parameter,value) to your query.

For example, you can search for companies that either demonstrated annual revenue of more than $500,000, or have more than 1,000 employees and reside in the U.S. Seems complex? But let’s break it down into logical groups.

  • [Annual revenue > $500,000] — Condition 1

OR

  • [Employee count > 1,000] AND [Country is USA] — Condition 2 that includes two sub-conditions with AND relationship

On a high level, the filter string looks like: filter=OR(Condition1,Condition2). The condition 1 is: gt(annualRevenue,500000) The condition 2 is a conjunction of two subconditions joined by AND: AND(gt(employeeCount,1000),eq(country,US))

As a result, the final API call will look as follows:

GET https://api.inperium.com/v1/sell/companies?filter=OR(gt(annualRevenue,500000),AND(gt(employeeCount,1000),eq(country,US)))

Supported operators

OperatorDescriptionExample
ANDLogical conjunctionAND(gt(employeeCount,1000),eq(country,US))
ORlogical disjunctionOR(gt(annualRevenue,500000)),gt(employeeCount,1000))
isnullIs empty or unknownisnull(zip)
isnotnullIsn't empty or unknownisnotnull(country)
eqEqualseq(country,US)
neqIsn't equalneq(industry,GOVERNMENT)
gtGreater thangt(employeeCount,1000)
gteGreater than or equalgte(annualRevenue,500000)
ltLess thangt(employeeCount,15)
lteLess than or equalgte(annualRevenue,200000)
inAny ofin(country,US,GE,FR)
ninNone ofnin(industry,HEALTHCARE,FINANCIAL)
btnBetweenbtn(employeeCount,15,50)
likeContainslike(companyName,Enterprise)
notlikeDoesn't containnotlike(companyName,Corp)

Filtering in Hub API, Message Center API, OBS API, Talk API

With remaining APIs, filtering is a mixture of simple and advanced approaches. You can leverage operators such as ‘like’ or ‘equals’ but you can’t create complex filters and apply the OR condition.

Add parameter=operator::value to your query. For example,https://api.inperium.com/v1/sell/products?price=eq::980.

Supported operators

OperatorDescriptionExample
isnullIs empty or unknownisnull(zip)
isnotnullIsn't empty or unknownisnotnull(country)
eqEqualseq(country,US)
neqIsn't equalneq(industry,GOVERNMENT)
gtGreater thangt(employeeCount,1000)
gteGreater than or equalgte(annualRevenue,500000)
ltLess thangt(employeeCount,15)
lteLess than or equalgte(annualRevenue,200000)
inAny ofin(country,US,GE,FR)
ninNone ofnin(industry,HEALTHCARE,FINANCIAL)
btnBetweenbtn(employeeCount,15,50)
likeContainslike(companyName,Enterprise)
notlikeDoesn't containnotlike(companyName,Corp)
1$ curl -i -X GET 
2 -H 'Accept:application/json' 
3 -H 'X-API-KEY:$YOUR-APIKEY' 
4 'https://api.inperium.com/v1/sell/companies?filter=OR(gt(annualRevenue,500000),AND(gt(employeeCount,1000),eq(country,US)))'
200 OK
{
  "data": [
    {
      "id": "$ID-UUID",
      "properties": {
        "domainName": "moondance-academy.com",
        "companyName": "Moondance Academy",
        "userId": "$USER-UUID",
        "annualRevenue": 6000000
      },
      "createdAt": 1613474117747,
      "updatedAt": 1613474117747
    },
    {
      "id": "$ID-UUID",
      "properties": {
        "country": "US",
        "domainName": "ohio-music.com",
        "companyName": "Ohio Community Hall",
        "industry": "GOVERNMENT",
        "userId": "$USER-UUID",
        "employeeCount": "1235",
        "annualRevenue": 300000
      },
      "createdAt": 1613474115547,
      "updatedAt": 1613474115547
    }
  ],
  "paging": {}
}

Paging and Sorting

Paging

To avoid time-consuming queries, Inperium returns data page after page while you can control the number of objects per page and the offset. For example, you’d like to get your companies and run the GET /companies query. Inperium will return the first 50 records and notify you about the remaining companies in the paging section. To query the next 50 records, add the pageNumber=2 parameter to your query. Alternatively, you can update the pageSize parameter.

Sorting

With most data fetching queries, you can sort the results by a certain parameter, for example by name or price, either in ascending (+) or descending (-) order. By default, sorting isn’t applied. To configure sorting, add the sort parameter to your query. For example, sort the companies by the country they originate in, in descending order: sort=-country.

Understanding response

The paging response section is available with almost all bulk listing queries such as GET /companies, GET /contacts, or GET /quotes. Here, you’ll find information about paging and applied sorting.

  • pageNumber: the current page number. If no sorting is applied, the records are divided into pages based on their position in the database, starting from the bottom.
  • pageSize: the number of records returned per page. By default, 20.
  • totalNumberOfRecords: how many records are available in total.
  • totalNumberOfPages: how many pages are populated all together.
  • hasNextPage: the true value notifies you that there are more pages containing records. The false value means this is the last page.
  • hasPreviousPage: the true value notifies you that there are pages before the current one. The false value means this is the first page.
  • sortingCriteria: the null value marks that no sorting is applied. + with a parameter name means ascending sorting (e.g., +price), - with a parameter name means descending sorting (e.g., -country).
  • hasMore: the true value notifies you that there are more records besides those retrieved. The false value means this is no more data left.
GET Companies with paging and sorting
1$ curl https://api.inperium.com/v1/sell/companies?pageNumber=2&sort=-country -i -X GET 
2 -H 'Accept:application/json' 
3 -H 'X-API-KEY:$YOUR-APIKEY' 
4 
200 OK
{
  "data": [],
  "paging": {
    "pageNumber": 2,
    "pageSize": 50,
    "totalNumberOfRecords": 189,
    "totalNumberOfPages": 4,
    "hasNextPage": true,
    "hasPreviousPage": true,
    "sortingCriteria": "-country",
    "hasMore": true
  }
}

Rate Limits

We’ve enforced rate limiting for API calls to ensure all customers have no-latency access to Inperium resources. If API key exceeds the call limit, you won’t have access to Inperium API for a while.

Integrations

We encourage you to create custom integrations with Inperium and enrich your corporate workflows.

In our turn, we are about to launch the Inperium Marketplace, a place with useful apps and ready-to-use integrations that will help you seamlessly connect Inperium products with your favorite tools.

Looking for ready-to-use integrations?

Check out our Marketplace!

Hub API

The Inperium Hub API provides access to the service that manages tenant and account settings, subscriptions, user rights and permissions. The Hub service (account.inperium.com) is an essential part of Inperium ecosystem. All tenants regardless of apps included in their subscriptions have access to the Hub at all times.

API Keys

API keys are used instead of bearer tokens to authenticate applications connecting to Inperium via API.

endpoints
get

/apiKeys

post

/apiKeys

get

/apiKeys/{id}

put

/apiKeys/{id}

delete

/apiKeys/{id}

put

/apiKeys/{id}/regenerate

Retrieve API keys

Use this endpoint to get a list of API keys. This endpoint supports paging and sorting.

Parameters

id string

Unique ID of the API key

name string

Name of the API key

pageNumber integer

This parameter affects paging. It defines the chunk of data to be retrieved, e.g., records from page 3.

pageSize integer

This parameter affects paging. It defines the number of records per page, e.g., 20 records per page.

sort string

This parameter affects sorting. It specifies the property name to sort records, e.g., by price or date.

Returns

200

Returns API keys.

default

Bad request, security violation, or internal server error.

get

/apiKeys

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/apiKeys \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "enabled": true,
      "key": "string",
      "expiresAt": 0
    },
    {
      "id": "string",
      "name": "string",
      "enabled": true,
      "key": "string",
      "expiresAt": 0
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 20,
    "totalNumberOfRecords": 1,
    "totalNumberOfPages": 1,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "sortingCriteria": null,
    "hasMore": false
  }
}

Create an API key

Use this endpoint to create a new API key.

Request Body

Content Type: application/json

Hide

name string Required

A user-friendly key name.

enabled boolean Required

The key status.

Returns

201

Returns a new API key. Make sure to save it to a secure location. Inperium Hub doesn't store API keys.

default

Bad request, security violation, or internal server error.

post

/apiKeys

Select Library

shell

java

php

node

python

go

csharp

1curl --request post \
2	--url https://api.inperium.com/v1/hub/apiKeys \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"name":"string","enabled":true}'
response 201
{
  "id": "string",
  "name": "string",
  "enabled": true,
  "key": "string",
  "expiresAt": 0
}

Get an API key

Use this endpoint to retrieve an existing API key by its ID. Note that Inperium doesn't store the unencrypted API key, just the last four digits.

Parameters

id string

A unique ID of the object.

Returns

200

Returns the requested API key.

default

Bad request, security violation, or internal server error

get

/apiKeys/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/apiKeys/%7Bid%7D \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "id": "string",
  "name": "string",
  "enabled": true,
  "key": "string",
  "expiresAt": 0
}

Update an API key

Use this endpoint to update an existing API key by its ID.

Parameters

id string

A unique ID of the object.

Request Body

Content Type: application/json

Hide

name string Required

A user-friendly key name.

enabled boolean Required

The key status.

Returns

200

Returns the updated API key.

default

Bad request, security violation, or internal server error.

put

/apiKeys/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/apiKeys/%7Bid%7D \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"name":"string","enabled":true}'
response 200
{
  "id": "string",
  "name": "string",
  "enabled": true,
  "key": "string",
  "expiresAt": 0
}

Delete an API key

Use this endpoint to locate an API key by its ID and delete it. Note that this action will instantly revoke access for users and services utilizing this key.

Parameters

id string

A unique ID of the object.

Returns

204

The key has been removed.

default

Bad request, security violation, or internal server error.

delete

/apiKeys/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request delete \
2	--url https://api.inperium.com/v1/hub/apiKeys/%7Bid%7D \
3	--header 'X-API-KEY: $YOUR-APIKEY'

Regenerate a key

Use this endpoint to regenerate an existing API key if it was compromised. The key secret will be regenerated.

Parameters

id string

A unique ID of the object.

Returns

200

Returns the updated API key.

default

Bad request, security violation, or internal server error.

put

/apiKeys/{id}/regenerate

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/apiKeys/%7Bid%7D/regenerate \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "id": "string",
  "name": "string",
  "enabled": true,
  "key": "string",
  "expiresAt": 0
}

Auth

Authentication and authorization methods used to access Inperium Sell.

endpoints
get

/auth/signature

post

/auth/tokens

post

/auth/logout

post

/auth/twoFactor/send

post

/auth/twoFactor/verify

Verify signature

Use this endpoint to get a public key and check Hub auth signature. Other Inperium services and third-party apps or plugins leverage this signature to verify the authenticity of the token.

Returns

200

Returns the auth signature.

default

Bad request, security violation, or internal server error.

get

/auth/signature

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/auth/signature \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "publicKey": "string"
}

Create a token

Use this endpoint to request a new token. This endpoint returns an access token and refresh token.

Request Body

Content Type: application/json

Hide

strategy string Required

The authentication strategy. Select one of the available options.

One of API_KEY, PASSWORD, REFRESH.

email string

The email of the user attempting to log in.

password string

The password of the user.

token string

The token for generating a new authentication token. Depending on the authentication strategy, pass the refresh token or the API key.

Returns

200

Returns the newly generated auth token.

401

Unauthorized. The credentials are wrong or two-factor authentication is required.

default

Bad request, security violation, or internal server error.

post

/auth/tokens

Select Library

shell

java

php

node

python

go

csharp

1curl --request post \
2	--url https://api.inperium.com/v1/hub/auth/tokens \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"strategy":"string","email":"string","password":"string","token":"string"}'
response 200
{
  "accessToken": "string",
  "refreshToken": "string"
}

Log out

Use this endpoint to log out the principal and invalidate the principal's access and refresh tokens.

Returns

200

The user logged out.

401

Unauthorized. The credentials are wrong or two-factor authentication is required.

default

Bad request, security violation, or internal server error.

post

/auth/logout

Select Library

shell

java

php

node

python

go

csharp

1curl --request post \
2	--url https://api.inperium.com/v1/hub/auth/logout \
3	--header 'X-API-KEY: $YOUR-APIKEY'

Create a 2FA token

Use this endpoint to create a new two-factor authentication token.

Request Body

Content Type: application/json

Hide

email string

The email of the user requesting the two-factor auth token.

password string

The password of the user requesting the two-factor auth token.

Returns

200

Returns the 2FA token.

401

Unauthorized. The attempt to request a 2FA token failed.

default

Bad request, security violation, or internal server error.

post

/auth/twoFactor/send

Select Library

shell

java

php

node

python

go

csharp

1curl --request post \
2	--url https://api.inperium.com/v1/hub/auth/twoFactor/send \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"email":"string","password":"string"}'
response 200
{
  "method": "string",
  "redactedMethod": "string"
}

Verify a 2FA token

Use this endpoint to verify the one-off code sent to a user.

Request Body

Content Type: application/json

Hide

email string

The email of the user attempting to log in.

password string

The password of the user.

token string

The one-off code to verify.

Returns

200

Returns newly generated tokens.

401

Unauthorized. The 2FA token is invalid.

default

Bad request, security violation, or internal server error.

post

/auth/twoFactor/verify

Select Library

shell

java

php

node

python

go

csharp

1curl --request post \
2	--url https://api.inperium.com/v1/hub/auth/twoFactor/verify \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"email":"string","password":"string","token":"string"}'
response 200
{
  "accessToken": "string",
  "refreshToken": "string"
}

Features

Each subscription plan includes a list of features that will be available to a customer after signing up for Inperium. These features are bound to Inperium products and plans.

endpoints
get

/features

get

/features/{anchor}

get

/tenants/features/{anchor}/usages

post

/tenants/features/{anchor}/usages

put

/tenants/features/{anchor}/usages

Retrieve features

Use this endpoint to retrieve a list of available features.

Returns

200

Returns an array of features.

default

Bad request, security violation, or internal server error.

get

/features

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/features \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
[
  {
    "anchor": "string",
    "product": "string",
    "name": "string"
  },
  {
    "anchor": "string",
    "product": "string",
    "name": "string"
  }
]

Retrieve a feature

Use this endpoint to retrieve details for a specific feature.

Parameters

anchor string

A unique anchor of feature.

Returns

200

Returns the feature record.

default

Bad request, security violation, or internal server error.

get

/features/{anchor}

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/features/%7Banchor%7D \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "anchor": "string",
  "product": "string",
  "name": "string"
}

Retrieve the feature usage

Use this endpoint to get information about the usage of a feature.

Parameters

anchor string

A unique anchor of the feature.

userId string

A unique identifier of the user.

Returns

200

Returns the feature record.

default

Bad request, security violation, or internal server error.

get

/tenants/features/{anchor}/usages

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/tenants/features/%7Banchor%7D/usages \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "limitUsage": {
    "limit": {
      "anchor": "string",
      "infinite": true,
      "thresholdValue": 0
    },
    "currentValue": 0
  }
}

Register a feature usage

Use this endpoint to inform the Hub about a new consumption of a feature. As a result, the Hub can restrict the use of the feature or withdraw money from the tenant's balance.

Parameters

anchor string

A unique anchor of the feature.

Request Body

Content Type: application/json

Hide

quantity integer Required

The number demonstrating how many times the feature was consumed. Depending on the endpoint that is in use, the quantity can be either the total feature usage count or its increment.

userId string

A unique identifier of a record or resource.

usageId string

A unique identifier of a record or resource.

metadata object

The objects defines an extra information about the usage. For example, an addressee of a call.

Returns

200

Returns the feature record.

402

Use of the function is restricted because the feature is an add-on and withdrawing from the balance failed.

403

Use of the function is restricted because the feature is limited and the limit is exceeded.

default

Bad request, security violation, or internal server error.

post

/tenants/features/{anchor}/usages

Select Library

shell

java

php

node

python

go

csharp

1curl --request post \
2	--url https://api.inperium.com/v1/hub/tenants/features/%7Banchor%7D/usages \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"quantity":0,"userId":"12345-abcd-6789-defg","usageId":"12345-abcd-6789-defg","metadata":{}}'
response 200
{
  "limitUsage": {
    "limit": {
      "anchor": "string",
      "infinite": true,
      "thresholdValue": 0
    },
    "currentValue": 0
  }
}

Update the usage count

Use this endpoint to update the counter. If the feature consumption value overtops the previous one, the Hub will restrict the use of the feature or withdraw money from the tenant's balance.

Parameters

anchor string

A unique anchor of the feature.

Request Body

Content Type: application/json

Hide

quantity integer Required

The number demonstrating how many times the feature was consumed. Depending on the endpoint that is in use, the quantity can be either the total feature usage count or its increment.

userId string

A unique identifier of a record or resource.

usageId string

A unique identifier of a record or resource.

metadata object

The objects defines an extra information about the usage. For example, an addressee of a call.

Returns

200

Returns the feature record.

402

Use of the function is restricted because the feature is an add-on and withdrawing from the balance failed.

403

Use of the function is restricted because the feature is limited and the limit is exceeded.

default

Bad request, security violation, or internal server error.

put

/tenants/features/{anchor}/usages

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/tenants/features/%7Banchor%7D/usages \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"quantity":0,"userId":"12345-abcd-6789-defg","usageId":"12345-abcd-6789-defg","metadata":{}}'
response 200
{
  "limitUsage": {
    "limit": {
      "anchor": "string",
      "infinite": true,
      "thresholdValue": 0
    },
    "currentValue": 0
  }
}

Health Checks

Since Inperium runs multiple services under the hood, it's crucial to identify the health state of each service. You can rely on the health state information when troubleshooting issues.

endpoints
get

/health

Check health

Use this endpoint to verify that the microservice runs as usual.

Returns

200

Returns empty response that is used for OK non-returning operations.

default

Bad request, security violation, or internal server error.

get

/health

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/health \
3	--header 'X-API-KEY: $YOUR-APIKEY'

Limits

Volume- and usage-based restrictions applied to tenant subscriptions and plans.

endpoints
get

/limitUsages

Retrieve limits

Use this endpoint to get a list of existing limit usages. This endpoint supports paging and sorting.

Parameters

anchor string

The anchor of a referenced limit.

pageNumber integer

This parameter affects paging. It defines the chunk of data to be retrieved, e.g., records from page 3.

pageSize integer

This parameter affects paging. It defines the number of records per page, e.g., 20 records per page.

sort string

This parameter affects sorting. It specifies the property name to sort records, e.g., by price or date.

Returns

200

Returns the list of limit usages.

default

Bad request, security violation, or internal server error.

get

/limitUsages

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/limitUsages \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "data": [
    {
      "limit": {
        "anchor": "string",
        "infinite": true,
        "thresholdValue": 0
      },
      "currentValue": 0
    },
    {
      "limit": {
        "anchor": "string",
        "infinite": true,
        "thresholdValue": 0
      },
      "currentValue": 0
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 20,
    "totalNumberOfRecords": 1,
    "totalNumberOfPages": 1,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "sortingCriteria": null,
    "hasMore": false
  }
}

Permissions

Inperium enables customers to delegate access to features within Inperium products. Each permission describes an atomic action, for example, the ability to import contacts. The permissions are grouped in roles that are later assigned to users. The permissions are typically associated with features, for example the ability to retrieve companies is a part of the 'COMPANY_MANAGEMENT' feature. The 'MANAGE_TENANT_SETTINGS' is unique permission that isn't tied to any feature.

endpoints
get

/permissions

Retrieve permissions

Use this endpoint to retrieve a list of available permissions.

Returns

200

Returns a list of permissions.

default

Bad request, security violation, or internal server error.

get

/permissions

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/permissions \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
[
  {
    "anchor": "string",
    "feature": "string"
  },
  {
    "anchor": "string",
    "feature": "string"
  }
]

Products

Products are items or services the tenant offers. Each product has a description, retail price, and cost.

endpoints
get

/products

get

/products/{anchor}

get

/products/{anchor}/plans

Retrieve products

Use this endpoint to get a list of products available to your tenant, with names, available subscription plans, etc.

Returns

200

Returns an array of products.

default

Bad request, security violation, or internal server error.

get

/products

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/products \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
[
  {
    "anchor": "string",
    "name": "string",
    "shortDescription": "string",
    "description": "string",
    "longDescription": "string",
    "unitLabel": "string",
    "aggregateUsage": "string",
    "usageType": "string",
    "type": "string",
    "billingScheme": "string",
    "plans": [
      {
        "id": "12345-abcd-6789-defg",
        "anchor": "string",
        "name": "string",
        "description": "string",
        "trialPeriodDays": 0,
        "beta": {
          "id": "12345-abcd-6789-defg",
          "name": "string",
          "description": "string",
          "trialOnly": true,
          "since": 0,
          "until": 0
        }
      },
      {
        "id": "12345-abcd-6789-defg",
        "anchor": "string",
        "name": "string",
        "description": "string",
        "trialPeriodDays": 0,
        "beta": {
          "id": "12345-abcd-6789-defg",
          "name": "string",
          "description": "string",
          "trialOnly": true,
          "since": 0,
          "until": 0
        }
      }
    ],
    "inBeta": true,
    "iconUrl": "string",
    "previewUrl": "string"
  },
  {
    "anchor": "string",
    "name": "string",
    "shortDescription": "string",
    "description": "string",
    "longDescription": "string",
    "unitLabel": "string",
    "aggregateUsage": "string",
    "usageType": "string",
    "type": "string",
    "billingScheme": "string",
    "plans": [
      {
        "id": "12345-abcd-6789-defg",
        "anchor": "string",
        "name": "string",
        "description": "string",
        "trialPeriodDays": 0,
        "beta": {
          "id": "12345-abcd-6789-defg",
          "name": "string",
          "description": "string",
          "trialOnly": true,
          "since": 0,
          "until": 0
        }
      },
      {
        "id": "12345-abcd-6789-defg",
        "anchor": "string",
        "name": "string",
        "description": "string",
        "trialPeriodDays": 0,
        "beta": {
          "id": "12345-abcd-6789-defg",
          "name": "string",
          "description": "string",
          "trialOnly": true,
          "since": 0,
          "until": 0
        }
      }
    ],
    "inBeta": true,
    "iconUrl": "string",
    "previewUrl": "string"
  }
]

Get a specific product

Use this endpoint to retrieve information about a specific product.

Parameters

anchor string

A unique anchor of a product, e.g. Sell or Talk.

Returns

200

Returns a product.

default

Bad request, security violation, or internal server error.

get

/products/{anchor}

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/products/%7Banchor%7D \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "anchor": "string",
  "name": "string",
  "shortDescription": "string",
  "description": "string",
  "longDescription": "string",
  "unitLabel": "string",
  "aggregateUsage": "string",
  "usageType": "string",
  "type": "string",
  "billingScheme": "string",
  "plans": [
    {
      "id": "12345-abcd-6789-defg",
      "anchor": "string",
      "name": "string",
      "description": "string",
      "trialPeriodDays": 0,
      "beta": {
        "id": "12345-abcd-6789-defg",
        "name": "string",
        "description": "string",
        "trialOnly": true,
        "since": 0,
        "until": 0
      }
    },
    {
      "id": "12345-abcd-6789-defg",
      "anchor": "string",
      "name": "string",
      "description": "string",
      "trialPeriodDays": 0,
      "beta": {
        "id": "12345-abcd-6789-defg",
        "name": "string",
        "description": "string",
        "trialOnly": true,
        "since": 0,
        "until": 0
      }
    }
  ],
  "inBeta": true,
  "iconUrl": "string",
  "previewUrl": "string"
}

Get subscription plans

Use this endpoint to see the plans available for a certain product. You'll also see the plan that is active now.

Parameters

anchor string

A unique anchor of a product, e.g., Sell or Talk.

Returns

200

Returns available plans.

default

Bad request, security violation, or internal server error.

get

/products/{anchor}/plans

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/products/%7Banchor%7D/plans \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
[
  {},
  {}
]

Roles

Configure user roles to delegate access to Inperium features. For example, you can create administrator and manager roles.

endpoints
get

/roles

post

/roles

get

/roles/{id}

put

/roles/{id}

delete

/roles/{id}

Retrieve roles

Use this endpoint to get a list of available roles, with permissions assigned to each role. This endpoint supports paging and sorting.

Parameters

id string

Unique ID of the role.

name string

The role title.

pageNumber integer

This parameter affects paging. It defines the chunk of data to be retrieved, e.g., records from page 3.

pageSize integer

This parameter affects paging. It defines the number of records per page, e.g., 20 records per page.

sort string

This parameter affects sorting. It specifies the property name to sort records, e.g., by price or date.

Returns

200

Returns the list of roles.

default

Bad request, security violation, or internal server error.

get

/roles

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/roles \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "data": [
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 20,
    "totalNumberOfRecords": 1,
    "totalNumberOfPages": 1,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "sortingCriteria": null,
    "hasMore": false
  }
}

Create a role

Use this endpoint to add a new role to Inperium.

Request Body

Content Type: application/json

Hide

name string Required

The role title.

description string

The optional description.

permissions array string Required

The list of permissions.

Returns

201

Returns the newly created role.

default

Bad request, security violation, or internal server error.

post

/roles

Select Library

shell

java

php

node

python

go

csharp

1curl --request post \
2	--url https://api.inperium.com/v1/hub/roles \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"name":"string","description":"string","permissions":["string","string"]}'
response 201
{
  "id": "12345-abcd-6789-defg",
  "hash": "string",
  "name": "string",
  "description": "string",
  "predefined": true,
  "permissions": [
    "string",
    "string"
  ]
}

Retrieve a role

Use this endpoint to retrieve a specific role and see associated permissions.

Parameters

id string

A unique ID of the object.

Returns

200

Returns a requested role.

default

Bad request, security violation, or internal server error

get

/roles/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/roles/%7Bid%7D \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "id": "12345-abcd-6789-defg",
  "hash": "string",
  "name": "string",
  "description": "string",
  "predefined": true,
  "permissions": [
    "string",
    "string"
  ]
}

Update a role

Use this endpoint to update an existing role. Note that the role properties will be overwritten.

Parameters

id string

A unique ID of the object.

Request Body

Content Type: application/json

Hide

name string Required

The role title.

description string

The optional description.

permissions array string Required

The list of permissions.

Returns

200

Returns an updated role.

default

Bad request, security violation, or internal server error.

put

/roles/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/roles/%7Bid%7D \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"name":"string","description":"string","permissions":["string","string"]}'
response 200
{
  "id": "12345-abcd-6789-defg",
  "hash": "string",
  "name": "string",
  "description": "string",
  "predefined": true,
  "permissions": [
    "string",
    "string"
  ]
}

Delete a role

Use this endpoint to remove an existing role.

Parameters

id string

A unique ID of the object.

Returns

204

The role has been successfully deleted.

default

Bad request, security violation, or internal server error.

delete

/roles/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request delete \
2	--url https://api.inperium.com/v1/hub/roles/%7Bid%7D \
3	--header 'X-API-KEY: $YOUR-APIKEY'

Services

Inperium Talk provides various communication services such as the ability to generate voice recordings based on text and vice versa.

endpoints
get

/services/estimateSubscriptionCost

Forecast subscription cost

Use this endpoint to calculate the estimated cost of a subscription, based on the given parameters.

Parameters

planId string

The ID of the plan.

interval string

The billing interval.

One of MONTH, YEAR.

promotionCode string

A promotion code that can be used to reduce the final cost.

licensedQuantity integer

The number of licenses to take into consideration while calculating the estimated cost.

Returns

200

Returns the estimated cost of the subscription.

default

Bad request, security violation, or internal server error.

get

/services/estimateSubscriptionCost

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/services/estimateSubscriptionCost \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "amountPerUser": 0,
  "totalAmount": 0,
  "discountAmount": 0,
  "totalDiscountedAmount": 0,
  "currency": "string",
  "interval": "string",
  "licensedQuantity": 0,
  "promotionCode": "string",
  "items": [
    {
      "name": "string",
      "type": "string",
      "amountPerUser": 0,
      "totalAmount": 0,
      "discountAmount": 0,
      "totalDiscountedAmount": 0,
      "licensedQuantity": 0
    },
    {
      "name": "string",
      "type": "string",
      "amountPerUser": 0,
      "totalAmount": 0,
      "discountAmount": 0,
      "totalDiscountedAmount": 0,
      "licensedQuantity": 0
    }
  ]
}

Subscriptions

Tenants have an option to choose the subscription type and billing period.

endpoints
get

/subscriptions

post

/subscriptions

patch

/subscriptions/{id}

get

/subscriptions/{id}

Retrieve subscriptions

Use this endpoint to get a complete list of subscriptions for the current tenant.

Parameters

state string

The state of the subscription to be found.

product string

The product the subscription is associated with.

Returns

200

Returns the list of subscriptions.

default

Bad request, security violation, or internal server error.

get

/subscriptions

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/subscriptions \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
[
  {
    "id": "12345-abcd-6789-defg",
    "state": "string",
    "currentPeriodStart": 0,
    "currentPeriodEnd": 0,
    "startDate": 0,
    "licensedQuantity": 0,
    "quantity": 0,
    "discountAmount": 0,
    "items": [
      {
        "id": "12345-abcd-6789-defg",
        "licensedQuantity": 0,
        "quantity": 0,
        "type": "string",
        "assignable": true
      },
      {
        "id": "12345-abcd-6789-defg",
        "licensedQuantity": 0,
        "quantity": 0,
        "type": "string",
        "assignable": true
      }
    ]
  },
  {
    "id": "12345-abcd-6789-defg",
    "state": "string",
    "currentPeriodStart": 0,
    "currentPeriodEnd": 0,
    "startDate": 0,
    "licensedQuantity": 0,
    "quantity": 0,
    "discountAmount": 0,
    "items": [
      {
        "id": "12345-abcd-6789-defg",
        "licensedQuantity": 0,
        "quantity": 0,
        "type": "string",
        "assignable": true
      },
      {
        "id": "12345-abcd-6789-defg",
        "licensedQuantity": 0,
        "quantity": 0,
        "type": "string",
        "assignable": true
      }
    ]
  }
]

Start a new subscription

Use this endpoint to start a new trial subscription or to purchase one.

Request Body

Content Type: application/json

Hide

planId string Required

A unique identifier of a record or resource.

trial boolean Required

The true/false parameter defining if the subscription is trial or not.

interval string

The billing frequency. This is the enum parameter.

One of MONTH, YEAR.

licensedQuantity integer

The number of requested licenses.

betaAccessCode string

An access code to allow subscribing to a product that is in beta.

promotionCode string

A promotion code to receive a discount off the subscription.

Returns

200

Returns a new subscription. The subscription has successfully started.

default

Bad request, security violation, or internal server error.

post

/subscriptions

Select Library

shell

java

php

node

python

go

csharp

1curl --request post \
2	--url https://api.inperium.com/v1/hub/subscriptions \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"planId":"12345-abcd-6789-defg","trial":true,"interval":"string","licensedQuantity":0,"betaAccessCode":"string","promotionCode":"string"}'
response 200
{
  "id": "12345-abcd-6789-defg",
  "state": "string",
  "currentPeriodStart": 0,
  "currentPeriodEnd": 0,
  "startDate": 0,
  "licensedQuantity": 0,
  "quantity": 0,
  "discountAmount": 0,
  "items": [
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    },
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    }
  ]
}

Update a subscription

Use this endpoint to change a plan, for example, to upgrade subscription to a bigger plan.

Parameters

id string

A unique ID of the object.

Request Body

Content Type: application/json

Hide

newPlanId string

A unique identifier of a record or resource.

newInterval string

The billing frequency. This is the enum parameter.

One of MONTH, YEAR.

newLicenseQuantity integer

The number of licenses. The minimum number is 1.

promotionCode string

A promotion code to receive a discount off the subscription.

Returns

200

Returns an updated subscription. The subscription has been updated.

default

Bad request, security violation, or internal server error.

patch

/subscriptions/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request patch \
2	--url https://api.inperium.com/v1/hub/subscriptions/%7Bid%7D \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"newPlanId":"12345-abcd-6789-defg","newInterval":"string","newLicenseQuantity":0,"promotionCode":"string"}'
response 200
{
  "id": "12345-abcd-6789-defg",
  "state": "string",
  "currentPeriodStart": 0,
  "currentPeriodEnd": 0,
  "startDate": 0,
  "licensedQuantity": 0,
  "quantity": 0,
  "discountAmount": 0,
  "items": [
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    },
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    }
  ]
}

Retrieve a subscription

Use this endpoint to get additional information about the subscription.

Parameters

id string

A unique ID of the object.

newLicenseQuantity integer

The new license count to calculate the price. Minimum is 1.

Returns

200

Returns full information about a subscription.

default

Bad request, security violation, or internal server error.

get

/subscriptions/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/subscriptions/%7Bid%7D \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "id": "12345-abcd-6789-defg",
  "state": "string",
  "currentPeriodStart": 0,
  "currentPeriodEnd": 0,
  "startDate": 0,
  "licensedQuantity": 0,
  "quantity": 0,
  "discountAmount": 0,
  "items": [
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    },
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    }
  ],
  "currentPrice": 0,
  "nextPeriodStart": 0,
  "newPrice": 0
}

Tenants

Tenant is the central concept of Inperium. On a high level, the tenant is a company that has signed up for Inperium. With Hub API, you can configure the main tenant settings such as subscription plans, Inperium products, and users.

endpoints
get

/tenants/{id}

patch

/tenants/{id}

delete

/tenants/{id}

put

/tenants/companyInfo

put

/tenants/address

put

/tenants/billingContact

put

/tenants/paymentMethod

Retrieve a tenant

Use this endpoint to get information about the tenant.

Parameters

id string

A unique ID of the object.

Returns

200

Returns the Tenant object.

404

The tenant is not found.

default

Bad request, security violation, or internal server error.

get

/tenants/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/tenants/%7Bid%7D \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "id": "12345-abcd-6789-defg",
  "companyName": "string",
  "companySize": "string",
  "industry": "string",
  "completedProfile": true,
  "addressLine1": "string",
  "addressLine2": "string",
  "city": "string",
  "domainName": "string",
  "state": "string",
  "country": "string",
  "zip": "string",
  "billingContact": {
    "id": "12345-abcd-6789-defg",
    "companyName": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phoneNumber": "string",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "domainName": "string",
    "state": "string",
    "zip": "string",
    "country": "string",
    "ein": "string"
  },
  "paymentMethod": {
    "id": "12345-abcd-6789-defg",
    "name": "string",
    "type": "string",
    "last4": "string",
    "expMonth": 0,
    "expYear": 0
  },
  "subscriptions": [
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "defaultLanguage": "string",
  "defaultTimezone": "string",
  "billingCurrency": "string",
  "features": [
    "string",
    "string"
  ],
  "createdAt": "1618833000",
  "updatedAt": "1618833030"
}

Partially update a tenant

Use this endpoint to partially update a specific tenant.

Parameters

id string

A unique ID of the object.

Request Body

Content Type: application/json

Hide

companyName string

The name of the company.

companySize string

The number of employees.

One of 1, 2, 11, 51, 201, 501, 1001, 5001, 10001.

industry string

The business area the company belongs to.

One of SOFTWARE, REAL_ESTATE, FINANCIAL_SERVICES, RETAIL, MEDIA, HEALTHCARE, GOVERNMENT, OTHER.

Returns

200

Returns an updated Tenant object.

default

Bad request, security violation, or internal server error.

patch

/tenants/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request patch \
2	--url https://api.inperium.com/v1/hub/tenants/%7Bid%7D \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"companyName":"string","companySize":"string","industry":"string"}'
response 200
{
  "id": "12345-abcd-6789-defg",
  "companyName": "string",
  "companySize": "string",
  "industry": "string",
  "completedProfile": true,
  "addressLine1": "string",
  "addressLine2": "string",
  "city": "string",
  "domainName": "string",
  "state": "string",
  "country": "string",
  "zip": "string",
  "billingContact": {
    "id": "12345-abcd-6789-defg",
    "companyName": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phoneNumber": "string",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "domainName": "string",
    "state": "string",
    "zip": "string",
    "country": "string",
    "ein": "string"
  },
  "paymentMethod": {
    "id": "12345-abcd-6789-defg",
    "name": "string",
    "type": "string",
    "last4": "string",
    "expMonth": 0,
    "expYear": 0
  },
  "subscriptions": [
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "defaultLanguage": "string",
  "defaultTimezone": "string",
  "billingCurrency": "string",
  "features": [
    "string",
    "string"
  ],
  "createdAt": "1618833000",
  "updatedAt": "1618833030"
}

Delete a tenant

Use this endpoint to delete a tenant including all its data.

Parameters

id string

A unique ID of the object.

Returns

204

The tenant has been successfully deleted.

404

The tenant is not found.

default

Bad request, security violation, or internal server error.

delete

/tenants/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request delete \
2	--url https://api.inperium.com/v1/hub/tenants/%7Bid%7D \
3	--header 'X-API-KEY: $YOUR-APIKEY'

Update company information

Use this endpoint to update information about the tenant's company such as address or default timezone.

Request Body

Content Type: application/json

Hide

companyName string

The name of the company.

domainName string

The company website.

defaultLanguage string

The preferred language.

defaultTimezone string

The operational time zone.

Returns

200

The tenant has been updated.

default

Bad request, security violation, or internal server error.

put

/tenants/companyInfo

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/tenants/companyInfo \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"companyName":"string","domainName":"string","defaultLanguage":"string","defaultTimezone":"string"}'
response 200
{
  "id": "12345-abcd-6789-defg",
  "companyName": "string",
  "companySize": "string",
  "industry": "string",
  "completedProfile": true,
  "addressLine1": "string",
  "addressLine2": "string",
  "city": "string",
  "domainName": "string",
  "state": "string",
  "country": "string",
  "zip": "string",
  "billingContact": {
    "id": "12345-abcd-6789-defg",
    "companyName": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phoneNumber": "string",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "domainName": "string",
    "state": "string",
    "zip": "string",
    "country": "string",
    "ein": "string"
  },
  "paymentMethod": {
    "id": "12345-abcd-6789-defg",
    "name": "string",
    "type": "string",
    "last4": "string",
    "expMonth": 0,
    "expYear": 0
  },
  "subscriptions": [
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "defaultLanguage": "string",
  "defaultTimezone": "string",
  "billingCurrency": "string",
  "features": [
    "string",
    "string"
  ],
  "createdAt": "1618833000",
  "updatedAt": "1618833030"
}

Update an address

Use this endpoint to update the address.

Request Body

Content Type: application/json

Hide

addressLine1 string

The street, building, office, or suite.

addressLine2 string

The street, building, office, or suite.

city string

The city where the business is registered or where its office is located.

state string

The state where the business is registered or where its office is located.

country string

The origin country.

zip string

The postal code.

Returns

200

The tenant's address has been updated.

default

Bad request, security violation, or internal server error.

put

/tenants/address

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/tenants/address \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"addressLine1":"string","addressLine2":"string","city":"string","state":"string","country":"string","zip":"string"}'
response 200
{
  "id": "12345-abcd-6789-defg",
  "companyName": "string",
  "companySize": "string",
  "industry": "string",
  "completedProfile": true,
  "addressLine1": "string",
  "addressLine2": "string",
  "city": "string",
  "domainName": "string",
  "state": "string",
  "country": "string",
  "zip": "string",
  "billingContact": {
    "id": "12345-abcd-6789-defg",
    "companyName": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phoneNumber": "string",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "domainName": "string",
    "state": "string",
    "zip": "string",
    "country": "string",
    "ein": "string"
  },
  "paymentMethod": {
    "id": "12345-abcd-6789-defg",
    "name": "string",
    "type": "string",
    "last4": "string",
    "expMonth": 0,
    "expYear": 0
  },
  "subscriptions": [
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "defaultLanguage": "string",
  "defaultTimezone": "string",
  "billingCurrency": "string",
  "features": [
    "string",
    "string"
  ],
  "createdAt": "1618833000",
  "updatedAt": "1618833030"
}

Update billing

Use this endpoint to update tenant's billing details.

Request Body

Content Type: application/json

Hide

companyName string Required

The name of the company.

firstName string Required

The given name of the user.

lastName string Required

The family name of the user.

email string Required

The email address associated with the user account.

phoneNumber string

The user's phone number.

addressLine1 string Required

The street, building, office, or suite.

addressLine2 string

The street, building, office, or suite.

city string Required

The city where the business is registered or where its office is located.

state string

The state where the business is registered or where its office is located.

zip string Required

The postal code.

country string Required

The origin country.

ein string

A unique nine-digit employer identification number assigned by the Internal Revenue Service (IRS).

Returns

200

The billing details have been updated.

default

Bad request, security violation, or internal server error.

put

/tenants/billingContact

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/tenants/billingContact \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"companyName":"string","firstName":"string","lastName":"string","email":"string","phoneNumber":"string","addressLine1":"string","addressLine2":"string","city":"string","state":"string","zip":"string","country":"string","ein":"string"}'
response 200
{
  "id": "12345-abcd-6789-defg",
  "companyName": "string",
  "companySize": "string",
  "industry": "string",
  "completedProfile": true,
  "addressLine1": "string",
  "addressLine2": "string",
  "city": "string",
  "domainName": "string",
  "state": "string",
  "country": "string",
  "zip": "string",
  "billingContact": {
    "id": "12345-abcd-6789-defg",
    "companyName": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phoneNumber": "string",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "domainName": "string",
    "state": "string",
    "zip": "string",
    "country": "string",
    "ein": "string"
  },
  "paymentMethod": {
    "id": "12345-abcd-6789-defg",
    "name": "string",
    "type": "string",
    "last4": "string",
    "expMonth": 0,
    "expYear": 0
  },
  "subscriptions": [
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "defaultLanguage": "string",
  "defaultTimezone": "string",
  "billingCurrency": "string",
  "features": [
    "string",
    "string"
  ],
  "createdAt": "1618833000",
  "updatedAt": "1618833030"
}

Update a payment method

Use this endpoint to change the tenant's payment method.

Request Body

Content Type: application/json

Hide

paymentMethodId string

An identifier of the payment method.

name string

The payer's full name.

type string

The payment method, e.g., credit card.

last4 string

The last four digits of the credit card.

expMonth integer

The month the card expires.

expYear integer

The year the card expires.

Returns

200

The tenant's payment method has been updated. The endpoint returns the updated Tenant object.

default

Bad request, security violation, or internal server error.

put

/tenants/paymentMethod

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/tenants/paymentMethod \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"paymentMethodId":"string","name":"string","type":"string","last4":"string","expMonth":0,"expYear":0}'
response 200
{
  "id": "12345-abcd-6789-defg",
  "companyName": "string",
  "companySize": "string",
  "industry": "string",
  "completedProfile": true,
  "addressLine1": "string",
  "addressLine2": "string",
  "city": "string",
  "domainName": "string",
  "state": "string",
  "country": "string",
  "zip": "string",
  "billingContact": {
    "id": "12345-abcd-6789-defg",
    "companyName": "string",
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phoneNumber": "string",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "domainName": "string",
    "state": "string",
    "zip": "string",
    "country": "string",
    "ein": "string"
  },
  "paymentMethod": {
    "id": "12345-abcd-6789-defg",
    "name": "string",
    "type": "string",
    "last4": "string",
    "expMonth": 0,
    "expYear": 0
  },
  "subscriptions": [
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "defaultLanguage": "string",
  "defaultTimezone": "string",
  "billingCurrency": "string",
  "features": [
    "string",
    "string"
  ],
  "createdAt": "1618833000",
  "updatedAt": "1618833030"
}

Balances

Balances are used to cover metered charges such as Inperium Talk calling or SMS credits. The balance is recharged automatically when it drops below a certain threshold.

endpoints
get

/tenants/{id}/balance

patch

/tenants/{id}/balance

get

/tenants/{id}/balance/charges

get

/tenants/{id}/balance/funds

Retrieve balance

Use this endpoint to get information about the balance of the tenant.

Parameters

id string

A unique ID of the object.

Returns

200

Returns the Balance object.

default

Bad request, security violation, or internal server error.

get

/tenants/{id}/balance

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/tenants/%7Bid%7D/balance \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "minimumAmount": 0,
  "rechargeAmount": 0,
  "currency": "string",
  "currentAmount": 0,
  "active": true
}

Update balance settings

Use this endpoint to update the tenant's balance settings for metered charges.

Parameters

id string

A unique ID of the object.

Request Body

Content Type: application/json

Hide

minimumAmount number

The minimum amount that needs to be on the tenants balance at all times. If the current amount drops below this amount, it will automatically recharge the balance by the amount specified in the recharge amount property.

rechargeAmount number

The amount that will be charged on the tenants payment method if the balances current amount drops below the minimum amount.

active boolean

The true/false parameter that marks if the balance is active. Making balance active allows using metered add-ons.

Returns

200

Returns the updated balance record.

default

Bad request, security violation, or internal server error.

patch

/tenants/{id}/balance

Select Library

shell

java

php

node

python

go

csharp

1curl --request patch \
2	--url https://api.inperium.com/v1/hub/tenants/%7Bid%7D/balance \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"minimumAmount":0,"rechargeAmount":0,"active":true}'
response 200
{
  "minimumAmount": 0,
  "rechargeAmount": 0,
  "currency": "string",
  "currentAmount": 0,
  "active": true
}

Retrieve balance charges

Use this endpoint to get information about the balance charges of the tenant.

Parameters

id string

A unique ID of the object.

from integer

The start date.

to integer

The finish date.

pageNumber integer

This parameter affects paging. It defines the chunk of data to be retrieved, e.g., records from page 3.

pageSize integer

This parameter affects paging. It defines the number of records per page, e.g., 20 records per page.

sort string

This parameter affects sorting. It specifies the property name to sort records, e.g., by price or date.

Returns

200

Returns the Balance Charges object.

default

Bad request, security violation, or internal server error.

get

/tenants/{id}/balance/charges

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/tenants/%7Bid%7D/balance/charges \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "data": [
    {
      "id": "12345-abcd-6789-defg",
      "resourceAmount": 0,
      "feature": {
        "anchor": "string",
        "product": "string",
        "name": "string"
      },
      "netAmount": 0,
      "taxAmount": 0,
      "grossAmount": 0,
      "metadata": {},
      "createdAt": "1618833000",
      "updatedAt": "1618833030"
    },
    {
      "id": "12345-abcd-6789-defg",
      "resourceAmount": 0,
      "feature": {
        "anchor": "string",
        "product": "string",
        "name": "string"
      },
      "netAmount": 0,
      "taxAmount": 0,
      "grossAmount": 0,
      "metadata": {},
      "createdAt": "1618833000",
      "updatedAt": "1618833030"
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 20,
    "totalNumberOfRecords": 1,
    "totalNumberOfPages": 1,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "sortingCriteria": null,
    "hasMore": false
  }
}

Retrieve balance funds

Use this endpoint to get information about the balance funds of the tenant. This operation supports paging, sorting, and filtering. Provide an ID in the path.

Parameters

id string

A unique ID of the object.

from integer

The start date.

to integer

The finish date.

isIncluded boolean

The true/false parameter that identifies if the fund is included in a plan. If the parameter isn't specified, the method returns all funds.

pageNumber integer

This parameter affects paging. It defines the chunk of data to be retrieved, e.g., records from page 3.

pageSize integer

This parameter affects paging. It defines the number of records per page, e.g., 20 records per page.

sort string

This parameter affects sorting. It specifies the property name to sort records, e.g., by price or date.

Returns

200

The balance funds have been retrieved. Returns balance funds.

default

Bad request, security violation, or internal server error.

get

/tenants/{id}/balance/funds

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/tenants/%7Bid%7D/balance/funds \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "data": [
    {
      "id": "12345-abcd-6789-defg",
      "initialAmount": 0,
      "currentAmount": 0,
      "feature": {
        "anchor": "string",
        "product": "string",
        "name": "string"
      },
      "isIncluded": true,
      "createdAt": "1618833000",
      "updatedAt": "1618833030"
    },
    {
      "id": "12345-abcd-6789-defg",
      "initialAmount": 0,
      "currentAmount": 0,
      "feature": {
        "anchor": "string",
        "product": "string",
        "name": "string"
      },
      "isIncluded": true,
      "createdAt": "1618833000",
      "updatedAt": "1618833030"
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 20,
    "totalNumberOfRecords": 1,
    "totalNumberOfPages": 1,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "sortingCriteria": null,
    "hasMore": false
  }
}

Users

Users are individuals included in a tenant subscription. Depending on the role, users have access to different Inperium products and features.

endpoints
post

/users

get

/users

get

/users/{id}

put

/users/{id}

patch

/users/{id}

delete

/users/{id}

post

/users/verify

post

/users/forgotPassword

put

/users/resetPassword

get

/users/me

put

/users/me

put

/users/password

Create a user

Use this endpoint to add a new user to Inperium. Provide basic information about the new user.

Request Body

Content Type: application/json

Hide

type string

One of INVITATION, ACCOUNT_CREATION.

email string Required

The email address of the user.

firstName string Required

The given name of the user.

lastName string Required

The family name of the user.

isAdmin boolean

The true/false parameter that marks if the user is an administrator and a 'root' user. Unlike other permissions that are organized into custom roles, the admin role has a flag. Only users with 'isAdmin' set to 'true' can manage tenant settings.

roles array string

The roles assigned to the user.

Returns

201

Returns the newly created user account.

default

Bad request, security violation, or internal server error.

post

/users

Select Library

shell

java

php

node

python

go

csharp

1curl --request post \
2	--url https://api.inperium.com/v1/hub/users \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"email":"string"}'
response 201
{
  "id": "12345-abcd-6789-defg",
  "hash": "string",
  "email": "string",
  "hasVerifiedEmail": true,
  "phoneNumber": "string",
  "isAdmin": true,
  "isOwner": true,
  "useTwoFa": true,
  "language": "string",
  "firstName": "string",
  "lastName": "string",
  "jobTitle": "string",
  "avatarUrl": "string",
  "roles": [
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    }
  ],
  "subscriptions": [
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "subscriptionItems": [
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    },
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    }
  ]
}

Retrieve users

Use this endpoint to get a list of users. Leverage query parameters to search for a specific user or users. This endpoint supports paging and sorting.

Parameters

fullName string

The user name. This parameter allows searching both in "last name" or "first name". Supports eq, neq, in, nin, like, notlike.

id string

The unique ID of the user.

email string

The email address associated with the user.

pageNumber integer

This parameter affects paging. It defines the chunk of data to be retrieved, e.g., records from page 3.

pageSize integer

This parameter affects paging. It defines the number of records per page, e.g., 20 records per page.

sort string

This parameter affects sorting. It specifies the property name to sort records, e.g., by price or date.

Returns

200

Returns an array of user records.

default

Bad request, security violation, or internal server error.

get

/users

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/users \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "data": [
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "email": "string",
      "hasVerifiedEmail": true,
      "phoneNumber": "string",
      "isAdmin": true,
      "isOwner": true,
      "useTwoFa": true,
      "language": "string",
      "firstName": "string",
      "lastName": "string",
      "jobTitle": "string",
      "avatarUrl": "string",
      "roles": [
        {
          "id": "12345-abcd-6789-defg",
          "hash": "string",
          "name": "string",
          "description": "string",
          "predefined": true,
          "permissions": [
            "string",
            "string"
          ]
        },
        {
          "id": "12345-abcd-6789-defg",
          "hash": "string",
          "name": "string",
          "description": "string",
          "predefined": true,
          "permissions": [
            "string",
            "string"
          ]
        }
      ],
      "subscriptions": [
        {
          "id": "12345-abcd-6789-defg",
          "state": "string",
          "currentPeriodStart": 0,
          "currentPeriodEnd": 0,
          "startDate": 0,
          "licensedQuantity": 0,
          "quantity": 0,
          "discountAmount": 0,
          "items": [
            {
              "type": "object",
              "description": "The object contains information about the tenant's active plan, product or add-on usage, etc.",
              "discriminator": {
                "propertyName": "schema"
              },
              "required": [
                "id",
                "price",
                "licensedQuantity",
                "quantity",
                "type",
                "assignable"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "A unique identifier of a record or resource.",
                  "example": "$OBJECT-UUID"
                },
                "price": {
                  "$ref": "#/components/schemas/Price"
                },
                "licensedQuantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of used licenses."
                },
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of available licenses. If the overall number of purchased licenses exceed the 'licensedQuantity',\nit indicates that some license aren't currently in use. You can leverage these licenses by inviting more users.\n"
                },
                "type": {
                  "type": "string",
                  "description": "The type of subscription item. It indicates whether the item relates to a product or one of its add-ons.",
                  "enum": [
                    "PRODUCT",
                    "ADD_ON"
                  ]
                },
                "assignable": {
                  "type": "boolean",
                  "description": "The true/false parameter defining if a user can be assigned to the item."
                }
              }
            },
            {
              "type": "object",
              "description": "The object contains information about the tenant's active plan, product or add-on usage, etc.",
              "discriminator": {
                "propertyName": "schema"
              },
              "required": [
                "id",
                "price",
                "licensedQuantity",
                "quantity",
                "type",
                "assignable"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "A unique identifier of a record or resource.",
                  "example": "$OBJECT-UUID"
                },
                "price": {
                  "$ref": "#/components/schemas/Price"
                },
                "licensedQuantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of used licenses."
                },
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of available licenses. If the overall number of purchased licenses exceed the 'licensedQuantity',\nit indicates that some license aren't currently in use. You can leverage these licenses by inviting more users.\n"
                },
                "type": {
                  "type": "string",
                  "description": "The type of subscription item. It indicates whether the item relates to a product or one of its add-ons.",
                  "enum": [
                    "PRODUCT",
                    "ADD_ON"
                  ]
                },
                "assignable": {
                  "type": "boolean",
                  "description": "The true/false parameter defining if a user can be assigned to the item."
                }
              }
            }
          ]
        },
        {
          "id": "12345-abcd-6789-defg",
          "state": "string",
          "currentPeriodStart": 0,
          "currentPeriodEnd": 0,
          "startDate": 0,
          "licensedQuantity": 0,
          "quantity": 0,
          "discountAmount": 0,
          "items": [
            {
              "type": "object",
              "description": "The object contains information about the tenant's active plan, product or add-on usage, etc.",
              "discriminator": {
                "propertyName": "schema"
              },
              "required": [
                "id",
                "price",
                "licensedQuantity",
                "quantity",
                "type",
                "assignable"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "A unique identifier of a record or resource.",
                  "example": "$OBJECT-UUID"
                },
                "price": {
                  "$ref": "#/components/schemas/Price"
                },
                "licensedQuantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of used licenses."
                },
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of available licenses. If the overall number of purchased licenses exceed the 'licensedQuantity',\nit indicates that some license aren't currently in use. You can leverage these licenses by inviting more users.\n"
                },
                "type": {
                  "type": "string",
                  "description": "The type of subscription item. It indicates whether the item relates to a product or one of its add-ons.",
                  "enum": [
                    "PRODUCT",
                    "ADD_ON"
                  ]
                },
                "assignable": {
                  "type": "boolean",
                  "description": "The true/false parameter defining if a user can be assigned to the item."
                }
              }
            },
            {
              "type": "object",
              "description": "The object contains information about the tenant's active plan, product or add-on usage, etc.",
              "discriminator": {
                "propertyName": "schema"
              },
              "required": [
                "id",
                "price",
                "licensedQuantity",
                "quantity",
                "type",
                "assignable"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "A unique identifier of a record or resource.",
                  "example": "$OBJECT-UUID"
                },
                "price": {
                  "$ref": "#/components/schemas/Price"
                },
                "licensedQuantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of used licenses."
                },
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of available licenses. If the overall number of purchased licenses exceed the 'licensedQuantity',\nit indicates that some license aren't currently in use. You can leverage these licenses by inviting more users.\n"
                },
                "type": {
                  "type": "string",
                  "description": "The type of subscription item. It indicates whether the item relates to a product or one of its add-ons.",
                  "enum": [
                    "PRODUCT",
                    "ADD_ON"
                  ]
                },
                "assignable": {
                  "type": "boolean",
                  "description": "The true/false parameter defining if a user can be assigned to the item."
                }
              }
            }
          ]
        }
      ],
      "subscriptionItems": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "email": "string",
      "hasVerifiedEmail": true,
      "phoneNumber": "string",
      "isAdmin": true,
      "isOwner": true,
      "useTwoFa": true,
      "language": "string",
      "firstName": "string",
      "lastName": "string",
      "jobTitle": "string",
      "avatarUrl": "string",
      "roles": [
        {
          "id": "12345-abcd-6789-defg",
          "hash": "string",
          "name": "string",
          "description": "string",
          "predefined": true,
          "permissions": [
            "string",
            "string"
          ]
        },
        {
          "id": "12345-abcd-6789-defg",
          "hash": "string",
          "name": "string",
          "description": "string",
          "predefined": true,
          "permissions": [
            "string",
            "string"
          ]
        }
      ],
      "subscriptions": [
        {
          "id": "12345-abcd-6789-defg",
          "state": "string",
          "currentPeriodStart": 0,
          "currentPeriodEnd": 0,
          "startDate": 0,
          "licensedQuantity": 0,
          "quantity": 0,
          "discountAmount": 0,
          "items": [
            {
              "type": "object",
              "description": "The object contains information about the tenant's active plan, product or add-on usage, etc.",
              "discriminator": {
                "propertyName": "schema"
              },
              "required": [
                "id",
                "price",
                "licensedQuantity",
                "quantity",
                "type",
                "assignable"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "A unique identifier of a record or resource.",
                  "example": "$OBJECT-UUID"
                },
                "price": {
                  "$ref": "#/components/schemas/Price"
                },
                "licensedQuantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of used licenses."
                },
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of available licenses. If the overall number of purchased licenses exceed the 'licensedQuantity',\nit indicates that some license aren't currently in use. You can leverage these licenses by inviting more users.\n"
                },
                "type": {
                  "type": "string",
                  "description": "The type of subscription item. It indicates whether the item relates to a product or one of its add-ons.",
                  "enum": [
                    "PRODUCT",
                    "ADD_ON"
                  ]
                },
                "assignable": {
                  "type": "boolean",
                  "description": "The true/false parameter defining if a user can be assigned to the item."
                }
              }
            },
            {
              "type": "object",
              "description": "The object contains information about the tenant's active plan, product or add-on usage, etc.",
              "discriminator": {
                "propertyName": "schema"
              },
              "required": [
                "id",
                "price",
                "licensedQuantity",
                "quantity",
                "type",
                "assignable"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "A unique identifier of a record or resource.",
                  "example": "$OBJECT-UUID"
                },
                "price": {
                  "$ref": "#/components/schemas/Price"
                },
                "licensedQuantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of used licenses."
                },
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of available licenses. If the overall number of purchased licenses exceed the 'licensedQuantity',\nit indicates that some license aren't currently in use. You can leverage these licenses by inviting more users.\n"
                },
                "type": {
                  "type": "string",
                  "description": "The type of subscription item. It indicates whether the item relates to a product or one of its add-ons.",
                  "enum": [
                    "PRODUCT",
                    "ADD_ON"
                  ]
                },
                "assignable": {
                  "type": "boolean",
                  "description": "The true/false parameter defining if a user can be assigned to the item."
                }
              }
            }
          ]
        },
        {
          "id": "12345-abcd-6789-defg",
          "state": "string",
          "currentPeriodStart": 0,
          "currentPeriodEnd": 0,
          "startDate": 0,
          "licensedQuantity": 0,
          "quantity": 0,
          "discountAmount": 0,
          "items": [
            {
              "type": "object",
              "description": "The object contains information about the tenant's active plan, product or add-on usage, etc.",
              "discriminator": {
                "propertyName": "schema"
              },
              "required": [
                "id",
                "price",
                "licensedQuantity",
                "quantity",
                "type",
                "assignable"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "A unique identifier of a record or resource.",
                  "example": "$OBJECT-UUID"
                },
                "price": {
                  "$ref": "#/components/schemas/Price"
                },
                "licensedQuantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of used licenses."
                },
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of available licenses. If the overall number of purchased licenses exceed the 'licensedQuantity',\nit indicates that some license aren't currently in use. You can leverage these licenses by inviting more users.\n"
                },
                "type": {
                  "type": "string",
                  "description": "The type of subscription item. It indicates whether the item relates to a product or one of its add-ons.",
                  "enum": [
                    "PRODUCT",
                    "ADD_ON"
                  ]
                },
                "assignable": {
                  "type": "boolean",
                  "description": "The true/false parameter defining if a user can be assigned to the item."
                }
              }
            },
            {
              "type": "object",
              "description": "The object contains information about the tenant's active plan, product or add-on usage, etc.",
              "discriminator": {
                "propertyName": "schema"
              },
              "required": [
                "id",
                "price",
                "licensedQuantity",
                "quantity",
                "type",
                "assignable"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "A unique identifier of a record or resource.",
                  "example": "$OBJECT-UUID"
                },
                "price": {
                  "$ref": "#/components/schemas/Price"
                },
                "licensedQuantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of used licenses."
                },
                "quantity": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of available licenses. If the overall number of purchased licenses exceed the 'licensedQuantity',\nit indicates that some license aren't currently in use. You can leverage these licenses by inviting more users.\n"
                },
                "type": {
                  "type": "string",
                  "description": "The type of subscription item. It indicates whether the item relates to a product or one of its add-ons.",
                  "enum": [
                    "PRODUCT",
                    "ADD_ON"
                  ]
                },
                "assignable": {
                  "type": "boolean",
                  "description": "The true/false parameter defining if a user can be assigned to the item."
                }
              }
            }
          ]
        }
      ],
      "subscriptionItems": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 20,
    "totalNumberOfRecords": 1,
    "totalNumberOfPages": 1,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "sortingCriteria": null,
    "hasMore": false
  }
}

Get user details

Use this endpoint to search for a specific user and retrieve detailed information such as full name, email, and job title.

Parameters

id string

A unique ID of the object.

Returns

200

Returns the user record.

default

Bad request, security violation, or internal server error.

get

/users/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/users/%7Bid%7D \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "id": "12345-abcd-6789-defg",
  "hash": "string",
  "email": "string",
  "hasVerifiedEmail": true,
  "phoneNumber": "string",
  "isAdmin": true,
  "isOwner": true,
  "useTwoFa": true,
  "language": "string",
  "firstName": "string",
  "lastName": "string",
  "jobTitle": "string",
  "avatarUrl": "string",
  "roles": [
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    }
  ],
  "subscriptions": [
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "subscriptionItems": [
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    },
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    }
  ]
}

Update a user

Use this endpoint to update a specific user. Note that all user properties (fields) will be overwritten.

Parameters

id string

A unique ID of the object.

Request Body

Content Type: application/json

Hide

email string

The email address associated with the user account.

hasVerifiedEmail boolean

The true/false parameter that marks if the email address has been verified or is still pending verification.

isAdmin boolean

The true/false parameter that marks if the user is an administrator and a 'root' user. Unlike other permissions that are organized into custom roles, the admin role has a flag. Only users with 'isAdmin' set to 'true' can manage tenant settings.

useTwoFa boolean

The true/false parameter that indicates if 2FA is enabled for the user.

phoneNumber string

The user's phone number.

language string

The preferred language. The default value is 'EN'.

firstName string

The given name of the user.

lastName string

The family name of the user.

jobTitle string

The user's current title or role in the company, e.g., 'senior manager'.

roles array string

The list of roles.

avatarUrl string

The user's profile image.

Returns

200

Returns the updated user record.

default

Bad request, security violation, or internal server error.

put

/users/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/users/%7Bid%7D \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"email":"string","hasVerifiedEmail":true,"isAdmin":true,"useTwoFa":true,"phoneNumber":"string","language":"string","firstName":"string","lastName":"string","jobTitle":"string","roles":["string","string"],"avatarUrl":"string"}'
response 200
{
  "id": "12345-abcd-6789-defg",
  "hash": "string",
  "email": "string",
  "hasVerifiedEmail": true,
  "phoneNumber": "string",
  "isAdmin": true,
  "isOwner": true,
  "useTwoFa": true,
  "language": "string",
  "firstName": "string",
  "lastName": "string",
  "jobTitle": "string",
  "avatarUrl": "string",
  "roles": [
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    }
  ],
  "subscriptions": [
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "subscriptionItems": [
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    },
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    }
  ]
}

Partially update a user

Use this endpoint to change some properties in the user record, e.g., the last name or email.

Parameters

id string

A unique ID of the object.

Request Body

Content Type: application/json

Hide

email string

The email address associated with the user account.

isAdmin boolean

The true/false parameter that marks if the user is an administrator and a 'root' user. Unlike other permissions that are organized into custom roles, the admin role has a flag. Only users with 'isAdmin' set to 'true' can manage tenant settings.

firstName string

The given name of the user.

lastName string

The family name of the user.

jobTitle string

roles array string

The list of roles.

subscriptionIds array string

The list of subscriptions enabled for the user. If no subscription items are set, then only the PRODUCT item will be assigned.

subscriptionItemIds array string

The list of subscription items enabled for the user. The items should be set with their subscriptions. Otherwise, the property is ignored.

Returns

200

Returns the updated user record.

default

Bad request, security violation, or internal server error.

patch

/users/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request patch \
2	--url https://api.inperium.com/v1/hub/users/%7Bid%7D \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"email":"string","isAdmin":true,"firstName":"string","lastName":"string","jobTitle":"string","roles":["string","string"],"subscriptionIds":["12345-abcd-6789-defg","12345-abcd-6789-defg"],"subscriptionItemIds":["12345-abcd-6789-defg","12345-abcd-6789-defg"]}'
response 200
{
  "id": "12345-abcd-6789-defg",
  "hash": "string",
  "email": "string",
  "hasVerifiedEmail": true,
  "phoneNumber": "string",
  "isAdmin": true,
  "isOwner": true,
  "useTwoFa": true,
  "language": "string",
  "firstName": "string",
  "lastName": "string",
  "jobTitle": "string",
  "avatarUrl": "string",
  "roles": [
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    }
  ],
  "subscriptions": [
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "subscriptionItems": [
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    },
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    }
  ]
}

Delete a user

Use this endpoint to remove a user from Inperium.

Parameters

id string

A unique ID of the object.

Returns

204

The user has been successfully deleted.

default

Bad request, security violation, or internal server error.

delete

/users/{id}

Select Library

shell

java

php

node

python

go

csharp

1curl --request delete \
2	--url https://api.inperium.com/v1/hub/users/%7Bid%7D \
3	--header 'X-API-KEY: $YOUR-APIKEY'

Verify a new user

Use this endpoint to verify a new user and activate the account.

Request Body

Content Type: application/json

Hide

email string Required

The email address associated with the user account.

oneTimePassword string Required

The one-off verification code sent to the user.

Returns

200

Returns authentication tokens. The user account is verified.

default

Bad request, security violation, or internal server error.

post

/users/verify

Select Library

shell

java

php

node

python

go

csharp

1curl --request post \
2	--url https://api.inperium.com/v1/hub/users/verify \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"email":"string","oneTimePassword":"string"}'
response 200
{
  "accessToken": "string",
  "refreshToken": "string"
}

Recover a password

Use this endpoint to send a "forgot password" request.

Request Body

Content Type: application/json

Hide

email string Required

The email address associated with the user account.

Returns

200

The request has been sent.

default

Bad request, security violation, or internal server error.

post

/users/forgotPassword

Select Library

shell

java

php

node

python

go

csharp

1curl --request post \
2	--url https://api.inperium.com/v1/hub/users/forgotPassword \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"email":"string"}'

Reset a password

Use this endpoint to reset a password. To update a password, you'll have to provide passwordResetToken that was sent by email.

Request Body

Content Type: application/json

Hide

email string Required

The email address associated with the user.

oneTimePassword string Required

The one-off code sent to the user.

confirmPassword string Required

The new password (must be the same as 'newPassword').

newPassword string Required

The new password.

Returns

200

Returns tokens. The password has successfully been reset.

default

Bad request, security violation, or internal server error.

put

/users/resetPassword

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/users/resetPassword \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"email":"string","oneTimePassword":"string","confirmPassword":"string","newPassword":"string"}'
response 200
{
  "accessToken": "string",
  "refreshToken": "string"
}

Check a current user

Use this endpoint to retrieve details about the currently authenticated user.

Returns

200

Returns user data.

default

Bad request, security violation, or internal server error.

get

/users/me

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/hub/users/me \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "products": [
    "string",
    "string"
  ],
  "features": [
    "string",
    "string"
  ],
  "permissions": [
    "string",
    "string"
  ],
  "roles": [
    "string",
    "string"
  ],
  "limitUsages": [
    {
      "limit": {
        "anchor": "string",
        "infinite": true,
        "thresholdValue": 0
      },
      "currentValue": 0
    },
    {
      "limit": {
        "anchor": "string",
        "infinite": true,
        "thresholdValue": 0
      },
      "currentValue": 0
    }
  ]
}

Update a user

Use this endpoint to update the currently logged in user.

Request Body

Content Type: application/json

Hide

email string

The email address associated with the user account.

hasVerifiedEmail boolean

The true/false parameter that marks if the email address has been verified or is still pending verification.

isAdmin boolean

The true/false parameter that marks if the user is an administrator and a 'root' user. Unlike other permissions that are organized into custom roles, the admin role has a flag. Only users with 'isAdmin' set to 'true' can manage tenant settings.

useTwoFa boolean

The true/false parameter that indicates if 2FA is enabled for the user.

phoneNumber string

The user's phone number.

language string

The preferred language. The default value is 'EN'.

firstName string

The given name of the user.

lastName string

The family name of the user.

jobTitle string

The user's current title or role in the company, e.g., 'senior manager'.

roles array string

The list of roles.

avatarUrl string

The user's profile image.

Returns

200

Returns the updated user record.

default

Bad request, security violation, or internal server error.

put

/users/me

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/users/me \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"email":"string","hasVerifiedEmail":true,"isAdmin":true,"useTwoFa":true,"phoneNumber":"string","language":"string","firstName":"string","lastName":"string","jobTitle":"string","roles":["string","string"],"avatarUrl":"string"}'
response 200
{
  "id": "12345-abcd-6789-defg",
  "hash": "string",
  "email": "string",
  "hasVerifiedEmail": true,
  "phoneNumber": "string",
  "isAdmin": true,
  "isOwner": true,
  "useTwoFa": true,
  "language": "string",
  "firstName": "string",
  "lastName": "string",
  "jobTitle": "string",
  "avatarUrl": "string",
  "roles": [
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "hash": "string",
      "name": "string",
      "description": "string",
      "predefined": true,
      "permissions": [
        "string",
        "string"
      ]
    }
  ],
  "subscriptions": [
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    },
    {
      "id": "12345-abcd-6789-defg",
      "state": "string",
      "currentPeriodStart": 0,
      "currentPeriodEnd": 0,
      "startDate": 0,
      "licensedQuantity": 0,
      "quantity": 0,
      "discountAmount": 0,
      "items": [
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        },
        {
          "id": "12345-abcd-6789-defg",
          "licensedQuantity": 0,
          "quantity": 0,
          "type": "string",
          "assignable": true
        }
      ]
    }
  ],
  "subscriptionItems": [
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    },
    {
      "id": "12345-abcd-6789-defg",
      "licensedQuantity": 0,
      "quantity": 0,
      "type": "string",
      "assignable": true
    }
  ]
}

Reset a password

Use this endpoint to reset the principal's password.

Request Body

Content Type: application/json

Hide

password string Required

The current user password.

newPassword string Required

The new user password.

confirmPassword string Required

The new user password (must be the same as 'newPassword').

Returns

200

The password has been reset.

default

Bad request, security violation, or internal server error.

put

/users/password

Select Library

shell

java

php

node

python

go

csharp

1curl --request put \
2	--url https://api.inperium.com/v1/hub/users/password \
3	--header 'Content-Type: application/json' \
4	--header 'X-API-KEY: $YOUR-APIKEY' \
5	--data '{"password":"string","newPassword":"string","confirmPassword":"string"}'

Sell API

The Inperium Sell API provides access to the Inperium Sell service including the ability to add companies and contacts, create deals, and generate quotes. To leverage this API, you must have an active subscription to Inperium Sell and the user creating an API key must have access to the product. Inperium Sell API seamlessly integrates with other API such as the Object Bucket Storage API and the Message Center API that provide document storage and email sync functionality to Inperium Sell.

What are flexible properties?

Inperium Sell is designed to be flexible and accommodate our customer needs. We recognize that every company manages data differently. For example, when adding a new contact one may fill just a couple of fields while the other will need all of them and some additional fields as well. To keep up with your workflows, Inperium enables you to create custom parameters (or properties, or fields if we are talking about UI) for the main Inperium Sell objects: companies, contacts, deals, and products.

Inperium comes with a set of predefined properties. Try querying a list of companies and look at the company object. Unlike many Inperium objects, here vast majority of parameters are nested under the properties section. These are the properties we are talking about. In addition to built-in properties, you can create custom properties to store data and manage them in a flexible way. New properties will be available via API calls and UI.

{
    "data":[
        {
            "id": "ID-UUID",
            "properties":{
                "companyName": "Arrow Inc.",
                "industry": "RETAIL",
                "employeeCount": "100",
                "country": "US"
            },
            "createdAt": 1613474117747,
            "updatedAt": 1613474117747
        },
        {}
    ],
    "paging":{}
}

Retrieving properties

Most properties won’t appear in responses unless they have a value. To see all available options for companies, contacts, deals, and products, make a GET call to the sell/properties endpoint. It will return the list of property configurations.

Adding a new property

To add a new property, send a POST request to the sell/properties endpoint with the PropertyRequest object. This object formally describes the property to be created, including its name, data type, label, the object it applies to. On top of that, you can configure possible values, enforce validation, etc. For more information, see the /properties endpoint.

{
    "objectType": "DEALS",
    "name": "Shipping",
    "label": "Shipping details",
    "description": "Add any client requests here.",
    "dataType": "STRING",
    "currency": null,
    "custom": true
}
Listing properties in Inperium Sell
1 curl -i -X GET 
2 -H 'Accept:application/json' 
3 -H 'X-API-KEY:$YOUR-APIKEY' 
4 https://api.inperium.com/v1/sell/properties 
200 OK
{
  "data": [
    {
      "id": "ID-UUID",
      "objectType": "DEALS",
      "name": "value",
      "accessor": "value",
      "label": "Deal value",
      "description": null,
      "dataType": "MONETARY",
      "currency": "$",
      "custom": false,
      "usedIn": 1,
      "ownerId": null,
      "dataGrid": true,
      "detailsPage": true,
      "bulkUpdate": false,
      "template": false,
      "filtering": true,
      "propertyOptions": null,
      "validation": {
        "required": true,
        "max": null,
        "min": null,
        "maxLength": null,
        "minLength": null,
        "pattern": null
      }
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 20,
    "totalNumberOfRecords": 11,
    "totalNumberOfPages": 1,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "sortingCriteria": "",
    "hasMore": false
  }
}

Activities

Inperium Sell enables users to keep notes, plan tasks, and log calls and meetings. These activities are typically linked to deals, contacts, or companies, and appear in the Activity timeline in the user interface. Every time a new company, contact, or deal is created, Inperium Sell adds an EVENT activity automatically. The activities you can create are NOTE, MEETING, CALL, TASK, and EMAIL. Depending on the type, each activity object has its unique fields.

endpoints
get

/activities

post

/activities

put

/activities/{id}

delete

/activities/{id}

List activities

Use this endpoint to get a complete list of activities. This endpoint supports paging and sorting. To narrow down results and locate specific activities, use query parameters.

Parameters

authorId string

The ID of the user who added the activity.

type string

The type of activity. One of `NOTE`, `MEETING`, `CALL`, `TASK`, `EMAIL`, or `EVENT`.

associatedContactId string

The ID of the contact the activity is linked to.

associatedCompanyId string

The ID of the company the activity is linked to.

associatedDealId string

The ID of the deal the activity is linked to.

createdAt string

The date when the activity was added.

pageNumber integer

This parameter affects paging. It defines the chunk of data to be retrieved, e.g., records from the page 3.

pageSize integer

This parameter affects paging. It defines the number of records per page.

sort string

This parameter affects sorting. It specifies the property name to sort records, e.g., by price or date.

Returns

200

Returns the activity list.

default

Bad request, security violation, or internal server error.

get

/activities

Select Library

shell

java

php

node

python

go

csharp

1curl --request get \
2	--url https://api.inperium.com/v1/sell/activities \
3	--header 'X-API-KEY: $YOUR-APIKEY'
response 200
{
  "data": [
    {
      "id": "12345-abcd-6789-defg",
      "associatedCompanies": [
        {
          "id": "12345-abcd-6789-defg",
          "properties": {
            "companyName": "Arts Inc.",
            "industry": "RETAIL",
            "employeeCount": 200,
            "country": "US",
            "type": "LEAD",
            "city": "Newtown",
            "state": "CA",
            "description": "Musical instruments shop",
            "user": {
              "id": "$OBJECT-UUID",
              "avatarUrl": null,
              "firstName": "John",
              "lastName": "Doe",
              "email": "john.doe@example.com",
              "tenantId": null
            }
          },
          "createdAt": "1618833000",
          "updatedAt": "1618833030"
        },
        {
          "id": "12345-abcd-6789-defg",
          "properties": {
            "companyName": "Arts Inc.",
            "industry": "RETAIL",
            "employeeCount": 200,
            "country": "US",
            "type": "LEAD",
            "city": "Newtown",
            "state": "CA",
            "description": "Musical instruments shop",
            "user": {
              "id": "$OBJECT-UUID",
              "avatarUrl": null,
              "firstName": "John",
              "lastName": "Doe",
              "email": "john.doe@example.com",
              "tenantId": null
            }
          },
          "createdAt": "1618833000",
          "updatedAt": "1618833030"
        }
      ],
      "associatedContacts": [
        {
          "id": "12345-abcd-6789-defg",
          "properties": {
            "emails": [
              {
                "id": "$OBJECT-UUID",
                "value": "emma.clock@email.com",
                "type": "PERSONAL",
                "isPrimary": true
              }
            ],
            "lastName": "Clock",
            "firstName": "Emma",
            "companyId": "$OBJECT-UUID",
            "user": {
              "id": "$OBJECT-UUID",
              "avatarUrl": null,
              "firstName": "John",
              "lastName": "Doe",
              "email": "john.doe@example.com",
              "tenantId": null
            }
          },
          "createdAt": "1618833000",
          "updatedAt": "1618833030"
        },
        {
          "id": "12345-abcd-6789-defg",
          "properties": {
            "emails": [
              {
                "id": "$OBJECT-UUID",
                "value": "emma.clock@email.com",
                "type": "PERSONA