Claude Platform Docs

Plugin erstellen

client.Beta.Organization.Plugins.New(ctx, params) (*BetaPlugin, error)
POST/v1/organizations/plugins

Erstellt ein Plugin im Besitz der Organisation und seine erste Version, indem die Dateien der Version hochgeladen werden.

Der Upload erfolgt als multipart/form-data: die Dateien der Version (files, jeder Teil wird als files[] gesendet), optional mit marketplace_id und release_notes. Der name des Manifests wird zum name des Plugins, und display_name, description und manifest_version stammen ebenfalls aus dem Manifest.

name darf Kleinbuchstaben (aus beliebigen Alphabeten), Ziffern und Bindestriche enthalten, bis zu 64 Zeichen. Großbuchstaben, Leerzeichen, Unterstriche und andere Satzzeichen werden abgelehnt.

Der name muss innerhalb des Marketplace eindeutig sein: Ein bereits vergebener Name gibt einen 409 mit error_code plugin_name_taken zurück und, falls ein Plugin ihn belegt, die ID dieses Plugins in details.plugin_id. Ein Plugin, das in den Bibliotheks-Marketplace der Organisation aufgenommen werden soll, wird ebenfalls mit einem 409 abgelehnt, wenn einer seiner Skills den Namen eines Organisations-Skills trägt (ein Skill, den ein Administrator für die gesamte Organisation in claude.ai hochgeladen hat): error_code skill_name_taken, mit diesem Namen in details.skill_name; benenne den Skill um oder entferne den Organisations-Skill in claude.ai. Ein 503 mit error_code registration_pending bedeutet, dass das Plugin und seine Version gespeichert wurden (ihre IDs stehen in details), aber in claude.ai noch nicht nutzbar sind: Wiederhole die Erstellung nicht (der erneute Versuch würde plugin_name_taken zurückgeben); erstelle stattdessen eine Version für das gespeicherte Plugin, wodurch es vervollständigt wird.

Ein ausgearbeitetes Beispiel findest du unter Plugin erstellen im Plugins-API-Leitfaden.

Akzeptierte Anmeldedaten: ein Admin-API-Key mit dem Scope write:plugins.

Jede Anfrage muss den Beta-Header anthropic-beta: ce-plugins-2026-09-01 enthalten. Eine Anfrage ohne diesen Header gibt 404 zurück, genau so, als ob der Endpunkt nicht existieren würde. Die Plugins API befindet sich in der Beta und ist nur für Claude Enterprise-Organisationen verfügbar. Sie ist nicht für Claude Platform-Organisationen (Claude Console) oder für Organisationen mit aktivierter HIPAA-Readiness verfügbar.

Parameters
params BetaOrganizationPluginNewParams
Files []Reader

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.

MarketplaceID param.Opt[string] Optional

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.

ReleaseNotes param.Opt[string] Optional

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

maxLength5000
Betas []AnthropicBeta OptionalHeader parameter

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

const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"
const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"
const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"
const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"
const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"
const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"
const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"
const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"
const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"
const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"
const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"
const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"
const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"
const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"
const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"
const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"
const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"
const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"
const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"
const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"
const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"
const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"
const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"
const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"
const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"
const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"
const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"
const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"
const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"
const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"
const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"
const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"
const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"
const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"
const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"
const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"
const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"
const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"
const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"
const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"
const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"
const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"
const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"
const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"
const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"
const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"
const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"
const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"
const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"
const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"
const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"
Returns
type BetaPlugin struct { Type: "plugin"; ID; Components; /* 16 more */ }
Plugin erstellen
package main

import (
	"bytes"
	"context"
	"fmt"
	"io"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/option"
)

func main() {
	client := anthropic.NewClient(
		option.WithAPIKey("my-anthropic-api-key"),
	)
	betaPlugin, err := client.Beta.Organization.Plugins.New(context.TODO(), anthropic.BetaOrganizationPluginNewParams{
		Files: []io.Reader{io.Reader(bytes.NewBuffer([]byte("Example data")))},
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", betaPlugin.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"
}