A clean HTML documentation page for verifying local and Gigora marketplace licenses.
This API verifies a license using software_id, license_key, and domain.
| Parameter | Type | Required | Description |
|---|---|---|---|
software_id |
integer | Yes | Software ID |
license_key |
string | Yes | License key or purchase code |
domain |
string | Yes | Installed domain |
{
"status": "success|error",
"message": "Message",
"data": {}
}
Local License Regex
^[A-Z0-9]{16,64}$
Gigora License Regex
^\d{4,}-\d{1,}-[a-z0-9]+-\d{4,}$
{
"status": "success",
"message": "License verified successfully.",
"data": {
"software_name": "My Software",
"license_key": "ABC123XYZ789TEST",
"domain": "example.com",
"status": "active",
"expiry_date": "2026-11-04",
"source": "local",
"activated_at": "2026-03-24 10:20:30",
"last_verified_at": "2026-03-24 10:25:00",
"current_plan_id": 1,
"current_plan_name": "Monthly Plan",
"current_duration_value": 1,
"current_duration_unit": "month",
"renewed_at": null
}
}
[
{
"case": "Missing Parameters",
"response": {
"status": "error",
"message": "Missing required parameters.",
"data": []
}
},
{
"case": "Invalid Domain",
"response": {
"status": "error",
"message": "Invalid domain format.",
"data": []
}
},
{
"case": "Invalid Software ID",
"response": {
"status": "error",
"message": "Invalid software ID.",
"data": []
}
},
{
"case": "Invalid License Format",
"response": {
"status": "error",
"message": "Invalid license format.",
"data": []
}
},
{
"case": "Invalid License Key",
"response": {
"status": "error",
"message": "Invalid license key.",
"data": []
}
},
{
"case": "Marketplace Config Missing",
"response": {
"status": "error",
"message": "Marketplace API configuration not found.",
"data": []
}
},
{
"case": "Marketplace Connection Failed",
"response": {
"status": "error",
"message": "Marketplace server connection failed.",
"data": {
"source": "gigora"
}
}
},
{
"case": "License Domain Not Configured",
"response": {
"status": "error",
"message": "License domain is not configured.",
"data": []
}
},
{
"case": "Domain Mismatch",
"response": {
"status": "error",
"message": "License is not registered for this domain.",
"data": {
"registered_domain": "clientdomain.com",
"requested_domain": "example.com"
}
}
},
{
"case": "License Not Active",
"response": {
"status": "error",
"message": "License is not active.",
"data": {
"status": "inactive"
}
}
},
{
"case": "License Expired",
"response": {
"status": "error",
"message": "License has expired, please renew now.",
"data": {
"expiry_date": "2026-02-15",
"payment_page_url": "https://example.com/renew.php",
"current_plan_id": 1,
"current_plan_name": "Monthly Plan",
"current_duration_value": 1,
"current_duration_unit": "month"
}
}
},
{
"case": "Default Plan Missing",
"response": {
"status": "error",
"message": "Default 1 month activation plan not found for this software.",
"data": []
}
},
{
"case": "Expiry Calculation Failed",
"response": {
"status": "error",
"message": "Unable to calculate default expiry date.",
"data": []
}
},
{
"case": "Activation Server Error",
"response": {
"status": "error",
"message": "Server error during license activation.",
"data": []
}
},
{
"case": "Database Error",
"response": {
"status": "error",
"message": "Database error.",
"data": []
}
},
{
"case": "General Server Error",
"response": {
"status": "error",
"message": "Server error.",
"data": []
}
}
]
curl -X POST "https://apiserver.blenddoit.com/api/verify-license.php" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "software_id=1" \
-d "license_key=ABC123XYZ789TEST" \
-d "domain=example.com"
fetch('https://apiserver.blenddoit.com/api/verify-license.php', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({
software_id: 1,
license_key: 'ABC123XYZ789TEST',
domain: 'example.com'
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));