Skip to content

Activate Device

Last updated: Phase 8.5

Create a new activation for a license on a specific device/instance.

Endpoint

POST /api/v1/integration/activations

Headers

HeaderRequiredValue
X-API-KeyYesYour API key
Content-TypeYesapplication/json

Request Body

json
{
  "license_key": "VX-ACME-abc123def456",
  "instance_id": "server-prod-01",
  "device_fingerprint": "sha256-hash-of-device-info",
  "metadata": {
    "os": "linux",
    "version": "2.1.0"
  }
}
FieldRequiredTypeDescription
license_keyYesstringThe license key
instance_idYesstringUnique instance identifier
device_fingerprintNostringDevice fingerprint hash (auto-generated from instance_id if omitted)
metadataNoobjectAdditional metadata

Response (201 Created)

json
{
  "data": {
    "activation": {
      "id": 1,
      "license_key_id": 42,
      "instance_id": "server-prod-01",
      "device_fingerprint": "sha256-hash...",
      "status": "active",
      "activated_at": "2026-03-30T10:00:00.000000Z",
      "created_at": "2026-03-30T10:00:00.000000Z"
    }
  },
  "meta": {
    "request_id": "uuid",
    "api_version": "1"
  }
}

Idempotency

If an active activation already exists for the same license_key + instance_id, the existing activation is returned (no duplicate created). This makes the endpoint safe to retry.

Activation Limits

If the license has an activations.max entitlement, the limit is enforced:

json
{
  "error": {
    "code": "ACTIVATION.LIMIT_EXCEEDED",
    "message": "The maximum number of activations has been reached.",
    "status": 403,
    "type": "activation",
    "details": { "current": 5, "limit": 5 }
  },
  "meta": { "request_id": "uuid", "api_version": "1" }
}

Error Responses

CodeHTTPDescription
LICENSE.NOT_FOUND404License key not found
LICENSE.REVOKED403License revoked
ACTIVATION.INVALID400License not active
ACTIVATION.LIMIT_EXCEEDED403Max activations reached
AUTH.INVALID_API_KEY401Invalid API key

Built by Veltara Works