Claude Platform Docs

Plugins

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

Create an organization-owned Plugin and its first version by uploading the version's files.

Get Plugin
client.Beta.Organization.Plugins.Get(ctx, pluginID, params) (*BetaPlugin, error)
GET/v1/organizations/plugins/{plugin_id}

Retrieve a Plugin by ID.

Update Plugin
client.Beta.Organization.Plugins.Update(ctx, pluginID, params) (*BetaPlugin, error)
POST/v1/organizations/plugins/{plugin_id}

Change which stored version of an organization-owned Plugin is served to members, for example to roll back to an earlier one. This pins the served version: later uploads are stored but no longer change what is served, and pinning cannot currently be undone, here or in claude.ai.

List Plugins
client.Beta.Organization.Plugins.List(ctx, params) (*PageCursor[BetaPlugin], error)
GET/v1/organizations/plugins

List the Plugins created under the organization, newest first: those in the organization's own plugin marketplaces and those in members' personal plugin marketplaces.

Delete Plugin
client.Beta.Organization.Plugins.Delete(ctx, pluginID, body) (*BetaDeletedPlugin, error)
DELETE/v1/organizations/plugins/{plugin_id}

Permanently delete a Plugin and every version it holds, exactly as when an administrator deletes it in claude.ai. The Plugin may belong to the organization or to a member, including a member who has since left the organization.

Models
type BetaDeletedPlugin struct { Type: "plugin_deleted"; ID }
Type PluginDeleted

Always plugin_deleted.

defaultplugin_deleted
ID string

The deleted Plugin's ID.

type BetaPlugin struct { Type: "plugin"; ID; Components; /* 16 more */ }
type BetaPluginAPIActor struct { Type: "api_actor"; APIKeyID }
Type APIActor

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

defaultapi_actor
APIKeyID string

The key's ID.

type BetaPluginComponent struct { Type; Description; Name }
Type BetaPluginComponentType

The kind of component.

One of the following:
const BetaPluginComponentTypeAgent BetaPluginComponentType = "agent"
const BetaPluginComponentTypeCli BetaPluginComponentType = "cli"
const BetaPluginComponentTypeCommand BetaPluginComponentType = "command"
const BetaPluginComponentTypeHook BetaPluginComponentType = "hook"
const BetaPluginComponentTypeMCPServer BetaPluginComponentType = "mcp_server"
const BetaPluginComponentTypeSkill BetaPluginComponentType = "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.

type BetaPluginContentScan struct { Assessment; Reason; Status }
Assessment BetaPluginContentScanAssessment

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

One of the following:
const BetaPluginContentScanAssessmentFail BetaPluginContentScanAssessment = "fail"
const BetaPluginContentScanAssessmentPass BetaPluginContentScanAssessment = "pass"
const BetaPluginContentScanAssessmentUnknown BetaPluginContentScanAssessment = "unknown"
const BetaPluginContentScanAssessmentWarn BetaPluginContentScanAssessment = "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 BetaPluginContentScanStatus

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:
const BetaPluginContentScanStatusCompleted BetaPluginContentScanStatus = "completed"
const BetaPluginContentScanStatusErrored BetaPluginContentScanStatus = "errored"
const BetaPluginContentScanStatusProcessing BetaPluginContentScanStatus = "processing"
type BetaPluginOwnerOrganization struct { Type: "organization" }
Type Organization

The Plugin lives in a plugin marketplace the organization owns.

defaultorganization
type BetaPluginOwnerUser struct { Type: "user"; UserID }
Type User

The Plugin lives in one member's personal plugin marketplace.

defaultuser
UserID string

The member's User ID.

type BetaPluginTargetOrganization struct { Type: "organization" }
Type Organization

Every member of the organization.

defaultorganization
type BetaPluginTargetOrganizationMember struct { Type: "organization_member"; UserID }
Type OrganizationMember

One member of the organization.

defaultorganization_member
UserID string

The member's User ID.

type BetaPluginTargetRBACGroup struct { Type: "rbac_group"; RBACGroupID }
Type RBACGroup

An RBAC Group.

defaultrbac_group
RBACGroupID string

The RBAC Group's ID.

type BetaPluginUserActor struct { Type: "user_actor"; EmailAddress; UserID }
Type UserActor

A member of the organization.

defaultuser_actor
EmailAddress string

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

UserID string

The member's User ID.

PluginsVersions

Create Plugin Version
client.Beta.Organization.Plugins.Versions.New(ctx, pluginID, params) (*BetaPluginVersion, error)
POST/v1/organizations/plugins/{plugin_id}/versions

Add a version to an organization-owned Plugin by uploading the new version's files; it becomes the version served to members unless the Plugin's served version has been pinned.

List Plugin Versions
client.Beta.Organization.Plugins.Versions.List(ctx, pluginID, params) (*PageCursor[BetaPluginVersion], error)
GET/v1/organizations/plugins/{plugin_id}/versions

List a Plugin's versions, newest first.

Get Plugin Version
client.Beta.Organization.Plugins.Versions.Get(ctx, version, params) (*BetaPluginVersion, error)
GET/v1/organizations/plugins/{plugin_id}/versions/{version}

Retrieve one version of a Plugin by its ID, or the Plugin's newest version.

Download Plugin Version Archive
client.Beta.Organization.Plugins.Versions.Download(ctx, version, params) (*Response, error)
GET/v1/organizations/plugins/{plugin_id}/versions/{version}/content

Download one version's .zip archive, exactly as stored. Each download of a Plugin from a member's personal plugin marketplace is recorded on the Compliance API activity feed.

List Plugin Installation Settings
client.Beta.Organization.Plugins.InstallationSettings.List(ctx, pluginID, params) (*PageCursor[BetaPluginInstallationSetting], error)
GET/v1/organizations/plugins/{plugin_id}/installation_settings

List an organization-owned Plugin's installation settings, which say which members it is for, most recently created first.

Set Plugin Installation Setting
client.Beta.Organization.Plugins.InstallationSettings.Set(ctx, target, params) (*BetaPluginInstallationSetting, error)
POST/v1/organizations/plugins/{plugin_id}/installation_settings/{target}

Set or change an organization-owned Plugin's installation setting for the whole organization or for one RBAC Group.

Remove Plugin Installation Setting
client.Beta.Organization.Plugins.InstallationSettings.Remove(ctx, target, params) (*BetaDeletedPluginInstallationSetting, error)
DELETE/v1/organizations/plugins/{plugin_id}/installation_settings/{target}

Remove an organization-owned Plugin's own installation setting for the whole organization or for one RBAC Group.

PluginsShares

List Plugin Shares
client.Beta.Organization.Plugins.Shares.List(ctx, pluginID, params) (*PageCursor[BetaPluginShare], error)
GET/v1/organizations/plugins/{plugin_id}/shares

List the shares the owner of a member-owned Plugin has given — to every member of the organization, to an RBAC Group, or to one member — most recently granted first.