The Labs64 <a href='https://netlicensing.io/wiki/restful-api' target='blank'NetLicensing RESTful API</a gives you access to NetLicensing’s core features.<br/<br/<strongAuthentication</strong<br/You...
Bring your own key. This API needs your own Labs64 NetLicensing RESTful API Test Center key - get one from the provider, add it once below, and the proxy injects it on every call. Your OmniStream plan covers the unified SDK, key storage, and proxy - the provider's own rate limits still apply to your key.
This is a community listing. If you own this API, you can request ownership.
npm install omnistream-sdkimport { OmniClient } from "omnistream-sdk";
const omni = new OmniClient({ token: process.env.OMNI_KEY! });
// One key reaches every API on the marketplace.
const data = await omni.call("netlicensing/listLicenses");One install, one key - the same client calls every API on the marketplace.
List Licenses
Create License
Get License
Update License
Delete License
List Licensees
Create Licensee
/**
* Labs64NetLicensingRESTfulAPITestCenter - generated by OmniStream from Labs64 NetLicensing RESTful API Test Center's OpenAPI spec.
* One typed method per endpoint. A single Omni key reaches the API.
*/
const DEFAULT_BASE = "https://grid.skinvaults.online/v1/proxy/netlicensing";
export class Labs64NetLicensingRESTfulAPITestCenterError extends Error {
status: number;
code?: string;
constructor(status: number, code: string | undefined, message?: string) {
super(message || `Labs64NetLicensingRESTfulAPITestCenter error ${status}`);
this.name = "Labs64NetLicensingRESTfulAPITestCenterError";
this.status = status;
this.code = code;
}
}
export interface Labs64NetLicensingRESTfulAPITestCenterOptions {
baseUrl?: string;
fetch?: typeof fetch;
timeoutMs?: number;
}
export class Labs64NetLicensingRESTfulAPITestCenter {
/** @param token Your OmniStream key (one key for every API). */
constructor(private token: string, private opts: Labs64NetLicensingRESTfulAPITestCenterOptions = {}) {
if (!token) throw new Error("Labs64NetLicensingRESTfulAPITestCenter: token is required");
}
rateLimit: { remainingMinute?: number; remainingDay?: number } | null = null;
private async _request(method: string, path: string, { params, body }: { params?: Record<string, unknown>; body?: unknown } = {}): Promise<any> {
const f = this.opts.fetch ?? globalThis.fetch;
const url = new URL((this.opts.baseUrl ?? DEFAULT_BASE).replace(/\/+$/, "") + path);
if (params) for (const [k, v] of Object.entries(params)) if (v != null) url.searchParams.set(k, String(v));
const headers: Record<string, string> = { "x-omni-key": this.token };
if (body !== undefined) headers["content-type"] = "application/json";
const res = await f(url, { method, headers, body: body !== undefined ? JSON.stringify(body) : undefined });
this.rateLimit = {
remainingMinute: Number(res.headers.get("x-ratelimit-remaining-minute")) || undefined,
remainingDay: Number(res.headers.get("x-ratelimit-remaining-day")) || undefined,
};
const data = await res.json().catch(() => ({}));
if (!res.ok) throw new Labs64NetLicensingRESTfulAPITestCenterError(res.status, data?.error?.code, data?.error?.message);
return data.data ?? data;
}
/** List Licenses */
listLicenses(): Promise<any> {
return this._request("GET", "/license", {});
}
/** Create License */
createLicense(): Promise<any> {
return this._request("POST", "/license", { });
}
/** Get License */
getLicense(params: { "licenseNumber": string }): Promise<any> {
return this._request("GET", "/license/{licenseNumber}", { params });
}
/** Update License */
updateLicense(params: { "licenseNumber": string }): Promise<any> {
return this._request("POST", "/license/{licenseNumber}", { params });
}
/** Delete License */
deleteLicense(params: { "licenseNumber": string }): Promise<any> {
return this._request("DELETE", "/license/{licenseNumber}", { params });
}
/** List Licensees */
listLicensees(): Promise<any> {
return this._request("GET", "/licensee", {});
}
/** Create Licensee */
createLicensee(): Promise<any> {
return this._request("POST", "/licensee", { });
}
/** Get Licensee */
getLicensee(params: { "licenseeNumber": string }): Promise<any> {
return this._request("GET", "/licensee/{licenseeNumber}", { params });
}
/** Update Licensee */
updateLicensee(params: { "licenseeNumber": string }): Promise<any> {
return this._request("POST", "/licensee/{licenseeNumber}", { params });
}
/** Delete Licensee */
deleteLicensee(params: { "licenseeNumber": string; "forceCascade"?: boolean }): Promise<any> {
return this._request("DELETE", "/licensee/{licenseeNumber}", { params });
}
/** Transfer Licenses */
transferLicenses(params: { "licenseeNumber": string }): Promise<any> {
return this._request("POST", "/licensee/{licenseeNumber}/transfer", { params });
}
/** Validate Licensee */
validateLicensee(params: { "licenseeNumber": string }): Promise<any> {
return this._request("POST", "/licensee/{licenseeNumber}/validate", { params });
}
/** List License Templates */
listLicenseTemplates(): Promise<any> {
return this._request("GET", "/licensetemplate", {});
}
/** Create License Template */
createLicenseTemplate(): Promise<any> {
return this._request("POST", "/licensetemplate", { });
}
/** Get License Template */
getLicenseTemplate(params: { "licenseTemplateNumber": string }): Promise<any> {
return this._request("GET", "/licensetemplate/{licenseTemplateNumber}", { params });
}
/** Update License Template */
updateLicenseTemplate(params: { "licenseTemplateNumber": string }): Promise<any> {
return this._request("POST", "/licensetemplate/{licenseTemplateNumber}", { params });
}
/** Delete License Template */
deleteLicenseTemplate(params: { "licenseTemplateNumber": string; "forceCascade"?: boolean }): Promise<any> {
return this._request("DELETE", "/licensetemplate/{licenseTemplateNumber}", { params });
}
/** List Payment Methods */
listPaymentMethods(): Promise<any> {
return this._request("GET", "/paymentmethod", {});
}
/** Get Payment Method */
getPaymentMethod(params: { "paymentMethodNumber": string }): Promise<any> {
return this._request("GET", "/paymentmethod/{paymentMethodNumber}", { params });
}
/** Update Payment Method */
updatePaymentMethod(params: { "paymentMethodNumber": string }): Promise<any> {
return this._request("POST", "/paymentmethod/{paymentMethodNumber}", { params });
}
/** List Products */
listProducts(): Promise<any> {
return this._request("GET", "/product", {});
}
/** Create Product */
createProduct(): Promise<any> {
return this._request("POST", "/product", { });
}
/** Get Product */
productNumber(params: { "productNumber": string }): Promise<any> {
return this._request("GET", "/product/{productNumber}", { params });
}
/** Update Product */
updateProduct(params: { "productNumber": string }): Promise<any> {
return this._request("POST", "/product/{productNumber}", { params });
}
/** Delete Product */
deleteProduct(params: { "productNumber": string; "forceCascade"?: boolean }): Promise<any> {
return this._request("DELETE", "/product/{productNumber}", { params });
}
/** List Product Modules */
listProductModules(): Promise<any> {
return this._request("GET", "/productmodule", {});
}
/** Create Product Module */
createProductModule(): Promise<any> {
return this._request("POST", "/productmodule", { });
}
/** Get Product Module */
getProductModule(params: { "productModuleNumber": string }): Promise<any> {
return this._request("GET", "/productmodule/{productModuleNumber}", { params });
}
/** Update Product Module */
updateProductModule(params: { "productModuleNumber": string }): Promise<any> {
return this._request("POST", "/productmodule/{productModuleNumber}", { params });
}
/** Delete Product Module */
deleteProductModule(params: { "productModuleNumber": string; "forceCascade"?: boolean }): Promise<any> {
return this._request("DELETE", "/productmodule/{productModuleNumber}", { params });
}
/** List Tokens */
listTokens(): Promise<any> {
return this._request("GET", "/token", {});
}
/** Create token */
createToken(): Promise<any> {
return this._request("POST", "/token", { });
}
/** Get token */
getToken(params: { "tokenNumber": string }): Promise<any> {
return this._request("GET", "/token/{tokenNumber}", { params });
}
/** Delete token */
deleteToken(params: { "tokenNumber": string }): Promise<any> {
return this._request("DELETE", "/token/{tokenNumber}", { params });
}
/** List Transactions */
listTransactions(): Promise<any> {
return this._request("GET", "/transaction", {});
}
/** Create Transaction */
createTransaction(): Promise<any> {
return this._request("POST", "/transaction", { });
}
/** Get Transaction */
getTransaction(params: { "transactionNumber": string }): Promise<any> {
return this._request("GET", "/transaction/{transactionNumber}", { params });
}
/** Update Transaction */
updateTransaction(params: { "transactionNumber": string }): Promise<any> {
return this._request("POST", "/transaction/{transactionNumber}", { params });
}
/** List License Types */
licenseTypes(): Promise<any> {
return this._request("GET", "/utility/licenseTypes", {});
}
/** List Licensing Models */
licensingModels(): Promise<any> {
return this._request("GET", "/utility/licensingModels", {});
}
}
export default Labs64NetLicensingRESTfulAPITestCenter;
No reviews yet. Be the first to rate this API.
Yes. Labs64 NetLicensing RESTful API Test Center uses basic authentication, so you bring your own key from the provider. You store it once on OmniStream and the proxy injects it into every call, so your code only ever sends your Omni key.
The Labs64 <a href='https://netlicensing.io/wiki/restful-api' target='blank'NetLicensing RESTful API</a gives you access to NetLicensing’s core features.<br/<br/<strongAuthentication</strong<br/You... It exposes 40 endpoints over GET, POST, DELETE, including GET /license, POST /license, GET /license/{licenseNumber}.
Install the OmniStream SDK for your language and call Labs64 NetLicensing RESTful API Test Center through it. The client is generated from this API's OpenAPI spec, so parameters and responses are fully typed, and the same client also calls every other API in the marketplace.
You can start on the free plan. OmniStream charges for the unified SDK, key storage and proxy rather than for Labs64 NetLicensing RESTful API Test Center itself, and Labs64 NetLicensing RESTful API Test Center's own rate limits still apply to your provider key.
QuickChart: An API to generate charts and QR codes using QuickChart services.
Get Licensee
Update Licensee
Delete Licensee
Transfer Licenses
Validate Licensee
List License Templates
Create License Template
Get License Template
Update License Template
Delete License Template
List Payment Methods
Get Payment Method
Update Payment Method
List Products
Create Product
Get Product
Update Product
Delete Product
List Product Modules
Create Product Module
Get Product Module
Update Product Module
Delete Product Module
List Tokens
Create token
Get token
Delete token
List Transactions
Create Transaction
Get Transaction
Update Transaction
List License Types
List Licensing Models