Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

License Statistics API allows you to obtain information about Current Users report. The report consists of three parts: current license usage, highest license usage and current users list.The Current Users endpoint delivers license usage metrics specific to the Current Users report, allowing you to see currently active users and the features they are using

Obtaining information about current users

To You can easily list users that who are currently using licenses, use following URL templateat least one license by sending the following HTTP request.

Code Block
languagejs
firstline1linenumberstrue
GET /api/v1/report/users/current/${returnType}

where :- $ $ indicates a variable value that you can replace with a proper value, according to value that best suits your needs - the and possible parameters are as follows:

Parameter
Required
Type
Description
${returnType}YesstringSpecifies the format in which the data should be returned. The format can be one of the following: json, csv, xls or pdf.
fieldsVisibility Nojson/string

Specifies field visibility settings, for example:

Code Block
{ "fid": "1", "fns": "1", "fv": "1", "ftype": "1", "lsid": "1", "lsn": "1", "uid": "1", "un": "1", "hn": "1",  "lco": "1","lus": "1"}

where number "1" indicates that a specific field is visible.

Note that the order of the settings you make is important – when exported, the fields will be visible in exactly the same order you specify here.

rnNostringSpecifies the name of the report that will be displayed once the report has been exported to PDF or XLS. For CSV and JSON formats this parameter will be ignored.
If you don't pass this parameter, it will be generated automatically for PDF and XLS types. If provided, it cannot be left empty.

filter

Anchor
filter def
filter def

Nojson/string

Applies filtering license usage data on all fields.

To filter by a string column, use the following format:

 

 

Code Block
[
    {
        "type": "string",
        "field": ""${un | hn | fns | fv | ftype | lsn | lco}",
        "value": "${value}"
    }
]

To filter by a numeric column, use the following format: 

Code Block
[
    {
        "type": "numeric",
        "comparison": "${gt | lt | eq}",
        "field": "${fid | lsid | lus }",
        "value": "${value}"
    }
]


limitNointegerDetermines the maximum number of data records that can be returned. The value must be greater than zero.
offsetNointegerSpecifies the offset of the first row to return.
orderByNostring

Specifies the field by which you want to order your data records. The field name can be one of the following:

 fid, fns, fv, ftype, lsid, lsn, uid, un, hn, lco, lus

(See this section for more field-specific information.)

orderDirectionNostringDetermines whether the sorting results will be displayed in an ascending (ASC) or a descending (DESC) order.

If your request is successful, you should see a response similar to the following: The following code block shows an example result of a successful request:

 

Code Block
languagejs
firstline1
linenumberstrue
{
    success: ${success},
    msg: ${message},
    data: [{
        "fid": ${featureId},
        "fns": ${featureName},
        "ftype": ${featureType},
        "fv": ${featureVersion},
        "lsid": ${licenseServerId},
        "lsn": ${licenseServerName},
        "uid": ${userId},
        "un": ${userName},
        "hn": ${hostName},
        "lco": ${licenseCheckedOut},
        "lus": ${licensesUsed}
    }],
    "code": ${errorCode},
    "totalCount": ${totalCount}
}

where the response fields can be explained as follows:

Anchor
fields def
fields def

Field
Type
Description
fidintegerFeature ID.
fnsstringFeature Name.
ftypestringFeature type.
fvstringFeature version.
lsidintegerLicense Server ID.
lsnstringLicense Server name.
uidintegerUser ID.

un

string

Username.

hn

string

Hostname.

lco

string

Date when license was checked out, . The date is in ' YYYY-MM-DD HH:MM:SS ' formatformat; for example; 2017-05-20 10:55:15.

lus

integer

Total number of licenses used by user on host.

msg

string

Error message returned on failure.

success

boolean

Indicates whether the your API request was successfully processed. 

codeinteger

Error code for unsuccessful request.

totalCountinteger

Total number of all matching results.

Obtaining information about current license usage

To obtain information about how many users are using licenses at the moment, use following URLYou can easily list users that are currently using at least one license by sending the following HTTP request.

Code Block
linenumbers
languagejs
firstline1true
GET /api/v1/report/users/license/current-usage/json

Data can be filtered in the same manner as current users report above.

You can filter your data results using the filter parameter, as described above.

The following code block shows an example result of a successful requestIf your request is successful, you should see a response similar to the following:

Code Block
{
    "success": ${success},
    "msg": ${message},
    "data": [
        {          
            "hu": 1,           
            "tu": ${usersWithLicensesCount}
        },
        {          
            "hu": 0,           
            "tu": ${usersWithoutLicensesCount}
        }
    ],
    "code": ${code},
    "totalCount": 2
}

...

where the response fields can be explained as follows:

Field
Type
Description
successbooleanIndicates that whether your API request was successfully processed.
msgstringError message returned on failure.
hustring"1" in record with usage. "0" for record without usage.
tuintegerNumber of users with/without usage.
codeinteger

Error code if success equals false, null otherwise.

totalCountintegerTotal number of rows returned. Always 2.

Example

Say you have many license server. Among them several servers, some of which are LM-X servers called 'lm-x 1', 'lm-x 2', and so onetc. To find out how many users are using licenses (only) from those servers, use:enter a command similar to the following.

Code Block
languagejs
firstline1
linenumberstrue
curl --globoff -H "X-Auth-token: token" 'http://yourdomain/api/v1/report/users/license/current-usage/json?filter=[{"type":"string","field":"lsn","value":"lm-x"}]'

Obtaining information about highest license usage

To get to know You can easily list 10 users that used most license, use following URLare using the highest number of licenses by sending the following HTTP request.

Code Block
languagejs
firstline1linenumberstrue
GET /api/v1/report/users/license/highest-usage/json

Data can be filtered using parameter in the same manner as current users report above.

You can filter your data results using the filter parameter, as described above.

The following code block shows an example result of a successful requestIf your request is successful, you should see a response similar to the following:

Code Block
{
    "success": ${success},
    "msg": ${message},
    "data": [
        {          
            "un": ${userName},           
            "lus": ${usersWithLicensesCount}
        }
    ],
    "code": ${code},
    "totalCount": ${totalCount}
}

...

Field
Type
Description
successbooleanIndicates that whether your API request was successfully processed.
msgstringError message returned on failure.
unstringUsername.
lusintegerNumber fo licenses used.
codeinteger

Error code if success equals false, null otherwise.

totalCountintegerTotal number of rows returned. Up to 10.

Example

Say you have a feature called 'super_feature' . To find out which users and you would like to obtain information about users that use this feature (in any version) the most, use:. To generate this data set, enter a command similar to the following.

Code Block
languagejs
firstline1
linenumberstrue
curl --globoff -H "X-Auth-token: token" 'http://yourdomain/api/v1/report/users/license/highest-usage/json?filter=[{"type":"string","field":"fns","value":"super_feature"}]'