Returns current license status. This endpoint is public to allow the frontend to check license status before authentication
GET /api/license
Auto-generated from server.go. Handler: s.GetLicenseStatus.
Responses
Section titled “ Responses ”Successful response
Current license status. Returned by GET /api/license.
Combines on-disk license bytes (immutable) with runtime state
(lease counts, warning flags) that the appliance computes locally.
Public, unauthenticated — frontend reads it before login to decide whether to gate UI features (ipv4/ipv6/automation/llm/strategic).
object
Combined “license + support both valid” gate.
True when a license file is installed (regardless of validity).
Issuer-assigned identifier on the license. Omitted when no license is installed.
License tier marketing name (e.g. Enterprise, Pro). Free-form string; not constrained server-side.
Cap on local user accounts. 0 means unbounded. Omitted when zero (omitempty).
Cap on active leases. 0 means unbounded. Omitted when zero.
ISO-8601 calendar date as a string (YYYY-MM-DD). Plain string, not format:date.
Locally observed unique-MAC count over lease_count_window days.
Sliding window in days used for active_lease_count.
True if active_lease_count > max_active_leases. Omitted when false.
ISO-8601 calendar date as a string (YYYY-MM-DD). Plain string, not format:date.
Days until the earlier of license_expires or support_expires. Omitted when zero.
Human-readable summary of the combined state.
One of permanent, trial. Free-form today; may tighten to enum.
One of any, bound. Free-form today.
Installation ID this license is bound to. Empty/omitted for unbound licenses.
Current installation ID (for display). Plain string, not format:uuid — the handler emits whatever the installation manager stores, including the empty string when not yet initialized.
How many days before expiry the appliance starts surfacing the warning banner.
Warning message for UI display. Omitted when empty.
Internal server error
Standardised error envelope per RFC 7807. Many existing endpoints still
return an older shape (e.g. {"error": "..."}). This schema documents the
target shape; legacy endpoints will be migrated in Phase 70. Per D-21 the
spec describes current behaviour without enforcing the migration here.
object
A URI reference that identifies the problem type.
A short human-readable summary of the problem.
The HTTP status code generated by the origin server.
A human-readable explanation specific to this occurrence.
A URI reference that identifies the specific occurrence.
Legacy error message field. Will be removed once handlers are migrated.
Legacy per-field error details. Will be removed once handlers are migrated.
object
The request id middleware-assigned identifier for tracing.