> For the complete documentation index, see [llms.txt](https://docs.wproofreader.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.wproofreader.com/v6.12.0/deployment/licensing/license-verification.md).

# License verification

You can verify a license type and its validity period by checking the license status records.

Where you look depends on how you run WProofreader:

* Docker: logs are written to stdout (use `docker logs`).
* Windows/Linux (non-Docker): logs are stored in `AppServer/Logs`.

**Good to know:**

* License Ticket ID is a special license activation key that is required for the WebSpellChecker application usage.
* There are two types of License Ticket IDs available: 30-day trial and commercial (1 year). Except the validity period, there is no difference between ticket types from the technical perspective.
* WebSpellChecker license is hardware-based.

### 1. Locating Log Files <a href="#licenseverification-1.locatinglogfiles" id="licenseverification-1.locatinglogfiles"></a>

The location of **Logs** folder directly depends on the type of the environment where the WebSpellChecker application is installed and running.

#### Docker

In Docker, WProofreader logs are redirected to stdout/stderr. Use Docker logging commands instead of reading files from `AppServer/Logs`.

Example:

```bash
docker logs <container_id_or_name>
```

#### Windows/Linux server

* Path to **Logs** folder:

/\<WebSpellChecker\_Installation\_Path>/WebSpellChecker/AppServer/Logs

### 2. Verifying the License Status <a href="#licenseverification-2.verifyingthelicensestatus" id="licenseverification-2.verifyingthelicensestatus"></a>

To verify the license status:

1. Open the application logs.
   * Docker: run `docker logs <container_id_or_name>`.
   * Windows/Linux (non-Docker): open a log file from `AppServer/Logs`.
2. Search for the **License status** records.
   * These lines are written by the licensing subsystem.
   * They show whether the license is active and (for term licenses) how many days are left.

```javascript
License status: Successful activation. License term is <365/30> days.
License status: Successful activation. License is permanent.
License status: License is absent. The license activation is required.
```

### 3. Monitoring license via API <a href="#licenseverification-3.monitoringlicenseviaapi" id="licenseverification-3.monitoringlicenseviaapi"></a>

If you need automated checks (monitoring, alerting, dashboards), query the license status via API.

Use the [health check command](/v6.12.0/api-reference/auxiliary-api-commands/health-check.md):

* `license.valid` shows whether the license is currently valid.
* `license.remaining_seconds` shows how many seconds are left until expiration.
