Sell your desktop app.
We handle the keys.
Generate, activate and verify license keys with one tiny API — machine-locked activations, trials, revocations. Built by an indie developer who needed it. Now open to every indie developer.
$ curl -X POST api.sublimearts.io/v1/licenses -d '{"product":"my-app"}'
MYAPP-·····-·····-·····-·····
HOW IT WORKS
Three calls. That's the whole integration.
Register your product
One call. Pick a slug and a key prefix — done.
curl -X POST api.sublimearts.io/v1/products \
-H "Authorization: Bearer $SUBLIMEKEYS_API_KEY" \
-d '{"slug":"my-app","key_prefix":"MYAPP"}'Issue a key on every sale
Call it from your Stripe or Gumroad webhook — the key comes back ready to email. (Or skip this call entirely — see AUTOMATE in the docs.)
curl -X POST api.sublimearts.io/v1/licenses \
-H "Authorization: Bearer $SUBLIMEKEYS_API_KEY" \
-d '{"product":"my-app","email":"buyer@mail.com"}'
→ "MYAPP-K3F7Q-9WZ2M-P8RT4-XN5CB"Verify inside your app
Machine-locked activation, offline-friendly verify, revoke on refund.
r = requests.post(".../verify", json={
"license_key": key,
"machine_id": machine_id,
"product_id": "my-app"})
if r.json()["valid"]:
unlock_full_version()PRICING
Start free. Upgrade when it pays for itself.
1 product · 25 keys
5 products · 1,000 keys
unlimited everything
FAQ
The questions that matter.
What happens to my licenses if SublimeKeys shuts down?
Your data is never hostage: every key and activation is exportable via the API (GET /v1/licenses) at any moment, no permission needed. If we ever sunset the service, paying customers get 12 months of notice and a full export. And since this same API powers our own products — ReelNox Studio, BackDrop_, TimePeek — keeping it alive is existential for us too.
Do my users need to be online?
Only for the first activation — a single HTTPS call. For day-to-day verification we recommend caching the last successful check and allowing a grace window; your app decides how strict to be. Trials work the same way.
What if I hit my plan limit?
Nothing breaks. Existing keys keep activating and verifying forever — you just can't issue new ones until you upgrade. Your customers never notice anything.
What happens if I downgrade or cancel my subscription?
Nothing is ever deleted, suspended, or revoked — not your products, not a single license key. Everything keeps working exactly as before, forever, for you and for every customer who already bought a key from you. The only change: you can't create new products or keys beyond your new plan's limits until you upgrade again. Your customers' software should never break because of a decision you made on your end.
Where does my data live?
In the EU — on dedicated infrastructure in Nuremberg, Germany, HTTPS everywhere. Your API key is stored only as a SHA-256 hash: we physically cannot read it back.
How do I revoke a key?
Products → pick the product → Manage keys. Find the key (by email or the key itself) and hit Revoke — it's immediate and irreversible, exactly like a refund should work. Under the hood it's DELETE /v1/licenses/{key}, scoped so you can only ever touch your own keys.
Can I migrate from Gumroad, Keygen or my own server?
Yes. Bulk-issue keys for your existing customers with a real, ten-line script — see MIGRATE in the docs for the exact code. Key prefixes are configurable, so the new keys match your brand from day one. It re-keys your customers rather than preserving old key strings — the docs explain the tradeoff.