POWERING REELNOX STUDIO · BACKDROP_ · TIMEPEEK

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.

a sale, as seen by your app

$ curl -X POST api.sublimearts.io/v1/licenses -d '{"product":"my-app"}'

MYAPP-·····-·····-·····-·····

✓ key delivered to buyer — machine-locked, revocable

HOW IT WORKS

Three calls. That's the whole integration.

01

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"}'
02

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"
03

Verify inside your app

Machine-locked activation, offline verification via a signed lease (no network needed for up to 7 days), revoke on refund.

from sublimekeys import SublimeKeysClient

client = SublimeKeysClient(product_id="my-app")
result = client.verify(license_key=key)
if result.valid:
    unlock_full_version()

Python? pip install sublimekeys — official SDK, handles the offline verification for you. View on PyPI → · Node.js / Electron? npm install sublimekeys View on npm →

PRICING

Start free. Upgrade when it pays for itself.

FREE$0

1 product · 100 keys · 5 devices/key

PRO$9/mo

5 products · 1,000 keys · 25 devices/key

BUSINESS$29/mo

unlimited products & keys · 100 devices/key

DONE-FOR-YOU

We package it. We sign it. You ship it.

Not every indie dev wants to become an expert in Nuitka, Inno Setup, and Windows packaging just to ship one installer. Send us your project — we build it, package it, and sign it correctly the first time, with SublimeKeys licensing already wired in.

See the packs →

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 and roughly once a week after that. Every /activate and /verify call returns a cryptographically signed lease valid for 7 days — verify it locally with no network call, no blind trust. The official Python and Node.js/Electron SDKs handle this automatically; other languages can verify the Ed25519 signature themselves (see the docs).

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.

How many devices can one license activate on?

Whatever you decide, up to your plan's ceiling. Pass max_activations when you issue a key via POST /v1/licenses (it defaults to 1 if you don't). Sell "personal use, 3 devices"? Set it to 3. The per-key ceiling itself scales with your SublimeKeys plan — 5 on Free, 25 on Pro, 100 on Business — so a single leaked key can never fan out further than that, whatever plan you're on. See the docs for the full field list.

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.

Can I win back users whose trial already expired?

Yes — reinstalling never resets a trial's clock on its own, but you can deliberately re-open it: set your product's current version and arm "reset trials on this release," then ship. Every expired machine gets a fresh 7-day trial the next time it checks in, and the arm turns itself back off automatically so it never fires twice by accident. See TRIAL RESET ON RELEASE in the docs for the full mechanics.