A professional, production-ready SDK for integrating with the Keymint API in Node.js/TypeScript. Provides robust, async-first access to all major Keymint features, with strong typing and modern error handling.
- Async/await: All API calls are asynchronous.
- TypeScript-first: Strongly typed request and response models for all endpoints.
- Consistent error handling: All API errors are returned as structured objects.
- Machine Identity: Built-in utilities for hardware fingerprinting and stable installation IDs.
Add the SDK to your project:
npm install keymintimport { KeyMint } from 'keymint';
const apiKey = process.env.KEYMINT_API_KEY;
const productId = process.env.KEYMINT_PRODUCT_ID;
if (!apiKey || !productId) {
throw new Error('Please set the KEYMINT_API_KEY and KEYMINT_PRODUCT_ID environment variables.');
}
const sdk = new KeyMint(apiKey);
// 1. Get a stable, unique ID for this machine
const hostId = KeyMint.getOrCreateInstallationId();
// 2. Create a key authorized only for this machine
const result = await sdk.createKey({
productId,
allowedHosts: [hostId]
});
if (result && result.key) {
console.log(`Created Key: ${result.key}`);
}Keymint provides utilities to uniquely identify machines for node-locking:
KeyMint.getOrCreateInstallationId(): Recommended. Generates a stable UUID anchored to hardware and persists it to~/.keymint/installation-id.KeyMint.getMachineId(): Generates a SHA-256 fingerprint based on BIOS UUID, OS machine ID, and MAC address.
| Method | Description |
|---|---|
createKey |
Creates a new license key. |
activateKey |
Activates a license key for a device. |
deactivateKey |
Deactivates a device from a license key. |
getKey |
Retrieves detailed information about a key. |
blockKey |
Blocks a license key. |
unblockKey |
Unblocks a previously blocked license key. |
| Method | Description |
|---|---|
createCustomer |
Creates a new customer. |
getAllCustomers |
Retrieves all customers. |
getCustomerById |
Gets a specific customer by ID. |
getCustomerWithKeys |
Gets a customer along with their license keys. |
updateCustomer |
Updates an existing customer's information. |
toggleCustomerStatus |
Toggles a customer's active status. |
deleteCustomer |
Permanently deletes a customer and their keys. |
MIT
For help, see Keymint API docs or open an issue.