Claude Platform Docs

Créer un plugin

beta.organization.plugins.create(**kwargs) -> BetaPlugin
POST/v1/organizations/plugins

Crée un plugin appartenant à l'organisation ainsi que sa première version en téléversant les fichiers de la version.

Le téléversement est au format multipart/form-data : les fichiers de la version (files, chaque partie étant envoyée sous la forme files[]), avec un marketplace_id et des release_notes facultatifs. Le name du manifeste devient le name du plugin, et display_name, description et manifest_version proviennent également du manifeste.

name peut contenir des lettres minuscules (de n'importe quel alphabet), des chiffres et des traits d'union, jusqu'à 64 caractères. Les lettres majuscules, les espaces, les traits de soulignement et les autres signes de ponctuation sont rejetés.

Le name doit être unique au sein de la marketplace : un nom déjà pris renvoie une erreur 409 avec l'error_code plugin_name_taken et, lorsqu'un plugin le détient, l'ID de ce plugin dans details.plugin_id. Un plugin destiné à la marketplace de la bibliothèque de l'organisation est également refusé avec une erreur 409 lorsque l'une de ses compétences porte le nom d'une compétence d'organisation (une compétence qu'un administrateur a téléversée pour toute l'organisation dans claude.ai) : error_code skill_name_taken, avec ce nom dans details.skill_name ; renommez la compétence, ou supprimez la compétence d'organisation dans claude.ai. Une erreur 503 avec l'error_code registration_pending signifie que le plugin et sa version ont été stockés (leurs ID figurent dans details) mais ne sont pas encore utilisables dans claude.ai : ne relancez pas la création (la nouvelle tentative renverrait plugin_name_taken) ; créez plutôt une version sur le plugin stocké, ce qui le finalise.

Pour un exemple détaillé, consultez Créer un plugin dans le guide de l'API Plugins.

Identifiants acceptés : une clé Admin API avec la portée write:plugins.

Chaque requête doit inclure l'en-tête bêta anthropic-beta: ce-plugins-2026-09-01. Une requête sans cet en-tête renvoie 404, exactement comme si le point de terminaison n'existait pas. L'API Plugins est en bêta et est disponible uniquement pour les organisations Claude Enterprise. Elle n'est pas disponible pour les organisations Claude Platform (Claude Console), ni pour les organisations pour lesquelles la conformité HIPAA est activée.

Parameters
files: Sequence[FileTypes]

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.

marketplace_id: Optional[str]

ID of the organization-owned plugin marketplace to create the Plugin in (prefixed marketplace_). It must be a manual marketplace, one whose Plugins are uploaded rather than synchronized from a repository. When omitted, the Plugin is created in the organization's library marketplace, an organization-owned manual marketplace created on first use.

release_notes: Optional[str]

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

maxLength5000
betas: Optional[List[AnthropicBetaParam]]⁠Header parameter

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

One of the following:
str
"message-batches-2024-09-24"
"prompt-caching-2024-07-31"
"computer-use-2024-10-22"
"computer-use-2025-01-24"
"pdfs-2024-09-25"
"token-counting-2024-11-01"
"token-efficient-tools-2025-02-19"
"output-128k-2025-02-19"
"files-api-2025-04-14"
"mcp-client-2025-04-04"
"mcp-client-2025-11-20"
"dev-full-thinking-2025-05-14"
"interleaved-thinking-2025-05-14"
"code-execution-2025-05-22"
"extended-cache-ttl-2025-04-11"
"context-1m-2025-08-07"
"context-management-2025-06-27"
"model-context-window-exceeded-2025-08-26"
"skills-2025-10-02"
"fast-mode-2026-02-01"
"output-300k-2026-03-24"
"user-profiles-2026-03-24"
"user-profiles-2026-08-18"
"user-profiles-2026-09-04"
"advisor-tool-2026-03-01"
"managed-agents-2026-04-01"
"cache-diagnosis-2026-04-07"
"dreaming-2026-04-21"
"thinking-token-count-2026-05-13"
"server-side-fallback-2026-06-01"
"server-side-fallback-2026-07-01"
"fallback-credit-2026-06-01"
"fallback-credit-2026-07-01"
"agent-memory-2026-07-22"
"mid-conversation-tool-changes-2026-07-01"
"compact-2026-01-12"
"computer-use-2025-11-24"
"mcp-tunnels-2026-06-22"
"structured-outputs-2025-11-13"
"task-budgets-2026-03-13"
"thinking-display-updates-2026-08-18"
"ce-user-management-2026-07-13"
"mid-conversation-output-config-2026-07-01"
"thinking-binding-controls-2026-08-01"
"mid-conversation-system-clear-at-2026-08-21"
"compact-2026-09-04"
"inline-tools-2026-09-15"
"mcp-client-2026-09-15"
"ce-plugins-2026-09-01"
"spend-limit-reads-2026-09-26"
Returns
class BetaPlugin: type: "plugin"; id; components; ... # 16 more
Créer un plugin
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)
Returns Examples
Response 200
{
  "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"
}