---
updatedAt: 2026-06-15T13:51:20.000Z
agentTools:
  siteIndex: https://developer.jamf.com/llms.txt
  projectIndex: https://developer.jamf.com/jamf-pro/llms.txt
---

# Update a Volume Purchasing Subscription

Updates a Volume Purchasing Subscription

> 📋 **Required privilege:** Update Volume Purchasing Locations

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Jamf Pro API",
    "termsOfService": "https://www.jamf.com/developer-resources/api-license-agreement",
    "version": "11.32.0"
  },
  "servers": [
    {
      "url": "https://yourServer.jamfcloud.com/api"
    }
  ],
  "x-readme": {
    "samples-languages": [
      "curl",
      "swift",
      "ruby",
      "python"
    ],
    "explorer-enabled": false
  },
  "security": [
    {
      "Bearer": []
    },
    {
      "ApiClient": []
    },
    {
      "BasicAuth": [
        "/v1/auth/token"
      ]
    }
  ],
  "paths": {
    "/v1/volume-purchasing-subscriptions/{id}": {
      "put": {
        "tags": [
          "volume-purchasing-subscriptions"
        ],
        "summary": "Update a Volume Purchasing Subscription",
        "description": "Updates a Volume Purchasing Subscription\n\n> 📋 **Required privilege:** Update Volume Purchasing Locations",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Volume Purchasing Subscription identifier",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Volume Purchasing Subscription to update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumePurchasingSubscriptionBase"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumePurchasingSubscription"
                }
              }
            }
          },
          "404": {
            "description": "Volume Purchasing Subscription with that id does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Failed to update volume purchasing subscription",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-required-privileges": [
          "Update Volume Purchasing Locations"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ApiError": {
        "type": "object",
        "properties": {
          "httpStatus": {
            "type": "integer",
            "description": "HTTP status of the response",
            "example": 400
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiErrorCause"
            }
          }
        }
      },
      "ApiErrorCause": {
        "required": [
          "field"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error-specific code that can be used to identify localization string, etc.",
            "example": "8675309"
          },
          "field": {
            "type": "string",
            "description": "Name of the field that caused the error.",
            "example": "Name"
          },
          "description": {
            "type": "string",
            "description": "A general description of error for troubleshooting/debugging. Generally this text should not be displayed to a user; instead refer to errorCode and it's localized text",
            "example": "I've just picked up a fault in the AE35 unit. It's going to go 100% failure in 72 hours"
          },
          "id": {
            "type": "string",
            "description": "id of object with error. Optional.",
            "nullable": true,
            "example": "3"
          }
        }
      },
      "ExternalRecipient": {
        "required": [
          "email",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "example": "Bob Exampleman"
          },
          "email": {
            "minLength": 1,
            "type": "string",
            "example": "bob@example.com"
          }
        }
      },
      "InternalRecipient": {
        "required": [
          "accountId"
        ],
        "type": "object",
        "properties": {
          "accountId": {
            "pattern": "^\\d+$",
            "type": "string",
            "example": "1"
          },
          "frequency": {
            "type": "string",
            "example": "DAILY",
            "enum": [
              "DAILY"
            ],
            "default": "DAILY"
          }
        }
      },
      "VolumePurchasingSubscription": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VolumePurchasingSubscriptionBase"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "readOnly": true,
                "example": "1"
              }
            }
          }
        ]
      },
      "VolumePurchasingSubscriptionBase": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "example": "Example"
          },
          "enabled": {
            "type": "boolean",
            "example": true,
            "default": true
          },
          "triggers": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "NO_MORE_LICENSES",
              "enum": [
                "NO_MORE_LICENSES",
                "REMOVED_FROM_APP_STORE"
              ]
            }
          },
          "locationIds": {
            "type": "array",
            "items": {
              "pattern": "^\\d+$",
              "type": "string",
              "example": "1"
            }
          },
          "internalRecipients": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InternalRecipient"
            }
          },
          "externalRecipients": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalRecipient"
            }
          },
          "siteId": {
            "type": "string",
            "example": "1",
            "default": "-1"
          }
        }
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "BasicAuth": {
        "type": "http",
        "description": "Basic auth is used only for obtaining bearer tokens from the /v1/auth/token endpoint",
        "scheme": "basic"
      },
      "ApiClient": {
        "type": "oauth2",
        "description": "Jamf Pro API Roles and Clients provide a client ID and secret for obtaining access tokens using the OAuth2 client_credentials grant type",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "/api/v1/oauth/token",
            "scopes": {}
          }
        }
      }
    }
  }
}
```