POST https://license.rmz.gg/verify
Verifies a license key and auto-activates the device in a single call. No separate activation step is needed.
Request
Send a JSON body with the following fields:| Field | Type | Required | Description |
|---|---|---|---|
product_id | integer | Yes | Your product ID from the dashboard |
license_key | string | Yes | The customer’s license key |
hwid | string | No | Hardware ID — required if lock type is hwid |
Success Response (200)
Response Field Reference
| Field | Type | Description |
|---|---|---|
success | boolean | true if the license is valid |
data.status | string | active, expired, suspended, or revoked |
data.lock_type | string | none, hwid, or ip |
data.product.id | integer | Product ID |
data.product.name | string | Product display name |
data.plan | object | null | Subscription plan details (null if no plan) |
data.plan.duration | string | Raw duration key: monthly, quarterly, semiAnnual, annually, biennial, quinquennial, decennial |
data.plan.duration_label | string | Arabic display name for the duration |
data.plan.start_date | string | Plan start date (YYYY-MM-DD HH:MM:SS format) |
data.plan.end_date | string | Plan end date (YYYY-MM-DD HH:MM:SS format) |
data.plan.is_active | boolean | Whether the subscription is currently active |
data.expires_at | string | null | ISO 8601 expiry date (e.g., 2027-03-23T12:00:00+00:00). null means lifetime license |
data.expires_in_days | integer | null | Days remaining until expiry. null means lifetime |
data.activations.current | integer | Number of devices currently activated |
data.activations.max | integer | null | Maximum allowed activations. null means unlimited |
data.activations.remaining | integer | null | Activation slots remaining. null means unlimited |
data.metadata | object | null | Custom JSON data from product settings |
Error Response
When E2EE is enabled on the product, both success and error responses are AES-256-GCM encrypted. The response structure changes to:Decrypt the
payload using AES-256-GCM with your product’s encryption key, the nonce, and the tag to get the original JSON response.
