Create Plugin Version
Add a version to an organization-owned Plugin by uploading the new version's files; it becomes the version served to members unless the Plugin's served version has been pinned.
The upload is the same multipart/form-data as creating a Plugin: the version's
files (files, each part sent as files[]) and optional release_notes. The uploaded manifest's name
must equal the Plugin's name. Returns the stored version; read the Plugin back to
see which version it serves.
Only a Plugin in a manual marketplace takes uploads; a Plugin synchronized from
a repository gets its versions from the repository. When the Plugin is in the
organization's library marketplace, a version that adds a skill with the name of an
organization skill (a skill an administrator uploaded for the whole organization in
claude.ai) is refused with a 409: error_code skill_name_taken, with that name in
details.skill_name. A 503 with error_code
registration_pending means the version was stored but is not yet usable; a later
version create on the Plugin completes it.
For a worked example, see Create a version in the Plugins API guide.
Accepted credentials: an Admin API key with the write:plugins scope.
Every request must include the beta header anthropic-beta: ce-plugins-2026-09-01. A request without it returns 404, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled.
Path parameters
Headers
Body (form-data)
Returns
curl https://api.anthropic.com/v1/organizations/plugins/$PLUGIN_ID/versions \
-H 'Content-Type: multipart/form-data' \
-H 'anthropic-version: 2023-06-01' \
-H 'anthropic-beta: ce-plugins-2026-09-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY" \
-F 'files[]=@/path/to/file'{
"id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8",
"components": [
{
"description": "description",
"name": "review-pr",
"type": "skill"
}
],
"content_scan": {
"assessment": "warn",
"reason": "credential-exposure",
"status": "completed"
},
"created_at": "2026-03-14T09:26:53.589793Z",
"created_by": {
"email_address": "user@example.com",
"type": "user_actor",
"user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
},
"description": "Reviews pull requests against your team's conventions.",
"display_name": "Code Review Helper",
"manifest_version": "1.2.0",
"plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne",
"reach": "contained",
"release_notes": "Adds a review checklist for database migrations.",
"type": "plugin_version"
}Returns Examples
{
"id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8",
"components": [
{
"description": "description",
"name": "review-pr",
"type": "skill"
}
],
"content_scan": {
"assessment": "warn",
"reason": "credential-exposure",
"status": "completed"
},
"created_at": "2026-03-14T09:26:53.589793Z",
"created_by": {
"email_address": "user@example.com",
"type": "user_actor",
"user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
},
"description": "Reviews pull requests against your team's conventions.",
"display_name": "Code Review Helper",
"manifest_version": "1.2.0",
"plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne",
"reach": "contained",
"release_notes": "Adds a review checklist for database migrations.",
"type": "plugin_version"
}