---
title: "Activate a license"
method: POST
path: "/v1/license/activate"
tags: ["License"]
---

# Activate a license

`POST /v1/license/activate`

Activates a license on a specific machine. If the machine is already activated, the activation record is updated with the latest app and OS version.

## Request body

- ActivateRequest
  - `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).
  - `machine_name` string, required — Human-readable machine name.
  - `app_version` string, required — Application version.
  - `os_version` string, required — Operating system version.

## Response `200`

License activated successfully. 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` — License suspended or expired.
- `404` — License key not found.
- `409` — Activation limit reached.
- `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)
