License API
List Licenses
Licenses for Device
5min
Returns a list of licenses assigned to a device
GET
Request
Query Parameters
hardware_id
required
String
Unique hardware ID generated for the client device
Header Parameters
Date
required
String
In RFC7231 format (see "License API Authorization"), eg.: Thu, 17 Nov 2022 20:51:35 GMT
Authorization
required
String
See "License API Authorization" article
JS
Curl
1curl --location --request GET '/api/v4/device_licenses?hardware_id=STRING' \
2--header 'Accept: application/json' \
3--header 'Date: DATE_STRING' \
4--header 'Authorization: AUTHORIZATION_STRING'
5
Responses
200
400
1[
2 {
3 "id": 1702983098133459,
4 "order_store_id": "trial_1702983098133439",
5 "license_active": true,
6 "license_enabled": true,
7 "license_type": "subscription",
8 "license_key": "H62K-C35N-BS2J-VZ13",
9 "is_trial": true,
10 "max_license_users": 1,
11 "validity_period": "2023-12-20",
12 "enable_maintenance_period": false,
13 "maintenance_period": null,
14 "allow_grace_period": false,
15 "grace_period": 0,
16 "max_activations": 1,
17 "allow_unlimited_activations": true,
18 "times_activated": 1,
19 "start_date": null,
20 "transfer_count": 1,
21 "max_transfers": 0,
22 "allow_overages": false,
23 "max_overages": 0,
24 "is_floating_cloud": true,
25 "is_floating": false,
26 "floating_timeout": 120,
27 "can_borrow": false,
28 "max_borrow_time": 0,
29 "prevent_vm": false,
30 "custom_fields": [],
31 "product_features": [
32 {
33 "id": 1702983421931584,
34 "code": "e",
35 "name": "e",
36 "feature_type": "activation",
37 "expiry_date": null,
38 "metadata": {},
39 "is_floating": false,
40 "is_floating_cloud": false
41 }
42 ],
43 "customer": {
44 "email": "trial_request",
45 "company_name": null,
46 "reference": "",
47 "phone": "",
48 "first_name": null,
49 "last_name": null,
50 "city": "",
51 "postcode": "",
52 "state": "",
53 "country": "",
54 "address": "",
55 "customer_account": null,
56 "metadata": {}
57 },
58 "product_details": {
59 "product_id": 1584723961091040,
60 "product_name": "product1",
61 "short_code": "1337",
62 "authorization_method": "license-key",
63 "metadata": {}
64 },
65 "metadata": {},
66 "is_hardware_key_auth": false,
67 "is_air_gapped": false,
68 "floating_users": 1,
69 "trial_days": 1
70 },
71 {
72 "id": 1700060342999659,
73 "order_store_id": "trial_1700060342999639",
74 "license_active": false,
75 "license_enabled": true,
76 "license_type": "subscription",
77 "license_key": "H57Y-PS8L-VX6J-WU13",
78 "is_trial": true,
79 "max_license_users": 1,
80 "validity_period": null,
81 "enable_maintenance_period": false,
82 "maintenance_period": null,
83 "allow_grace_period": false,
84 "grace_period": 0,
85 "max_activations": 1,
86 "allow_unlimited_activations": false,
87 "times_activated": 0,
88 "start_date": null,
89 "transfer_count": 0,
90 "max_transfers": 0,
91 "allow_overages": false,
92 "max_overages": 0,
93 "is_floating_cloud": true,
94 "is_floating": false,
95 "floating_timeout": 120,
96 "can_borrow": false,
97 "max_borrow_time": 0,
98 "prevent_vm": false,
99 "custom_fields": [],
100 "product_features": [
101 {
102 "id": 1700060342999669,
103 "code": "ccc",
104 "name": "ccc",
105 "feature_type": "activation",
106 "expiry_date": null,
107 "metadata": {},
108 "is_floating": false,
109 "is_floating_cloud": true,
110 "floating_timeout": 120,
111 "floating_users": 1
112 }
113 ],
114 "customer": {
115 "email": "trial_request",
116 "company_name": null,
117 "reference": "",
118 "phone": "",
119 "first_name": null,
120 "last_name": null,
121 "city": "",
122 "postcode": "",
123 "state": "",
124 "country": "",
125 "address": "",
126 "customer_account": null,
127 "metadata": {}
128 },
129 "product_details": {
130 "product_id": 1584723961091040,
131 "product_name": "product1",
132 "short_code": "1337",
133 "authorization_method": "license-key",
134 "metadata": {}
135 },
136 "metadata": {},
137 "is_hardware_key_auth": false,
138 "is_air_gapped": false,
139 "floating_users": 1,
140 "trial_days": 1
141 }
142]
TypeScript
JSON
1type LicensesForDeviceRequestParameters = {
2 hardware_id: string
3}
TypeScript
JSON
1type LicensesForDeviceResponseBody = type LicenseListResponseBody = ({
2 id: number,
3 allow_grace_period: boolean,
4 allow_overages: boolean,
5 allow_unlimited_activations: boolean,
6 borrowed_until: string | null,
7 can_borrow: boolean,
8 channel: string,
9 device_id: number,
10 enable_maintenance_period: boolean
11 environment: string,
12 eula_link: string,
13 floating_timeout: number,
14 grace_period: number,
15 hash_md5: string,
16 installation_file: string,
17 is_air_gapped: boolean,
18 is_borrowed: boolean,
19 is_expired: boolean,
20 is_floating_cloud: boolean,
21 is_floating: boolean,
22 is_hardware_key_auth: boolean,
23 license_active: boolean,
24 license_enabled: boolean,
25 license_signature: string,
26 license_signature_v2: string,
27 offline_signature: string,
28 license_type: string,
29 maintenance_period: string | null,
30 max_activations: number,
31 max_borrow_time: number,
32 max_license_users: number,
33 max_overages: number,
34 max_transfers: number,
35 order_store_id: string,
36 prevent_vm: boolean,
37 release_date: string,
38 release_notes_link: string,
39 requires_version: string,
40 size: string,
41 start_date: string | null,
42 times_activated: number,
43 transfer_count: number,
44 validity_period: string | null, // string is in DateISO8601UTC format
45 version: string,
46
47 product_features: ({
48 id: number,
49 code: string,
50 name: string,
51 expiry_date: string,
52 metadata: JSON,
53 feature_type: 'activation' | 'consumption',
54 is_floating: boolean,
55 is_floating_cloud: boolean,
56
57 // the following properties are only present if is_floating=true or is_floating_cloud=true
58 floating_users: number,
59 floating_timeout: number,
60
61 // the following properties are only present if feature_type=consumption
62 max_consumption: number,
63 allow_unlimited_consumptions: boolean,
64 total_consumptions: number,
65 allow_overages: number,
66 max_overages: number,
67 reset_consumption: boolean,
68 consumption_period: 'daily' | 'weekly' | 'monthly' | 'annualy' | null,
69 })[],
70
71 custom_fields: ({
72 name: string,
73 data_type: 'numer' | 'text' | 'date/time',
74 value: string,
75 })[],
76
77 customer: {
78 email: string,
79 company_name: string,
80 reference: string,
81 phone: string,
82 first_name: string,
83 last_name: string,
84 city: string,
85 postcode: string,
86 state: string,
87 country: string,
88 address: string,
89 customer_account: string | null,
90 metadata: JSON,
91 },
92
93 product_details: {
94 product_id: number,
95 product_name: string,
96 short_code: string,
97 authorization_method: 'license-key' | 'user',
98 metadata: JSON,
99 },
100
101 metadata: JSON,
102
103 // the following property is only present if is_trial=true
104 trial_days: number,
105
106 // the following properties is only present if is_floating=true or is_floating_cloud=true
107 floating_in_use_devices: number,
108 floating_users: number,
109
110 // the following properties are only present if license_type='consumption'
111 max_consumptions: number,
112 total_consumptions: number,
113 allow_unlimited_consumptions: boolean,
114 reset_consumption: boolean,
115 consumption_period: string | null, // string is in DateISO8601UTC format
116
117} & ({
118
119 // for key-based licenses:
120 license_key: string,
121
122} | {
123
124 // for user-based licenses:
125 user: {
126 id: number,
127 email: string,
128 first_name: string,
129 last_name: string,
130 phone_number: string,
131 is_initial_password: boolean,
132 max_activations: number,
133 allow_unlimited_activations: boolean,
134 total_activations: number
135 }
136}))[];
If an error occurs, the response will have an HTTP status code of 400 or higher, and the response body will contain an error description in the following format:
TypeScript
1{
2 status: number,
3 code: string,
4 message: string
5}
Updated 17 Jan 2025
Did this page help you?