通过上传版本文件,创建组织拥有的插件及其第一个版本。
上传采用 multipart/form-data 格式:包含该版本的文件(files,每个部分以 files[] 发送),以及可选的 marketplace_id 和 release_notes。清单中的 name 会成为插件的 name,display_name、description 和 manifest_version 也来自清单。
name 可以包含小写字母(任何字母表)、数字和连字符,最多 64 个字符。大写字母、空格、下划线和其他标点符号会被拒绝。
name 在市场内必须唯一:已被占用的名称会返回 409,error_code 为 plugin_name_taken,并且当该名称由某个插件持有时,会在 details.plugin_id 中返回该插件的 ID。如果要进入组织库市场的插件中有某个技能与组织技能(管理员在 claude.ai 中为整个组织上传的技能)同名,也会被拒绝并返回 409:error_code 为 skill_name_taken,该名称位于 details.skill_name 中;请重命名该技能,或在 claude.ai 中移除该组织技能。返回 503 且 error_code 为 registration_pending 表示插件及其版本已存储(其 ID 位于 details 中),但尚无法在 claude.ai 中使用:请勿重试创建操作(重试会返回 plugin_name_taken);而应在已存储的插件上创建一个版本,这样即可完成该插件。
有关完整示例,请参阅 Plugins API 指南中的创建插件。
**接受的凭据:**具有 write:plugins 范围的 Admin API 密钥。
每个请求都必须包含 beta 标头 anthropic-beta: ce-plugins-2026-09-01。不带该标头的请求会返回 404,就像该端点不存在一样。Plugins API 处于 beta 阶段,仅适用于 Claude Enterprise 组织。它不适用于 Claude Platform(Claude Console)组织,也不适用于启用了 HIPAA 就绪的组织。
Parameters
Returns
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ.get(
"ANTHROPIC_API_KEY"
), # This is the default and can be omitted
)
beta_plugin = client.beta.organization.plugins.create(
files=[b"Example data"],
)
print(beta_plugin.id){
"id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne",
"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",
"latest_version_id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8",
"manifest_version": "1.2.0",
"marketplace_id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7",
"name": "code-review-helper",
"organization_installation_preference": "available",
"organization_installation_preference_inherited": true,
"owner": {
"type": "organization"
},
"reach": "contained",
"served_version_id": "pluginver_01K9wPcHd4Rm2Tx8Vq6Ln3Sb",
"served_version_pinned": true,
"type": "plugin",
"updated_at": "2026-03-14T09:26:53.589793Z"
}Returns Examples
{
"id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne",
"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",
"latest_version_id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8",
"manifest_version": "1.2.0",
"marketplace_id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7",
"name": "code-review-helper",
"organization_installation_preference": "available",
"organization_installation_preference_inherited": true,
"owner": {
"type": "organization"
},
"reach": "contained",
"served_version_id": "pluginver_01K9wPcHd4Rm2Tx8Vq6Ln3Sb",
"served_version_pinned": true,
"type": "plugin",
"updated_at": "2026-03-14T09:26:53.589793Z"
}