Claude Platform Docs

Plugins

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

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

Get Plugin
beta.organization.plugins.retrieve(plugin_id, **kwargs) -> BetaPlugin
GET/v1/organizations/plugins/{plugin_id}

Retrieve a Plugin by ID.

Update Plugin
beta.organization.plugins.update(plugin_id, **kwargs) -> BetaPlugin
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
beta.organization.plugins.list(**kwargs) -> SyncPageCursor[BetaPlugin]
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
beta.organization.plugins.delete(plugin_id, **kwargs) -> BetaDeletedPlugin
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
class BetaDeletedPlugin: type: "plugin_deleted"; id
type: Literal["plugin_deleted"]

Always plugin_deleted.

defaultplugin_deleted
id: str

The deleted Plugin's ID.

class BetaPlugin: type: "plugin"; id; components; ... # 16 more
class BetaPluginAPIActor: type: "api_actor"; api_key_id
type: Literal["api_actor"]

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

defaultapi_actor
api_key_id: str

The key's ID.

class BetaPluginComponent: type; description; name
type: Literal["agent", "cli", "command", 3 more]

The kind of component.

One of the following:
"agent"
"cli"
"command"
"hook"
"mcp_server"
"skill"
description: Optional[str]

What the component declares about itself; always null for MCP servers, hooks, and CLIs.

name: str

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.

class BetaPluginContentScan: assessment; reason; status
assessment: Optional[Literal["fail", "pass", "unknown", "warn"]]

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

One of the following:
"fail"
"pass"
"unknown"
"warn"
reason: Optional[str]

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: Literal["completed", "errored", "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"
class BetaPluginOwnerOrganization: type: "organization"
type: Literal["organization"]

The Plugin lives in a plugin marketplace the organization owns.

defaultorganization
class BetaPluginOwnerUser: type: "user"; user_id
type: Literal["user"]

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

defaultuser
user_id: str

The member's User ID.

class BetaPluginTargetOrganization: type: "organization"
type: Literal["organization"]

Every member of the organization.

defaultorganization
class BetaPluginTargetOrganizationMember: type: "organization_member"; user_id
type: Literal["organization_member"]

One member of the organization.

defaultorganization_member
user_id: str

The member's User ID.

class BetaPluginTargetRBACGroup: type: "rbac_group"; rbac_group_id
type: Literal["rbac_group"]

An RBAC Group.

defaultrbac_group
rbac_group_id: str

The RBAC Group's ID.

class BetaPluginUserActor: type: "user_actor"; email_address; user_id
type: Literal["user_actor"]

A member of the organization.

defaultuser_actor
email_address: Optional[str]

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

user_id: str

The member's User ID.

PluginsVersions

Create Plugin Version
beta.organization.plugins.versions.create(plugin_id, **kwargs) -> BetaPluginVersion
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
beta.organization.plugins.versions.list(plugin_id, **kwargs) -> SyncPageCursor[BetaPluginVersion]
GET/v1/organizations/plugins/{plugin_id}/versions

List a Plugin's versions, newest first.

Get Plugin Version
beta.organization.plugins.versions.retrieve(version, **kwargs) -> BetaPluginVersion
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
beta.organization.plugins.versions.download(version, **kwargs) -> BinaryResponseContent
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
beta.organization.plugins.installation_settings.list(plugin_id, **kwargs) -> SyncPageCursor[BetaPluginInstallationSetting]
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
beta.organization.plugins.installation_settings.set(target, **kwargs) -> BetaPluginInstallationSetting
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
beta.organization.plugins.installation_settings.remove(target, **kwargs) -> BetaDeletedPluginInstallationSetting
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
beta.organization.plugins.shares.list(plugin_id, **kwargs) -> SyncPageCursor[BetaPluginShare]
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.