Claude Platform Docs

Crea versione del Plugin

$ ant beta:organization:plugins:versions create
POST/v1/organizations/plugins/{plugin_id}/versions

Aggiungi una versione a un Plugin di proprietà dell'organizzazione caricando i file della nuova versione; diventa la versione servita ai membri a meno che la versione servita del Plugin non sia stata fissata.

Il caricamento usa lo stesso multipart/form-data della creazione di un Plugin: i file della versione (files, con ogni parte inviata come files[]) e release_notes facoltativo. Il name del manifest caricato deve essere uguale al name del Plugin. Restituisce la versione archiviata; rileggi il Plugin per vedere quale versione serve.

Solo un Plugin in un marketplace manual accetta caricamenti; un Plugin sincronizzato da un repository ottiene le sue versioni dal repository. Quando il Plugin si trova nel marketplace della libreria dell'organizzazione, una versione che aggiunge una skill con il nome di una skill dell'organizzazione (una skill che un amministratore ha caricato per l'intera organizzazione in claude.ai) viene rifiutata con un 409: error_code skill_name_taken, con quel nome in details.skill_name. Un 503 con error_code registration_pending significa che la versione è stata archiviata ma non è ancora utilizzabile; una successiva creazione di versione sul Plugin la completa.

Per un esempio pratico, consulta Creare una versione nella guida alla Plugins API.

Credenziali accettate: una chiave API Admin con lo scope write:plugins.

Ogni richiesta deve includere l'header beta anthropic-beta: ce-plugins-2026-09-01. Una richiesta senza di esso restituisce 404, esattamente come se l'endpoint non esistesse. La Plugins API è in beta ed è disponibile solo per le organizzazioni Claude Enterprise. Non è disponibile per le organizzazioni Claude Platform (Claude Console), né per le organizzazioni con la predisposizione HIPAA abilitata.

Parameters
--plugin-id: string⁠Path parameter

ID of the Plugin (prefixed plugin_).

--file: array of string

The version's files: one part per file, the part's filename being the file's path within the Plugin (for example skills/review-pr/SKILL.md), or a single .zip or .plugin archive holding them all. On the wire each part is named files[], and a part named plain files is not read; with cURL, -F 'files[]=@SKILL.md;filename=skills/review-pr/SKILL.md'. The files must include the manifest, .claude-plugin/plugin.json.

--release-notes: optional string

Release notes stored with the version and shown in its version history in claude.ai; up to 5,000 characters.

maxLength5000
--beta: optional array of AnthropicBeta⁠Header parameter

This endpoint is in beta: requests must send ce-plugins-2026-09-01 in this header.

Returns
beta_plugin_version: object{ type: "plugin_version", id, components, 9 more }
type: "plugin_version"

Always plugin_version.

id: string

The version's ID.

components: array of BetaPluginComponent { type, description, name }

What the version contains; null when not enumerated.

type: "agent" or "cli" or "command" or 3 more

The kind of component.

One of the following:
"agent"
"cli"
"command"
"hook"
"mcp_server"
"skill"
description: string

What the component declares about itself; always null for MCP servers, hooks, and CLIs.

name: string

The component's name: a skill's, command's or agent's name, an MCP server's key in the manifest, the event a hook runs on, or a CLI's executable.

content_scan: object{ assessment, reason, status }

This version's content scan; null when it has not been scanned.

assessment: "fail" or "pass" or "unknown" or "warn"

The scan's verdict; set only when status is completed.

One of the following:
"fail"
"pass"
"unknown"
"warn"
reason: string

The primary mechanism behind a warn or fail, such as credential-exposure or guardrail-tampering; a mechanism this API does not yet name reads as other. Null on a pass, whenever assessment is null, and when no mechanism is reported for the verdict.

status: "completed" or "errored" or "processing"

processing while a scan runs, completed when it ran to completion, errored when it could not run or its outcome cannot be read.

One of the following:
"completed"
"errored"
"processing"
created_at: string

RFC 3339.

formatdate-time

Who uploaded this version; null when not recorded.

One of the following:
beta_plugin_user_actor: object{ type: "user_actor", email_address, user_id }
type: "user_actor"

A member of the organization.

email_address: string

The member's email address; may be null, for example when they are no longer a member of the organization.

user_id: string

The member's User ID.

beta_plugin_api_actor: object{ type: "api_actor", api_key_id }
type: "api_actor"

An Admin API key, in the same form the Compliance API activity feed uses for it.

api_key_id: string

The key's ID.

description: string

The manifest's description; null when it declares none.

display_name: string

The manifest's display name; null when it declares none.

manifest_version: string

The manifest's version, normalized for display: one leading v or V is dropped, and the result is returned only if it is 1 to 64 characters, starts with a digit, and uses only ASCII letters, digits, ., +, and -; otherwise null. For example, "v1.4.0" is returned as "1.4.0", and "latest" as null. For a synchronized plugin, the version of its marketplace.json entry can take the place of the manifest's version. It is also null for a version stored before claude.ai began recording this field (August 2026).

plugin_id: string

The Plugin's ID.

reach: "contained" or "privileged" or "remote"

How far the version reaches: remote, privileged, contained, or null, as defined on the Plugin's reach.

One of the following:
"contained"
"privileged"
"remote"
release_notes: string

As supplied with the upload; null when none were supplied.

Crea versione del Plugin
ant beta:organization:plugins:versions create \
  --api-key my-anthropic-api-key \
  --plugin-id plugin_id \
  --file 'Example data'
Returns Examples
Response 200
{
  "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"
}