Claude Platform Docs

Plugins

Create Plugin
$client->beta->organization->plugins->create(list<string> files, ?string marketplaceID, ?string releaseNotes, ?list<AnthropicBeta> betas): Plugin
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->retrieve(string pluginID, ?string organizationID, ?list<AnthropicBeta> betas): Plugin
GET/v1/organizations/plugins/{plugin_id}

Retrieve a Plugin by ID.

Update Plugin
$client->beta->organization->plugins->update(string pluginID, string servedVersionID, ?list<AnthropicBeta> betas): Plugin
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(?\Datetime createdAtGt, ?\Datetime createdAtGte, ?\Datetime createdAtLt, ?\Datetime createdAtLte, ?int limit, ?string marketplaceID, ?string organizationID, ?OwnerType ownerType, ?string ownerUserID, ?string page, ?list<AnthropicBeta> betas): PageCursor<Plugin>
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(string pluginID, ?list<AnthropicBeta> betas): DeletedPlugin
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 DeletedPlugin { $type = 'plugin_deleted'; $id; }
"plugin_deleted" type

Always plugin_deleted.

string id

The deleted Plugin's ID.

class Plugin { $type = 'plugin'; $id; $components; /* 16 more */ }
class PluginAPIActor { $type = 'api_actor'; $apiKeyID; }
"api_actor" type

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

string apiKeyID

The key's ID.

class PluginComponent { $type; $description; $name; }
Type type

The kind of component.

?string description

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

string name

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 PluginContentScan { $assessment; $reason; $status; }
?Assessment assessment

The scan's verdict; set only when status is completed. A warn can mean a fail that was allowed in claude.ai.

?string reason

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 status

processing while a scan runs, completed when it ran to completion, errored when it could not run. Once a scan of the version has completed, content_scan describes the newest completed scan, even while a later scan runs. While the scan outcome cannot be read, status is errored instead.

class PluginOwnerOrganization { $type = 'organization'; }
"organization" type

The Plugin lives in a plugin marketplace the organization owns.

class PluginOwnerUser { $type = 'user'; $userID; }
"user" type

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

string userID

The member's User ID.

class PluginTargetOrganization { $type = 'organization'; }
"organization" type

Every member of the organization.

class PluginTargetOrganizationMember { $type = 'organization_member'; $userID; }
"organization_member" type

One member of the organization.

string userID

The member's User ID.

class PluginTargetRBACGroup { $type = 'rbac_group'; $rbacGroupID; }
"rbac_group" type

An RBAC Group.

string rbacGroupID

The RBAC Group's ID.

class PluginUserActor { $type = 'user_actor'; $emailAddress; $userID; }
"user_actor" type

A member of the organization.

?string emailAddress

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

string userID

The member's User ID.

PluginsVersions

Create Plugin Version
$client->beta->organization->plugins->versions->create(string pluginID, list<string> files, ?string releaseNotes, ?list<AnthropicBeta> betas): 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
$client->beta->organization->plugins->versions->list(string pluginID, ?int limit, ?string organizationID, ?string page, ?list<AnthropicBeta> betas): PageCursor<BetaPluginVersion>
GET/v1/organizations/plugins/{plugin_id}/versions

List a Plugin's versions, newest first.

Get Plugin Version
$client->beta->organization->plugins->versions->retrieve(string version, string pluginID, ?string organizationID, ?list<AnthropicBeta> betas): 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
$client->beta->organization->plugins->versions->download(string version, string pluginID, ?string organizationID, ?list<AnthropicBeta> betas): download
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(string pluginID, ?int limit, ?string organizationID, ?string page, ?TargetType targetType, ?list<AnthropicBeta> betas): PageCursor<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
$client->beta->organization->plugins->installationSettings->set(string target, string pluginID, InstallationPreference installationPreference, ?list<AnthropicBeta> betas): 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
$client->beta->organization->plugins->installationSettings->remove(string target, string pluginID, ?list<AnthropicBeta> betas): 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
$client->beta->organization->plugins->shares->list(string pluginID, ?int limit, ?string organizationID, ?string page, ?TargetType targetType, ?list<AnthropicBeta> betas): PageCursor<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.