API ReferencePOST /activate

POST /activate

POSThttps://verify.web3.market/activateLicense Key30 requests/min

Activate a license key on a specific domain. This binds the license to the domain, authorizing it to pass verification.

Request Body

Body Parameters

ParameterTypeDescription
license_key*stringThe license key to activate. Must be a valid, active license key.
Example: LIC-A3F9-K2M7-P8X1-Q4R6
domain*stringThe domain to activate the license on. Automatically normalized (see below).
Example: myapp.example.com

Domain Normalization

The API automatically normalizes the domain value before storing it. You do not need to pre-process the domain on your end. The following transformations are applied:

  • Protocol strippedhttps://example.com becomes example.com
  • Path strippedexample.com/app/dashboard becomes example.com
  • Port strippedexample.com:3000 becomes example.com
  • LowercasedMyApp.Example.COM becomes myapp.example.com
  • Trailing slash removedexample.com/ becomes example.com

This means all of the following inputs resolve to the same domain:

https://example.com
http://example.com/
EXAMPLE.COM:8080/path
example.com

Example Request

curl -X POST https://verify.web3.market/activate \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "license_key": "LIC-A3F9-K2M7-P8X1-Q4R6",
    "domain": "myapp.example.com"
  }'

Success Response

Status: 200 OK

{
  "success": true,
  "message": "License activated successfully on domain.",
  "domain": "myapp.example.com",
  "license_key": "LIC-A3F9-K2M7-P8X1-Q4R6"
}

If the domain is already activated on this license, the API returns the same success response without creating a duplicate entry.

Error Responses

Invalid License Key

Status: 404 Not Found

{
  "success": false,
  "error": "invalid_key",
  "message": "The provided license key does not exist."
}

Expired License

Status: 422 Unprocessable Entity

{
  "success": false,
  "error": "expired",
  "message": "This license has expired and cannot be activated."
}

Suspended License

Status: 422 Unprocessable Entity

{
  "success": false,
  "error": "suspended",
  "message": "This license has been suspended."
}

Revoked License

Status: 422 Unprocessable Entity

{
  "success": false,
  "error": "revoked",
  "message": "This license has been revoked and cannot be activated."
}

Domain Limit Reached

Status: 422 Unprocessable Entity

{
  "success": false,
  "error": "domain_limit_reached",
  "message": "This license has reached its maximum number of activated domains."
}

Each license has a maximum number of allowed domains set by the seller. If you need to activate on a new domain but have reached the limit, use the POST /deactivate endpoint to remove an existing domain first.

Notes

  • Activation is idempotent. Activating the same domain on the same license key multiple times will not return an error or create duplicate entries.
  • The license key must have an active status. Suspended, revoked, and expired licenses cannot be activated on new domains.
  • Domain normalization is applied consistently across activation, verification, and deactivation. You do not need to normalize the domain yourself.