Keyless
POST
/{tenantId}/{productId}/keyless Anonymous state beacon for devices running without an active license — trial, free tier, or expired. Uses the common headers & path parameters.
Request body
Section titled “Request body”| Field | Type | Required | Description |
|---|---|---|---|
instance_id | string | yes | A stable anonymous device id (≤128 chars) |
state | string | no | "trial", "free_tier", or "expired" (default "free_tier") |
app_version / sdk_version / platform | string | no | Telemetry — recorded per device and shown on the dashboard’s Free-tier devices table. sdk_version/platform are sent automatically by the SDKs; app_version is included only if you set it (e.g. the Rust SDK’s .app_version(…)). |
curl -X POST https://api.keylight.dev/acme/notes/keyless \ -H "Content-Type: application/json" \ -H "X-Keylight-SDK-Key: $KEYLIGHT_SDK_KEY" \ -d '{ "instance_id": "device-abc123", "state": "trial" }'await kl.reportKeylessState("trial");Response (200)
Section titled “Response (200)”{ "received": true }Errors
Section titled “Errors”Same as Free tier (400, 401, 404, 429).