Page Inspect
Internal Links
54
External Links
12
Images
9
Headings
22
Page Content
Title:Software Licensing and Distribution API
Description:Keygen is a powerful software licensing API for desktop apps, on-premise software and other software products written in Go, Rust, JS, C/C++, C#, Swift, Java, Kotlin and more.
HTML Size:54 KB
Markdown Size:8 KB
Fetched At:November 18, 2025
Page Structure
h1Open, enterprise-grade licensing & distribution
h2Developer-first
h2Cloud-native
h3Focus
h3Maintenance
h3Scale
h3Security
h2Enterprise-grade
h2Fair-source
h3Free
h3Open
h3Community
h3Contribute
h3Ready, set, run
h4Trusted by over 6,000 software businesses all over the worldincluding F1000s, AI startups, SMBs, and indies
h4Longevity, or abandonware?
h4Keygen joins OSS Pledge
h4Licensing is packaging
h4Keygen is now Fair Source
h4Locked-in
h2Ready to get started?
h3Sign up today, or reach out.
Markdown Content
Software Licensing and Distribution API - Keygen
Keygen is Fair SourceStar us on GitHub *arrow\_right\_alt*
Keygen
*menu*
- Pricing
- Use Cases*expand\_more*
- *lock\_open* Software Application LicensingUse Keygen's flagship software licensing API to add license key validation, device activation and entitlements to any software product.
- *cloud\_download* Software Artifact DistributionUse Keygen's supplementary software distribution API to securely deliver artifacts and offer automatic updates to licensed users.
- *bolt* No-code Licensing AutomationUse Zapier to integrate Keygen with your favorite tools, such as Stripe for payments, and Postmark for transactional emails. No code required.
- For On-Premise/Multi-Prem
- For Go Programs
- For iOS Apps
- For Mac Applications
- For Android Apps
- For Windows Programs
- For Container Images
- For Electron Apps
- For WordPress Plugins
- For Tauri Apps
- For Python Packages
- For PHP Packages
- For Node Packages
- For RubyGems
- Demos*expand\_more*
- *phonelink\_lock* License Activation Portal Demo
- *vpn\_key* License Key Validation Demo
- Try Dashboard Demo
- Developers*expand\_more*
- *dns* Self-Host KeygenLearn how to self-host Keygen's Community Edition for free, or self-host our Enterprise Edition for your business.
- *lan* Keygen Relay NEWUse Keygen Relay to securely distribute node-locked licenses in offline and air-gapped environments.
- *terminal* Developer CLIUse Keygen's official CLI to sign and publish software releases. Integrate with our SDKs for secure automatic upgrades.
- *import\_contacts* Documentation
- *data\_object* API Reference
- *update* Changelog
- *security* Security
- *code* Source Code
- Company*expand\_more*
- Read the Source CodeKeygen is an Fair Source software licensing and distribution API. View the source code on GitHub to learn more. *compare\_arrows* Build vs BuyBusinesses of all sizes face the question of whether to build or buy a licensing solution.
- *volunteer\_activism* Open Source
- *description* Fair Source
- *campaign* Affiliate Program
- *business* About
- *badge* Careers
- *article* Blog
- *support* Get Support
- Log in
- Sign Up
Keygen relicenses to the Fair Core License *arrow\_right\_alt*
# **Open, enterprise-grade** licensing & distribution
*Keygen* is a *Fair Source* software licensing and distribution *API*, built for developers, by developers. *Self-host* or try *Keygen Cloud* today.
Try Cloud
*Free during development, no upfront commitment*
## Developer-first
We've designed *Keygen*'s software licensing and distribution *API* to be easy to use for developers of all skill sets. Use our official SDKs or grab your favorite HTTP client.
keygen.LicenseKey = "C1B6DE-39A6E3-DE1529-8559A0-4AF593-V3" // Validate the licenselicense, err := keygen.Validate(fingerprint)if err == keygen.ErrLicenseExpired { panic("license is expired!")} if err == keygen.ErrLicenseNotActivated { // Activate the license machine, _ := license.Activate(fingerprint) fmt.Printf( "activated machine %s for license %s!\n", machine.ID, license.ID, )}keygen.LicenseKey = "C1B6DE-39A6E3-DE1529-8559A0-4AF593-V3"
// Validate the license
license, err := keygen.Validate(fingerprint)
if err == keygen.ErrLicenseExpired {
panic("license is expired!")
}
if err == keygen.ErrLicenseNotActivated {
// Activate the license
machine, _ := license.Activate(fingerprint)
fmt.Printf(
"activated machine %s for license %s!\n",
machine.ID,
license.ID,
)
}content_copy
## Cloud-native
*Keygen* was born in the cloud. Cloud is in our team's DNA. With *Keygen Cloud*, we'll handle all the hard stuff while your team focuses on product, not critical infrastructure.
### Focus
Let your team focus on product, not in-house licensing and distribution. Save time by using Keygen Cloud as a ready-to-go licensing solution.
### Maintenance
Skip the expensive up-front and ongoing costs of an in-house or self-hosted licensing solution. Save your business development time and money with Keygen Cloud.
### Scale
Effortlessly go from hundreds of users, to thousands, to hundreds of thousands and beyond. We'll handle the infrastructure so your team can focus on product.
### Security
We strive to ensure that data stored within Keygen Cloud is as secure as possible. TLS, HA, continuous backups, data encryption at-rest, in-transit, and at-work.
## Enterprise-grade
*Keygen EE*, our Enterprise Edition, is perfect for businesses that want to *self-host* Keygen.
Keygen EE comes with the following:
- OCI/Docker container registry
- Historical request logs
- Event/audit logs
- Custom environments
- Custom permissions
- SAML/SSO
- Self-hosting support
docker run --name keygen.1 -p 3000:3000 \ -e DATABASE_URL="postgres://postgres:***@host.docker.internal:5432/postgres" \ -e REDIS_URL="redis://host.docker.internal:6379" \ -e KEYGEN_LICENSE_FILE_PATH="/etc/keygen/ee.lic" \ -e KEYGEN_LICENSE_KEY="C1B6DE-39A6E3-DE1529-8559A0-4AF593-V3" \ -e KEYGEN_ACCOUNT_ID="c8ef4b4b-9a0a-49c7-8ea4-c47d13aa11f9" \ -e KEYGEN_HOST="licensing.enterprise.example" \ -e KEYGEN_MODE="singleplayer" \ -e KEYGEN_EDITION="EE" \ -v /etc/keygen:/etc/keygen \ keygen/api webdocker run --name keygen.1 -p 3000:3000 \
-e DATABASE_URL="postgres://postgres:***@host.docker.internal:5432/postgres" \
-e REDIS_URL="redis://host.docker.internal:6379" \
-e KEYGEN_LICENSE_FILE_PATH="/etc/keygen/ee.lic" \
-e KEYGEN_LICENSE_KEY="C1B6DE-39A6E3-DE1529-8559A0-4AF593-V3" \
-e KEYGEN_ACCOUNT_ID="c8ef4b4b-9a0a-49c7-8ea4-c47d13aa11f9" \
-e KEYGEN_HOST="licensing.enterprise.example" \
-e KEYGEN_MODE="singleplayer" \
-e KEYGEN_EDITION="EE" \
-v /etc/keygen:/etc/keygen \
keygen/api webcontent_copy
## Fair-source
*Keygen CE*, our Community Edition, is *free* to *self-host* for personal and commercial projects.
### Free
Keygen CE is free (as in beer) to self-host for any project. We want to make licensing accessible for everyone.
### Open
Keygen is licensed under the Fair Core License. Browse the code on GitHub, clone it, fork it, modify it, use it.
### Community
Join our communities on GitHub and Discord to make friends, talk shop, and get community support.
### Contribute
Want to see something new in Keygen? Open an issue or pull request and let's talk about your new idea.
### Ready, set, run
Clone it, run the setup, then serve. That's it. Self-hosting made easy.
git clone https://github.com/keygen-sh/keygen-api && cd keygen-apibundlebundle exec rails keygen:setupbundle exec rails servergit clone https://github.com/keygen-sh/keygen-api && cd keygen-api
bundle
bundle exec rails keygen:setup
bundle exec rails servercontent_copy
#### **Trusted by over 6,000 software businesses all over the world**including F1000s, AI startups, SMBs, and indies
Read testimonials
#### Longevity, or abandonware?
Is the promise of longevity for you, or somebody else?
October 30th, 2024 *chevron\_right*
#### Keygen joins OSS Pledge
Keygen commits to Open Source through the Open Source Pledge.
September 9th, 2024 *chevron\_right*
#### Licensing is packaging
On the first- and second-order effects of software licensing.
September 2nd, 2024 *chevron\_right*
#### Keygen is now Fair Source
Keygen relicenses from the Elastic License to the Fair Core License.
August 6th, 2024 *chevron\_right*
#### Locked-in
On the risks of vendor lock-in, and how to escape it.
January 31st, 2025 *chevron\_right*
## **Ready to get started?**
### Sign up today, or reach out.
* * *
"Licensing was planned to make up at least 25% percent of planned dev time for our product so it's awesome to see that we've been able to cut it down to 2.5% with Keygen." *– Ranorex*
Try Cloud
*Free during development, no upfront commitment*
* * *
Use Slack? Chat 1-1 with a Keygen engineer
© 2016–2025 Keygen LLC – All Rights Reserved – Reach out <\[email protected\]\>
The Keygen name, logo, and mark are trademarks of Keygen LLC in the United States
- Status
- About
- Security
- Changelog
- Privacy
- Terms
- SLA
- Integrate
- Affiliates
- Blog
- Jobs
- Press
- License
- CLA
-
-
-
-