api:externallicense:list
Table of Contents
API : External Licenses List
Introduction
This request will return the list of all external licenses for a specific customer.
Request
| URL | https://api.telecomx.dk/externalLicense | ||
|---|---|---|---|
| Method | GET | ||
| Access level | RESELLER if customer belongs to the reseller or a sub reseller. RESELLER_ADMIN ADMIN. Requires that the External Licenses service is enabled on the customer/reseller account. | ||
| Query | offset | Number | [optional] Index of the first license to return, default 0. |
| limit | Number | [optional] The number of licenses to return, default 100, min 1, max 500. |
|
| customer | String | [optional] Id of the customer to list licenses for, defaults to user's own customer if not set. |
|
| reseller | String | [optional] Id of the reseller to list licenses for. If this value is given, it will fetch all licenses of this reseller's customers. |
|
| withoutProduct | Boolean | [optional] When true, only returns licenses that do not have a Telecom X product assigned yet. |
|
| format | String | [optional] Format to get the data in. Allowed values are csv and json. Defaults to json. |
|
| sort | String | [optional] Sort field. Allowed values are PLATFORM_ID, NAME, UNITS, START, END, INVOICE_START, PLATFORM_CUSTOMER_ID, PRODUCT_CODE, PRODUCT_NAME, CUSTOMER_NAME, WHOLESALE and PRICE. |
|
Query examples
https://api.telecomx.dk/externalLicense https://api.telecomx.dk/externalLicense?customer=1234567890ABCDEF12345678 https://api.telecomx.dk/externalLicense?customer=1234567890ABCDEF12345678&withoutProduct=true https://api.telecomx.dk/externalLicense?reseller=1234567890ABCDEF12345678&withoutProduct=true
Response
| JSON object | ||
|---|---|---|
| Property | Type | Description |
| offset | Number | Index of the first license returned. |
| limit | Number | Number of licenses to return. Note that the actual number of items returned may be lower. |
| total | Number | Number of licenses that can be returned when offset and limit is not considered. This is to be used for paging through the data. |
| externalLicenses | Array | List of licenses, see definition below. |
| External license | ||
|---|---|---|
| Property | Type | Description |
| _id | ObjectId | Unique ID |
| name | String | Name of the license in the external system, if any. |
| platformId | Enum | Platform enum of system this is synchronized from. Allowed value is ALSO. |
| platformLicenseId | String | The license's ID in the external system - can be a number, string, objectId, etc., depending on the system. |
| customer | Id or Object | The Telecom X customer this license belongs to. Plain customer id in the per-customer listing; the resolved customer document (see API : Customer Get) when listing by reseller. |
| product | Object | The Telecom X product this license is sold as — the resolved product document with all fields except cost (see API : Product Get). Null if no product is assigned; the raw product id if the referenced product no longer exists. |
| billingCustomer | ObjectId | [optional] Override billing customer; defaults to the license owner. |
| units | number | Amount of licenses. |
| invoicedUntil | Date | When this license is billed until in Telecom X |
| invoiceStart | Date | Date that Telecom X will start to bill this license from. If null, license will not be billed. |
| created | Date | Timestamp of when the license was fetched from the external system, and saved to Telecom X |
| lastSeen | Date | Timestamp of when the license was last seen in the external system |
| start | Date | Billing start date of the license. |
| end | Date | Billing end date/expiration date, null if not given |
| also | Object | Contains properties only related to ALSO. |
| also.wholesalePrice | Number | Wholesale price of the license, fetched from ALSO. Used as a guideline for the product's wholesale price. |
| also.price | Number | Customer price of the license, fetched from ALSO. Used as a guideline for the product's price. |
| also.renew | Boolean | Whether the license will be renewed, when license passes the end date |
| also.bindingPeriod | String | Defines for how long the license is bound. Allowed values are MONTHLY, QUARTERLY, YEARLY |
| also.lockedWholesalePrice | Number | Wholesale price of the license, which will be used until the binding period is over. |
| also.lockedPrice | Number | Customer price of the license, which will be used until the binding period is over. |
| also.billingType | String | Billing type from ALSO. |
When format=csv is set, the response is a downloadable CSV file (semicolon-separated, Danish locale, Content-Disposition: attachment;filename=external-licenses.csv) rather than JSON. Columns correspond to the JSON response fields above; when listing by reseller a customer name column is prepended. The CSV always contains the full result set (offset and limit are ignored).
Note that properties holding no value may be omitted from the object.
Example
{ "offset": 0, "limit": 100, "total": 2, "externalLicenses": [ { "_id": "650000000000000000000001", "name": "Office E3 2026", "platformId": "ALSO", "platformLicenseId": "571481273", "customer": "650000000000000000000002", "product": { "_id": "650000000000000000000003", "type": "EXTERNAL_LICENSE", "productCode": "M365-E3", "name": "Microsoft 365 E3", "unitType": "UNITS", "recurrence": "MONTHLY", "wholesale": 75, "price": 125, "customer": "650000000000000000000002", "inheritFromReseller": "650000000000000000000004" }, "units": 15, "invoicedUntil": "2026-06-30T22:00:00.000Z", "invoiceStart": "2026-01-31T23:00:00.000Z", "created": "2026-01-25T12:35:00.000Z", "lastSeen": "2026-07-30T12:35:00.000Z", "start": "2026-01-05T00:00:00.000Z", "end": "2027-01-05T00:00:00.000Z", "also": { "billingType": "Monthly (with 1-year commitment) - P1Y", "wholesalePrice": 51.32, "price": 182.12, "renew": false, "bindingPeriod": "YEARLY", "lockedWholesalePrice": 75, "lockedPrice": 125 } }, { "_id": "650000000000000000000005", "name": "Office Business Premium", "platformId": "ALSO", "platformLicenseId": "571481274", "customer": "650000000000000000000002", "product": null, "units": 5, "created": "2026-02-25T09:00:00.000Z", "lastSeen": "2026-07-30T12:35:00.000Z", "start": "2026-02-05T00:00:00.000Z", "end": null, "also": { "billingType": "Monthly - P1M", "wholesalePrice": 110, "price": 180, "renew": true, "bindingPeriod": "MONTHLY", "lockedWholesalePrice": null, "lockedPrice": null } } ] }
Errors
| Error code | Message | Description |
|---|---|---|
| 403 | access_denied | Required feature not enabled |
| 403 | access_denied | Insufficient access level |
| 404 | customer | Customer not found |
| 409 | parentReseller | Customer has no parent reseller |
| 422 | customer | Customer id is not valid |
| 422 | reseller | Reseller id is not valid |
| 422 | withoutProduct | Value is not a valid boolean |
| 500 | internal_error | <Unspecified> |
api/externallicense/list.txt · Last modified: by Mikkel Meerwaldt Jørgensen