Licensing for developers

Add license keys, hardware-bound activations, floating seats, and signed offline files to software people install.

Node-locked keysFloating sessionsSigned .lic files
activate-license
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"]
}
hostIdmatched
allowedHostsactive

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.

POST /key
POST /key/activate
POST /key/deactivate

Floating concurrent seats

Lease concurrent access, extend the session with signed heartbeats, and check the seat back in on shutdown.

POST /key/checkout
POST /key/heartbeat
POST /key/checkin

Air-gapped customers

Generate a signed offline license file for a hardware fingerprint and verify the Ed25519 JWT locally.

POST /key/sign
Read .lic file
Verify with public key

API surface

The documented API surface.

Predictable endpoints for the moments your product needs to make an access decision.

POST

/key

Issue a key with activation limits, metadata, customer assignment, and optional allowed hosts.

POST

/key/activate

Validate a license and bind it to a stable hostId for node-locked access.

POST

/key/checkout

Lease a concurrent seat for a floating license session.

POST

/key/heartbeat

Keep a floating session alive with a signed heartbeat and rotated nonce.

POST

/key/sign

Generate a signed offline license file for a specific hardware fingerprint.

Bearer API keysadmin, client, read-only scopesHMAC-SHA256 floating heartbeatsEd25519 offline license files

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.

security controls
docs-backed

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."
Peterline A. · Verified SourceForge Review
"Keymint makes licensing straightforward and seamless. Excellent dashboard, reliable developer API, and responsive support."
Charles N. · Verified G2 Review

Pricing

Start free. Scale when licenses matter.

Free

Free during development. No credit card required.

$0
25
Licenses
1
Product
3
Team Members
  • 10K API Requests / Month
  • Webhooks (100/day)
  • 24-Hour Data Retention
  • Product Versioning
  • Custom SMTP & HTML Templates
Get Started Free

All plans include hardware node-locking, offline & floating licensing, and email delivery.

Startup

Popular

For indie hackers and early-stage startups shipping their first product.

$29/month
1,000
Licenses
10
Products
10
Team Members
  • 100K API Requests / Month
  • Webhooks
  • 7-Day Data Retention
  • Product Versioning
  • Custom SMTP & HTML Templates
Choose Startup

All plans include hardware node-locking, offline & floating licensing, and email delivery.

Standard

For scaling businesses with high activation volumes and B2B needs.

$99/month
5,000
Licenses
Products
20
Team Members
  • 1M API Requests / Month
  • Webhooks
  • 30-Day Data Retention
  • Product Versioning
  • Custom SMTP & HTML Templates
Choose Standard

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 Sales

FAQ

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.