New Offline licensing and signed responses

Licensing that stops sharing, online or off.

OpenAuth locks license keys to devices, signs every answer so fake servers get nowhere, and keeps your software running offline with device-bound leases. Add it with one HTTPS request.

  • Free for 10,000 logins a month
  • Any language that speaks HTTPS
Example: a license check sent to OpenAuth and its signed reply, next to an offline lease that is valid for 7 days and bound to one device.

Features

Everything you need to license software

Keys, devices, releases, files and your team, managed from one dashboard and enforced by one API.

License tokens

Generate keys in bulk, up to 1,000 per batch. Give them an expiry, your own text and a class for each tier you sell. Freeze a key without deleting it, and move existing customers over with CSV import from KeyAuth or auth.gg.

  • 1,000 per batch
  • Expiring
  • Custom text
  • Classes
  • Freeze
  • CSV import

Two sign-in methods

Customers enter a license key, or sign in with a user account. User accounts come with a customer portal where they redeem keys and download your files.

Anti-sharing

Lock each key to one device (HWID) or IP address. Set access rules by country or class, block VPNs and proxies, and keep block and allow lists.

Sharing detection

Keys used from too many IP addresses or countries are flagged. You get an alert, and OpenAuth can freeze the key for you.

Release control

Enforce version, build ID and file signature so old or modified builds can't sign in. Ship updates on channels with release notes.

File delivery

Stream program files only after a successful login, or offer direct downloads in the customer portal.

Server variables

Deliver remote config inside signed responses, with different values for each class. Change behaviour without shipping a build.

Insights

See every authentication request and its result, follow success rates over time, and get alerts when something needs a look.

Teams and resellers

Invite teammates as Support, Moderator, Administrator or Manager. Give resellers accounts with a token allowance. An activity log and team chat keep everyone in step.

Automation

Script your licensing with the Management API and keys scoped to exactly what they need. Start from the Discord bot example, post logins to Discord with webhooks, or connect your XenForo forum with the add-on.

  • Management APIScoped keys
  • Discord botExample project
  • Discord webhooksLogin events
  • XenForo add-onForum accounts

New Offline licensing

Keeps working when the connection doesn't

Your software signs in once and receives a signed lease for that device. Customers keep working on a plane, behind a firewall or through an outage, and the lease renews itself when they're back online.

  1. 01

    Authorize online

    A normal login succeeds and OpenAuth issues a lease, signed and bound to this device.

    Lease issued
  2. 02

    Work offline

    Your software verifies the lease on the device. No network needed until the window ends.

    Verified locally
  3. 03

    Renew automatically

    Back online, the lease renews in the background and your current policy is checked again.

    Policy re-checked

Steps 2 and 3 repeat for as long as the license stays valid.

  • Signed, device-bound leases

    Each lease is signed with ES256 and names the one device it was issued to.

  • You set the window

    Allow anything from 20 minutes to 90 days offline, to match how your customers work.

  • Copying it does nothing

    The lease is encrypted on the device and bound to a key that never leaves it. On another PC it won't open.

  • Clock tricks don't help

    Turning the clock back is detected, and a runtime budget ends the lease even if the clock is frozen.

  • Renews in the background

    Each renewal re-checks your policy, so a revoked or frozen license stops at the next renewal.

  • Revoke any installation

    See every installation in the dashboard and revoke the ones you no longer trust.

New Signed API

A fake server can't say “valid”

Every response is signed with your application's key and tied to a one-time nonce from your software. A cloned server or a hosts-file redirect can't produce that signature, and a recorded answer can't be replayed.

  • Signed with your app's key. Your software checks the signature before it trusts the answer.
  • One-time nonce. Each reply only matches the request that asked for it.
  • Rotating sessions. Long-running apps stay verified without holding one session forever.
  • Config you can trust. Server variables travel inside the signed payload.
Signed reply, decoded Signed
{
  "act": "login",
  "status": "ok",
  "class": "2",
  "nonce": "b8e1c07d9a42",
  "session": { "token": "4f1d…c09e" },
  "vars": { "motd": "Welcome back!" }
}
  • auth.openauth.ggSignature valid · nonce matches Accepted
  • 127.0.0.1 (hosts file)No valid signature Rejected
Replies arrive as an ES256-signed JWS. This is the payload inside. Signed API reference

Integration

Integrate in minutes

One HTTPS request per login. Send your API key, a device ID and the customer's key. The reply is plain text: the key's class.

  1. 1Create an application and copy its API key.
  2. 2Generate a key in bulk, or import your existing ones.
  3. 3Send the request from any language that can make HTTPS calls.
Follow the quickstart
curl -X POST \
  https://auth.OpenAuth.gg/index.php/ \
  -d "apikey=YOUR_API_KEY" \
  -d "hwid=DEVICE_ID" \
  -d "lkey=CUSTOMER_TOKEN"
Reply 2 The key's class. Anything else, such as login or hwid, says why the login failed.

token is the key your customer entered. The HWID helper stands for your own function that returns a stable device ID.

Pricing

Start free. Upgrade when you need more.

Plans apply per application, so each product gets exactly the plan it needs.

Base

For trying OpenAuth and small projects.

Free

Start free
  • 10,000 logins a month
  • Bulk token generation
  • License keys or user accounts
  • Collaborators and activity log
  • Signed API and sessions
  • Insights with 14 days of logs
  • Variables and update channels
  • Freezing and token notes
  • Named classes with feature flags

Lite

For products that are growing.

€5.99/month

Choose Lite
  • Everything in Base
  • Unlimited logins
  • Custom tokens
  • Deleting tokens
  • Management API and Discord bots
  • Import from KeyAuth, auth.gg or CSV
  • 30 days of logs

FAQ

Questions, answered

Can't find what you need? The docs cover every setting, and the team is on Discord.

What happens when a customer goes offline?

With offline licensing turned on, a successful login gives the device a signed lease. Your software keeps working until the window you set runs out, anywhere from 20 minutes to 90 days, and renews the lease in the background once it's back online. Without it, treat a network error as a failed login.

How does HWID locking work?

Your software sends a device ID with every login. The first successful login binds the key to that device, and logins from any other device are refused with hwid. When a customer changes computer, reset the binding from the dashboard. IP locking works the same way with IP addresses.

Can I move my keys from KeyAuth or auth.gg?

Yes. Export your keys from KeyAuth or auth.gg (or any spreadsheet) and upload the file under Control Panel > Import tokens. Classes, expiry dates and notes come along, and customers keep their existing keys. Importing is part of Lite and Premium.

Is my API key a secret?

No. The API key ships inside your software and can only check tokens, so it's fine if customers find it. Your secret key is the one to protect: keep it on your own server and never put it in software you distribute.

Which languages are supported?

Any language that can make an HTTPS request, including C#, C++, Python, Node.js, Go, Rust and PHP. There's no SDK to install: a login is one POST request with a plain-text reply.

Protect your next release

Create a free application in a minute. Upgrade to Premium when you want device locking, offline licensing and the rest.