How the Licensing Engine Works
A simple, 4-step workflow that ensures applications only run on authorized domains and subdomains.
Admin Provisions Key
The administrator creates a secure API key in the admin panel and binds it strictly to an exact domain or subdomain (e.g. app.client.com).
App Sends Verification
On boot or periodic intervals, the client application sends a quick request to /admin/verify.php with its key and host domain.
Domain Match & Isolation
The engine normalizes both hosts and strictly verifies that the requesting domain matches the authorized record. Subdomains are strictly prevented from cross-authorizing.
Live Authorization Response
The API returns a clean JSON response: 200 valid or 403 unauthorized / expired / suspended.
Live API Verification Sandbox
Test your license key and domain in real-time to inspect the API response.
Request Parameters
Method: POST / GETAccepts raw domain, URL with protocol, or port (e.g. https://app.client.com:8080/checkout). Subdomains remain strictly preserved.
Live JSON Response
Ready// Click "Send Verification Request" or select a Quick Demo above to test.
Application Integration Code
Easily verify licenses inside your web application files.
Paste this snippet into your application's bootstrap or validation middleware. It dynamically submits the current host header to enforce domain and subdomain lock.
API Response Reference
Detailed status codes and JSON payloads returned by the verification endpoint.
The license key exists, is active, has not expired, and matches the requesting domain exactly.
{
"status": "valid",
"message": "License verified successfully.",
"allowed_domain": "app.client.com",
"expires_at": "lifetime"
}
The key is locked to another domain or subdomain (e.g. key bound to app.client.com accessed from client.com).
{
"status": "unauthorized",
"message": "License key is strictly locked to domain 'app.client.com'...",
"registered_domain": "app.client.com",
"client_domain": "client.com"
}
The key is temporarily paused by the admin or the expiration date has passed.
{
"status": "suspended",
"message": "License is currently marked as suspended."
}