Licensing for developers
Add license keys, hardware-bound activations, floating seats, and signed offline files to software people install.
curl -X POST https://api.keymint.dev/key/activate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"productId": "prod_100",
"licenseKey": "KM-A8E2-9F1B-C3D4",
"hostId": "mac-studio-m2"
}'signed response
200 OK{
"code": 0,
"message": "License valid",
"licenseeName": "Test Customer",
"licenseeEmail": "test@example.com",
"allowedHosts": ["mac-studio-m2"]
}Node.js
npm install keymint
Python
pip install keymint
Go
go get github.com/keymint-dev/keymint-go
C#
dotnet add package Keymint
License lifecycle
From key creation to seat release.
Model the same lifecycle your product already needs: create a key, activate it on a host, inspect its state, and release the seat when needed.
Create
POST /key
Create a license key, assign an existing customer or new customer, and set activation limits or allowedHosts.
Activate
POST /key/activate
Bind the key to a device by sending productId, licenseKey, and a stable hostId from the app.
Manage
GET /key
Retrieve license status, activation count, customer details, version data, metadata, and allowed host IDs.
Release
POST /key/deactivate
Free a machine activation seat when a customer moves devices or uninstalls the application.
What it replaces
The licensing logic you do not want in your app.
Issue keys
Generate license keys with activation limits, expiration dates, metadata, customer assignment, and optional allowed hosts.
Bind devices
Call activation with a stable hostId so a license can be tied to a real installation instead of a copyable local file.
Verify offline
Generate signed offline license files for a hardware fingerprint, then verify the Ed25519 JWT locally in your app.
Use-case paths
The same API shape for every licensing model.
Pick the access model your customer needs, then wire the documented requests into your app.
Node-locked desktop apps
Issue a key, activate it against a stable hostId, and release the seat when a customer moves machines.
Floating concurrent seats
Lease concurrent access, extend the session with signed heartbeats, and check the seat back in on shutdown.
Air-gapped customers
Generate a signed offline license file for a hardware fingerprint and verify the Ed25519 JWT locally.
API surface
The documented API surface.
Predictable endpoints for the moments your product needs to make an access decision.
/key
Issue a key with activation limits, metadata, customer assignment, and optional allowed hosts.
/key/activate
Validate a license and bind it to a stable hostId for node-locked access.
/key/checkout
Lease a concurrent seat for a floating license session.
/key/heartbeat
Keep a floating session alive with a signed heartbeat and rotated nonce.
/key/sign
Generate a signed offline license file for a specific hardware fingerprint.
Trust model
License decisions your app can defend.
Licensing is security-sensitive infrastructure. Keep the public promises specific: scoped keys, signed offline files, nonce-rotated floating sessions, and encrypted storage.
Scoped API keys
Use admin keys for backend management, client keys for activation and floating sessions, and read-only keys for monitoring.
Signed offline files
Offline licenses are Ed25519-signed JWTs. Your app verifies the token with trusted public keys and the key ID in the JWT header.
Floating session hardening
Checkout returns a sessionSecret and nextNonce. Heartbeats and check-ins use HMAC-SHA256 signatures with nonce rotation.
Encrypted transport and storage
The security docs specify TLS for API traffic, AES-256 encryption at rest, and SHA-256 hashing for stored license key strings.
Developer proof
Trusted by developers worldwide
"Very convenient product, neat dashboard, simple and unique... pricing is really good... implementing API is simple, no bugs and errors in my experience."
"Keymint makes licensing straightforward and seamless. Excellent dashboard, reliable developer API, and responsive support."
Pricing
Start free. Scale when licenses matter.
Free
Free during development. No credit card required.
- 10K API Requests / Month
- Webhooks (100/day)
- 24-Hour Data Retention
- Product Versioning
- Custom SMTP & HTML Templates
All plans include hardware node-locking, offline & floating licensing, and email delivery.
Startup
PopularFor indie hackers and early-stage startups shipping their first product.
- 100K API Requests / Month
- Webhooks
- 7-Day Data Retention
- Product Versioning
- Custom SMTP & HTML Templates
All plans include hardware node-locking, offline & floating licensing, and email delivery.
Standard
For scaling businesses with high activation volumes and B2B needs.
- 1M API Requests / Month
- Webhooks
- 30-Day Data Retention
- Product Versioning
- Custom SMTP & HTML Templates
All plans include hardware node-locking, offline & floating licensing, and email delivery.
Enterprise
Need more scale or custom terms?
Higher license volumes, dedicated support, SLA guarantees, custom integrations, and volume pricing.
Contact SalesHow We Compare
See how Keymint stacks up.
Honest side-by-side comparisons with the platforms developers evaluate most.
Keymint vs Keygen
Self-hosting, SOC 2, and enterprise licensing — how the developer experience compares.
Read comparisonKeymint vs Cryptlex
Enterprise licensing at $100-600/mo vs modern developer licensing at $0-99/mo.
Read comparisonKeymint vs Paddle
Why Paddle handles billing well but wasn't built for software licensing enforcement.
Read comparisonFAQ
Before you wire it in.
What apps can use Keymint?
Any app that can call a REST API can integrate Keymint, including desktop apps, Electron and Tauri apps, CLI tools, plugins, B2B software, SaaS feature gates, and server-side services.
Which SDKs are official?
The docs list official SDKs for Node.js/TypeScript, Python, Go, and C#/.NET. You can also use the REST API directly from any HTTP client.
How does node-locking work?
Create a key with allowedHosts when you want to restrict devices, then call POST /key/activate with a stable hostId from the app. Unknown hosts can be rejected with a 403 response.
How do floating licenses work?
The app calls POST /key/checkout to lease a seat, POST /key/heartbeat to extend it with a signed nonce, and POST /key/checkin to release the seat on shutdown.
Can licenses work offline?
Yes. Keymint can generate signed .lic files as Ed25519 JWTs. Your app verifies the license locally using trusted public keys and the key ID in the token header.
What are the documented rate limits?
Free plans allow 10 requests per minute, Startup allows 100 requests per minute, and Standard allows 1,000 requests per minute.
Add licensing before it slows you down.
Create a vendor account, define your first product, and activate your first license key for free.