Check
Use this page to read the current signed entitlement state without mutating validation timestamps.
Who This Is For
- developers who need a frequent entitlement read path
- teams separating read-only checks from durable validation activity
- AI agents implementing a lightweight runtime check loop
When To Use This
Use check when you want the current entitlement state but do not want the server to treat the call like a validating heartbeat.
If you need the normal recurring validation path, use Validation. If you are binding a device for the first time, use Activation.
How It Works
POST /api/v1/license/check:
- uses
Authorization: License <license-key> - accepts a runtime binding payload
- returns a signed runtime entitlement envelope
- does not mutate validation timestamps
This is the read-only sibling of validation. It is useful when your application wants a fresh signed entitlement answer without updating the backend’s validation activity timeline.
Example
bash
curl -X POST https://api.licensekit.dev/api/v1/license/check \
-H "Authorization: License $LICENSE_KEY" \
-H "Content-Type: application/json" \
-d '{
"fingerprint": "host-123",
"app_version": "1.4.0"
}'Typical response fields:
json
{
"data": {
"license_id": "lic_123",
"status": "active",
"device_id": "dev_123",
"features": []
},
"signature": {
"kid": "sig_123"
}
}Common Mistakes
- assuming
checkupdates the same validation activity asvalidate - using
checkto work around activation problems instead of fixing binding inputs - ignoring signature verification because the route feels “read only”