# /systems/{id}/entitlements/{entitlement} - Update a grant's expiry or revocation **PUT /systems/{id}/entitlements/{entitlement}** Extend/reduce the expiry of a grant or toggle its revoked state. Scoped grants are addressed with the `scope` query parameter. Only the owner organization or a Super Admin can manage grants directly. ## Servers - Backend API server (port 8080): https://api.your-domain.com/api (Backend API server (port 8080)) - Collect API server (port 8081): https://collect.your-domain.com/api (Collect API server (port 8081)) ## Authentication methods - Bearer auth ## Parameters ### Path parameters - **id** (string) System ID - **entitlement** (string) Catalog id of the granted add-on ### Query parameters - **scope** (string) Application instance the grant is narrowed to (omit for system-wide grants) ### Body: application/json (object) - **valid_until** (string(date-time)) New expiry of the grant - **clear_valid_until** (boolean) True makes the grant perpetual (valid_until null). Wins over valid_until when both are set. - **revoked** (boolean) True revokes the grant, false restores it. Omitted = unchanged. ## Responses ### 200 Entitlement updated successfully #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object) One add-on grant for one system, optionally narrowed to a single application instance via `scope` (omitted = whole system). `active` is derived: not revoked and not expired (`valid_until` null = perpetual). Revocation is soft (sets `revoked_at`, the row is kept for audit). ### 400 Bad request - validation error #### Body: application/json (object) - **code** (integer) HTTP error code - **message** (string) Error message - **data** (object) ### 401 Unauthorized - invalid or missing token #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) ### 403 Forbidden - insufficient permissions #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) ### 404 System not found, or no grant for this (entitlement, scope) #### Body: application/json (object) - **code** (integer) HTTP error code - **message** (string) Error message - **data** (object) ### 500 Internal server error #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) [Powered by Bump.sh](https://bump.sh)