Atlas

Getting started

FAQ

Short answers to the questions people ask most.

General#

What is Atlas?

A hosted licensing service for desktop apps, games, tools, and plugins. You issue license keys, limit how many devices use them, and your app checks them with one call.

Which languages are supported?

Official SDKs for TypeScript, Python, C# (also VB.NET and Unity), Java, Go, Rust, PHP, and C++. Anything else can call the HTTP API directly. SDKs

What's the difference between test and live?

They're separate environments with their own keys, licenses, and customers. Build against test, then switch your app to live keys when you ship. Switch environments from the sidebar.

I use KeyAuth. Can I move my customers?

Yes. The importer brings keys, users (with their passwords), and variables across, and customers keep the key they already have. Migrate from KeyAuth

What's a product, and how many do I need?

One per app you sell. A key for one product never unlocks another.

Licenses#

What's a policy?

A template for the terms you sell, such as 'Annual, 3 devices'. New licenses copy its terms; changing a policy doesn't change licenses already issued. Licenses and policies

A customer lost their key. Can I look it up?

No. Keys are stored as hashes and shown only once. Issue a new license and revoke the old one, or let the customer sign in with a user account instead.

How do I find a customer's license?

Search the Licenses page by the customer's email, name, ID, or by pasting their key.

What's the difference between suspend and revoke?

Suspending pauses a license and can be undone. Revoking ends it permanently.

What happens when a license expires?

Checks return license_expired. If the policy has a grace period, the app keeps working until it ends and the result shows in_grace.

Can I create many keys at once?

Yes, up to 500 per batch. The keys download once as a CSV. Bulk keys and exports

Devices#

How do device limits work?

Each license has an activation limit. A device activates the first time it checks in; when every seat is taken, new devices get activation_limit_reached. Devices and activations

A customer got a new PC. What do they do?

Reset the license's devices from its page, or turn on self-service resets so they can do it themselves from a link or from your app. Device resets

Can a team share a pool of seats?

Yes, with floating licenses. A device holds a seat only while the app runs, and it's freed when the app stops sending heartbeats. Floating licenses

Does the app need internet every time?

No. Allow offline use on the policy and the app can store a signed lease that keeps it working offline for as long as you choose. Offline mode

How is a device identified?

Every SDK derives the same ID from the operating system's machine ID, so two apps on one PC count as one device.

In your app#

Where do I find my publishable key and signing key?

Open your product and select the Quick start tab. Both are already filled into the code for your language.

Can I put a secret API key in my app?

Never. Secret keys can manage your whole account. Apps use the publishable key, which can only check licenses. API keys

Can someone crack my app?

Signed responses stop fake servers and edited responses, but anyone can patch code running on their own machine. Pair Atlas with an obfuscator if that matters to you.

Can I force customers to update?

Yes. Set a minimum version on the product. Older apps, and apps that don't send a version, get update_required. Forced updates

Can customers sign in with a username instead of a key?

Yes. They register once with their key, then sign in with a username and password. Variables, files, and accounts

How do I change a setting without shipping an update?

Use variables. Your app fetches them at runtime, and you edit them on the product page. Variables

How do I block an abuser?

Ban their license, which blacklists their devices too, or add their IP, range, or country to the blacklist. It applies to every product. Blacklist and whitelist

Selling#

Which stores can deliver keys automatically?

Stripe, Paddle, Lemon Squeezy, Polar, SellAuth, and Komerza. Each sale issues a license and the buyer gets the key by email (or on the storefront for SellAuth and Komerza). Sell your app

What happens on a refund or chargeback?

With Stripe, Paddle, Lemon Squeezy, and Polar, the license is revoked automatically. Subscriptions renew the license on each payment and expire it when canceled.

What if someone buys 50 keys?

Orders of more than five keys from a payment provider get their keys as a .txt attachment instead of a long email.

Who do buyers' emails come from?

Your organization's name, with replies going to your billing email. The design is neutral, with no Atlas branding beyond a small footer link.

Can my server react when a license changes?

Yes, with signed webhooks for every license and activation event. Webhooks

Account and billing#

Can my team use the same account?

Invite them from Settings and give each a role: read-only, developer, admin, or owner. Team and settings

What happens when I hit a plan limit?

You can't add more of that item, but nothing you already have stops working. Plans and billing

How do I upgrade, downgrade, or cancel?

From the plan card in Settings. Only owners can change the plan. Plans and billing

I lost my authenticator. How do I sign in?

Use one of your recovery codes in place of the 6-digit code. If you've lost those too, contact support from the email on your account. Account security

Can I delete my data?

Yes. Contact support and we'll delete your organization and everything in it. Privacy policy