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-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.

FREE€0

1 product · 25 keys

PRO€9/mo

5 products · 1,000 keys

BUSINESS€29/mo

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.