Claude Platform Docs

Crear versión de Plugin

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

Agrega una versión a un Plugin propiedad de la organización cargando los archivos de la nueva versión; se convierte en la versión que se sirve a los miembros, a menos que la versión servida del Plugin se haya fijado.

La carga es el mismo multipart/form-data que al crear un Plugin: los archivos de la versión (files, cada parte enviada como files[]) y release_notes opcional. El name del manifiesto cargado debe ser igual al name del Plugin. Devuelve la versión almacenada; vuelve a leer el Plugin para ver qué versión sirve.

Solo un Plugin de un marketplace manual acepta cargas; un Plugin sincronizado desde un repositorio obtiene sus versiones del repositorio. Cuando el Plugin está en el marketplace de biblioteca de la organización, una versión que agrega una skill con el nombre de una skill de la organización (una skill que un administrador cargó para toda la organización en claude.ai) se rechaza con un 409: error_code skill_name_taken, con ese nombre en details.skill_name. Un 503 con error_code registration_pending significa que la versión se almacenó, pero aún no se puede usar; una creación de versión posterior en el Plugin la completa.

Para ver un ejemplo práctico, consulta Crear una versión en la guía de la API de Plugins.

Credenciales aceptadas: una clave de API de administrador con el alcance write:plugins.

Cada solicitud debe incluir el encabezado beta anthropic-beta: ce-plugins-2026-09-01. Una solicitud sin él devuelve 404, exactamente como si el endpoint no existiera. La API de Plugins está en beta y solo está disponible para organizaciones de Claude Enterprise. No está disponible para organizaciones de Claude Platform (Claude Console) ni para organizaciones con la preparación para HIPAA habilitada.

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.

Crear versión de 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"
}