LicenseGuard – License Key Verification & Activation API
LicenseGuard is a production-ready software licensing backend for developers who need secure license key validation, activation enforcement, and refund-based revocation without building custom infrastructure.
This API allows you to:
Validate license keys securely
Enforce per-device activation limits
Prevent key sharing
Automatically revoke access after refunds or cancellations
Track activation status in real time
Send a POST request to the /validate endpoint with:
licenseKey
deviceId
The API verifies the license, checks activation limits, and returns a clear validation response indicating whether the license is valid.
A lightweight /health endpoint is included for monitoring and uptime checks.
Indie developers selling downloadable software
SaaS tools distributed outside app stores
Game developers selling direct licenses
Plugin and theme creators
AI tool builders distributing desktop applications
Start with the free tier to test integration in minutes, then scale with higher request limits as your product grows.
Validates a license key and enforces per-device activation limits.
Validate License - Endpoint Features
| Object | Description |
|---|---|
Request Body |
[Required] Json |
{"valid":true}
curl --location --request POST 'https://zylalabs.com/api/11906/gumroad+license+validation+backend+api/22626/validate+license' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"licenseKey": "TEST-LICENSE-123",
"deviceId": "device-abc-001"
}'
| Header | Description |
|---|---|
Authorization
|
[Required] Should be Bearer access_key. See "Your API Access Key" above when you are subscribed. |
No long-term commitment. Upgrade, downgrade, or cancel anytime. Free Trial includes up to 50 requests.
LicenseGuard prevents license key sharing, enforces per-device activation limits, and automatically revokes access after refunds — without you building your own licensing backend.
Call the /validate endpoint with a license key and device ID from your app. You’ll receive a clear JSON response indicating whether the license is valid.
Yes. It’s ideal for desktop software, plugins, games, and downloadable tools distributed outside app stores.
Yes. You can restrict how many devices a license can activate.
Access can be revoked automatically depending on your configuration.
Yes. Zyla provides a 7-day free trial so you can test integration before committing.
It’s primarily designed for license-key based products. For SaaS subscription management, additional logic may be required.
Yes. LicenseGuard runs on a scalable hosted backend and is designed for real-world production usage.
The /validate endpoint returns a JSON response indicating the validity of the license key. It includes a boolean field "valid" that specifies whether the license is active and meets activation limits.
The primary field in the response from the /validate endpoint is "valid," which is a boolean. If the license is valid, it returns true; otherwise, it returns false, indicating issues like exceeding activation limits.
The response from the /validate endpoint is structured in JSON format. It contains key-value pairs, with "valid" as the main field, allowing for easy parsing and integration into applications.
The /validate endpoint accepts two parameters: "licenseKey" (the license key to validate) and "deviceId" (the unique identifier for the device attempting activation).
Users can customize their requests by providing different "licenseKey" and "deviceId" values in the POST request to the /validate endpoint, allowing for validation of various licenses across different devices.
The /health endpoint is typically used for monitoring the API's uptime and operational status. It helps developers ensure that the licensing service is available and functioning correctly in production environments.
LicenseGuard maintains data accuracy through secure validation processes and real-time checks against activation limits. This ensures that only legitimate licenses are validated and activated.
If the response from the /validate endpoint indicates an invalid license, users should check for potential issues such as incorrect license keys, exceeded activation limits, or revoked licenses due to refunds.
Please have a look at our Refund Policy: https://zylalabs.com/terms#refund
To obtain your API key, you first need to sign in to your account and subscribe to the API you want to use. Once subscribed, go to your Profile, open the Subscription section, and select the specific API. Your API key will be available there and can be used to authenticate your requests.
You can’t switch APIs during the free trial. If you subscribe to a different API, your trial will end and the new subscription will start as a paid plan.
If you don’t cancel before the 7th day, your free trial will end automatically and your subscription will switch to a paid plan under the same plan you originally subscribed to, meaning you will be charged and gain access to the API calls included in that plan.
The free trial ends when you reach 50 API requests or after 7 days, whichever comes first.
No, the free trial is available only once, so we recommend using it on the API that interests you the most. Most of our APIs offer a free trial, but some may not include this option.
Yes, we offer a 7-day free trial that allows you to make up to 50 API calls at no cost, so you can test our APIs without any commitment.
Zyla API Hub is like a big store for APIs, where you can find thousands of them all in one place. We also offer dedicated support and real-time monitoring of all APIs. Once you sign up, you can pick and choose which APIs you want to use. Just remember, each API needs its own subscription. But if you subscribe to multiple ones, you'll use the same key for all of them, making things easier for you.
Service Level:
100%
Response Time:
294ms
Service Level:
100%
Response Time:
282ms
Service Level:
100%
Response Time:
210ms
Service Level:
100%
Response Time:
314ms
Service Level:
100%
Response Time:
139ms
Service Level:
100%
Response Time:
129ms
Service Level:
100%
Response Time:
137ms
Service Level:
100%
Response Time:
315ms
Service Level:
100%
Response Time:
479ms
Service Level:
100%
Response Time:
881ms
Service Level:
100%
Response Time:
798ms
Service Level:
100%
Response Time:
214ms
Service Level:
100%
Response Time:
178ms
Service Level:
100%
Response Time:
431ms
Service Level:
100%
Response Time:
1,104ms
Service Level:
100%
Response Time:
341ms
Service Level:
100%
Response Time:
819ms
Service Level:
100%
Response Time:
2,060ms
Service Level:
100%
Response Time:
636ms
Service Level:
100%
Response Time:
10,831ms