Pricing

Pay for active licenses. No seats, no events, no surprise bills.

Simple pricing

Pay for active licenses, not seats or events. Cancel any time.

Most popular

Pro

For makers shipping to real customers.

€29 / month

Start Pro
  • 250 active licenses
  • Unlimited products
  • Webhook events
  • Email support

Or start smaller

  • Free

    For prototypes and side projects.

    €0
    / month
    • 100 active licenses
    • 1 product
    • Community support
    • Open-source SDK
    Start free
  • Business

    For teams scaling to many products.

    €49
    / month
    • 2,000 active licenses
    • Custom key prefix (white-label)
    • Unlimited products
    • Webhook events
    • Priority support
    Start Business

Self-hosted

Coming soon

Run Paperkey on your own servers. Single Postgres, single Docker compose, source-available. Drop the SaaS dependency the day a customer asks.

Free, MIT

Watch the repo
  • $ Unlimited everything. No active-license cap, no per-seat surprise bill.
  • $ Postgres + Docker + Traefik. Your servers, your backups, your data.
  • $ MIT-licensed. Fork it, audit it, ship it inside an airgap.
  • $ Same SDK + MCP. Customers and AI agents never know the difference.

Frequently asked questions

How does Paperkey compare to Keygen, LicenseSpring, or Cryptlex?

Paperkey is opinionated for indie devs shipping local-first apps (desktop, CLI, IDE extensions, plugins): open-source SDK, predictable pricing, integration your AI agent can wire in 30 seconds. The competition targets enterprise, with quotes, demos, and seat-based pricing. We are deliberately not that.

Can I self-host the API?

The dashboard and API are source-available. The SDK is MIT-licensed. A self-host path is on the roadmap; today the recommended setup is the managed API + your own SDK integration.

What counts as an "active license"?

A license that has at least one activation in the last 30 days. Revoked or expired licenses do not count.

Is the fingerprint privacy-respecting?

The SDK hashes a small set of stable system identifiers (machine ID, MAC, CPU class) and never sends raw values to our servers. CI mode swaps in environment-derived identifiers so build pipelines do not consume activations.

What happens if Paperkey disappears?

You own your data. Export licenses + activations from the dashboard at any time. The SDK works against any compatible API, including a future self-host build.

Do you offer a free tier?

Yes. 100 active licenses, 1 product, community support. No credit card required to start.

What's the uptime track record?

The managed API runs on Fly with regional failover. We do not publish a formal SLA yet. It will land before general availability, alongside a status page and incident history.

How fast does revocation propagate?

Revocation is immediate at the API layer: the next validate call returns license_revoked, typically under one second after the dashboard click. There is no edge cache to bust. The SDK re-validates on app launch and on a schedule, so a revoked license stops working at the next online check.

Do you support offline activation?

Activation requires a network call: the server must record the new fingerprint slot. Once activated, validation is offline-tolerant: the SDK caches the last positive verdict and replays it for up to 72 hours when the API is unreachable. Authoritative negatives (revocation, expiration) are never cached. The grace window is configurable.

What happens if your servers go down?

Apps already activated keep running for up to 72 hours thanks to the SDK validate cache. New activations are queued and resume when the API is back. Live status is at status.paperkey.dev. Self-hosting is on the roadmap; the SDK already runs against any compatible API.

How do I migrate from Keygen, Cryptlex, or Lemon Squeezy?

Export your existing licenses and activations from the current vendor, then POST them to /licenses (we accept arbitrary key formats via the product config). The SDK in your shipped app stays the same. Email hello@paperkey.dev for a 30-minute walkthrough against your real data.

Still evaluating?

Read the 5-minute quickstart. Or skip it: the SDK has decent defaults and the dashboard explains itself.