---
title: "Update an existing subscription"
method: PUT
path: "/api/v1/update-subscription/{name}"
tags: ["subscriptions"]
---

# Update an existing subscription

`PUT /api/v1/update-subscription/{name}`

Updates an existing MaaSSubscription and its associated MaaSAuthPolicy.
K8s calls: PUT /k8s/v1/maassubscription/:name, PUT /k8s/v1/maasauthpolicy/:name

## Path parameters

- `name` string, required

## Request body

- UpdateSubscriptionRequest — Request body for updating an existing subscription (MaaSSubscription only; auth policy is not managed during update)
  - `displayName` string — Updated display name for the subscription
  - `description` string — Updated description for the subscription
  - `owner` OwnerSpec, required — Defines who owns a subscription
    - `groups` GroupReference[] — Kubernetes group names that own this subscription
      - `name` string, required — Name of the Kubernetes group
  - `modelRefs` ModelSubscriptionRef[], required — Updated models for this subscription
    - `name` string, required — Name of the MaaSModelRef
    - `namespace` string, required — Namespace where the MaaSModelRef lives
    - `tokenRateLimits` TokenRateLimit[] — Token-based rate limits for this model
      - `limit` integer, required — Maximum number of tokens allowed
      - `window` string, required — Time window (e.g., "1m", "1h", "24h")
    - `billingRate` BillingRate — Billing information for a model
      - `perToken` string, required — Cost per token
  - `tokenMetadata` TokenMetadata — Metadata for token usage attribution and metering
    - `organizationId` string — Organization identifier for metering and billing
    - `costCenter` string — Cost center for usage attribution
    - `labels` object — Additional labels for tracking and metrics
  - `priority` integer — Updated subscription priority

## Response `200`

Subscription and auth policy updated successfully

- CreateSubscriptionResponse — Response after creating or updating a subscription. authPolicy is only present when createAuthPolicy was true on creation.
  - `subscription` MaaSSubscription, required — BFF representation of a MaaSSubscription Kubernetes custom resource
    - `name` string, required — Name of the MaaSSubscription resource (metadata.name)
    - `displayName` string — Display name for the subscription (from openshift.io/display-name annotation)
    - `description` string — Description of the subscription (from openshift.io/description annotation)
    - `namespace` string, required — Namespace of the MaaSSubscription resource
    - `phase` 'Pending' | 'Active' | 'Failed' — Current phase of the subscription (from status)
    - `statusMessage` string — Human-readable status message from the Ready condition in status.conditions
    - `reason` string — Reason from the Ready condition in status.conditions
    - `status` string — Status from the Ready condition in status.conditions (e.g. True, False, Unknown)
    - `conditionType` string — Condition type from the Ready condition in status.conditions
    - `lastTransitionTime` string, date-time — lastTransitionTime from the Ready condition in status.conditions
    - `priority` integer — Subscription priority (higher = higher priority)
    - `owner` OwnerSpec, required — Defines who owns a subscription
      - `groups` GroupReference[] — Kubernetes group names that own this subscription
        - `name` string, required — Name of the Kubernetes group
    - `modelRefs` ModelSubscriptionRef[], required — Models included in this subscription with per-model rate limits
      - `name` string, required — Name of the MaaSModelRef
      - `namespace` string, required — Namespace where the MaaSModelRef lives
      - `tokenRateLimits` TokenRateLimit[] — Token-based rate limits for this model
        - `limit` integer, required — Maximum number of tokens allowed
        - `window` string, required — Time window (e.g., "1m", "1h", "24h")
      - `billingRate` BillingRate — Billing information for a model
        - `perToken` string, required — Cost per token
    - `tokenMetadata` TokenMetadata — Metadata for token usage attribution and metering
      - `organizationId` string — Organization identifier for metering and billing
      - `costCenter` string — Cost center for usage attribution
      - `labels` object — Additional labels for tracking and metrics
    - `creationTimestamp` string, date-time — When the resource was created
    - `deletionTimestamp` string, date-time — When set, the subscription is marked for deletion (Kubernetes metadata.deletionTimestamp)
  - `authPolicy` MaaSAuthPolicy — BFF representation of a MaaSAuthPolicy Kubernetes custom resource
    - `name` string, required — Name of the MaaSAuthPolicy resource
    - `namespace` string, required — Namespace of the MaaSAuthPolicy resource
    - `displayName` string — Human-readable display name for the policy
    - `description` string — Description of the policy
    - `phase` 'Pending' | 'Active' | 'Failed' — Current phase of the auth policy (from status)
    - `statusMessage` string — Human-readable status message from the Ready condition in status.conditions
    - `reason` string — Reason from the Ready condition in status.conditions
    - `status` string — Status from the Ready condition in status.conditions (e.g. True, False, Unknown)
    - `conditionType` string — Condition type from the Ready condition in status.conditions
    - `lastTransitionTime` string, date-time — lastTransitionTime from the Ready condition in status.conditions
    - `creationTimestamp` string, date-time — Timestamp when the policy was created
    - `modelRefs` ModelRef[], required — Models this policy grants access to
      - `name` string, required — Name of the MaaSModelRef
      - `namespace` string, required — Namespace where the MaaSModelRef lives
    - `subjects` SubjectSpec, required — Defines subjects (groups) that have access
      - `groups` GroupReference[] — Kubernetes group names
        - `name` string, required — Name of the Kubernetes group
    - `meteringMetadata` TokenMetadata — Metadata for token usage attribution and metering
      - `organizationId` string — Organization identifier for metering and billing
      - `costCenter` string — Cost center for usage attribution
      - `labels` object — Additional labels for tracking and metrics
    - `deletionTimestamp` string, date-time — When set, the policy is marked for deletion (Kubernetes metadata.deletionTimestamp)

## Other responses

- `400` — Bad Request. Invalid update specification.
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Subscription not found
- `500` — Internal Server Error

---

[API](https://skmtc.net/opendatahub-io/apis/maas-bff-api.md) · [All operations](https://skmtc.net/opendatahub-io/apis/maas-bff-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/opendatahub-io/maas-bff-api/versions/9112415ceeca/schema)
