Base URL
POST /validate
Checks a key and claims (or refreshes) this server’s license slot. Call on boot and periodically as a heartbeat.
The response is always HTTP
200 — the verdict is in the body:
Non-
valid responses include a human-readable message.
Verifying the signature
When signing is enabled,signature is a base64url Ed25519 signature over this pipe-delimited canonical string, which you rebuild from values you already know plus the returned status / issuedAt:
GET /public-key. Embed that public key in your plugin rather than fetching it at runtime from the same host you’re distrusting — otherwise a rerouted API could serve both a fake “valid” and a matching fake key.
POST /release
Frees this server’s seat on graceful shutdown, so the buyer can move hosts instantly instead of waiting for the seat to go stale.{ "ok": true } when a seat was released.
GET /public-key
Returns the Ed25519 public key as SPKI PEM (text/plain). 404 when response signing is not enabled on the server.
GET /health
Reachability check plus integration hints:heartbeatMs is the recommended re-validation interval; a seat that hasn’t validated for staleAfterMs is considered stale and can be claimed by another server.