Skip to content

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.

FieldTypeRequiredDescription
instance_idstringyesA stable anonymous device id (≤128 chars)
statestringno"trial", "free_tier", or "expired" (default "free_tier")
app_version / sdk_version / platform / sdkstringnoTelemetry — recorded per device and shown on the dashboard’s Free-tier devices table. platform is the operating system (macos, windows, linux, ios, …), or the runtime (web, workers) where no OS applies; sdk is which SDK is reporting (swift, rust, js, csharp, cpp). sdk_version/platform/sdk are sent automatically by the SDKs; app_version is included only if you set it (e.g. the Rust SDK’s .app_version(…)).
Terminal window
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" }'
{ "received": true }

Same as Free tier (400, 401, 404, 429).