What the tenant's plan currently allows
const url = 'https://api.flotera.com/api/v1/entitlements';const options = { method: 'GET', headers: {cookie: '__Host-erm_session=<__Host-erm_session>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.flotera.com/api/v1/entitlements \ --cookie __Host-erm_session=<__Host-erm_session>Resolved capability snapshot: plan matrix plus auditable tenant overrides, deny by default for unknown keys (13 §3.3).
The matrix does not shrink while an account is frozen: a frozen
tenant still sees the capabilities it pays for, and account_state
explains that they are suspended. Telling the user “your plan does not
include X” when the plan does include it would be a lie.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Entitlement snapshot.
object
Why a capability the plan grants may still be refused right now. The capability list itself is unaffected by the lifecycle.
object
Entitlement key from 13 §3.3, e.g. fleet.servers.max.
True when an integer limit is explicitly unbounded.
Catalog or override rows that could not be read. Each one denies its own key and nothing else — one broken row must not take the wallet down. Non-empty is an operator alert, not a client error.
object
Monotonic resource version used for ETag/If-Match.
RFC 3339 UTC with microsecond precision.
Example
{ "account_state": "active", "resolved_at": "2026-07-25T10:15:30.123456Z"}Missing/invalid credentials (code=unauthorized).
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}Authenticated but not permitted. code=forbidden — role/scope mismatch; code=feature_not_entitled — the plan does not include the capability; code=account_frozen — the account is frozen and this operation is declared x-ermeon-frozen: deny. The three are deliberately distinct: only the last one is fixed by a top-up (13 §5.6).
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}A dependency the endpoint needs is not configured or is temporarily unavailable (code=unavailable). The rest of the API keeps working — an absent external integration must not take the service down.
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}