---
title: "Validate a license"
method: POST
path: "/v1/license/validate"
tags: ["License"]
---

# Validate a license

`POST /v1/license/validate`

Validates that a license is active and the machine is registered. Used for periodic license checks.

## Request body

- ValidateRequest
  - `license_key` string, required — License key in format XXXXX-XXXXX-XXXXX-XXXXX-XXXXX.
  - `machine_id` string, required — SHA-256 hash of machine identifier (64 hex characters).

## Response `200`

License is valid. Returns signed license data.

- SignedLicenseResponse — Signed license response containing license data and a cryptographic signature.
  - `data` LicenseData, required — Core license information.
    - `email` string, email, required — Email address associated with the license.
    - `expires_at` string, date-time, required — License expiration date in ISO 8601 format.
    - `issued_at` string, date-time, required — Timestamp when the license data was issued.
    - `license_key` string, required — License key in format XXXXX-XXXXX-XXXXX-XXXXX-XXXXX.
    - `status` 'active' | 'suspended', required — Current license status.
  - `signature` string, required — Cryptographic signature of the license data for client-side verification.

## Other responses

- `403` — Machine not activated, license suspended, or license expired.
- `404` — License key not found.
- `422` — Validation error.
- `429` — Too many requests.

---

[API](https://skmtc.dev/tablepro/apis/tablepro-license-api.md) · [All operations](https://skmtc.dev/tablepro/apis/tablepro-license-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tablepro/tablepro-license-api/revisions/779db85458cf/schema)
