Claude Platform Docs

Plugins

Create Plugin
BetaPlugin beta().organization().plugins().create(params, requestOptions = RequestOptions.none())
POST/v1/organizations/plugins

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

Get Plugin
BetaPlugin beta().organization().plugins().retrieve(params = PluginRetrieveParams.none(), requestOptions = RequestOptions.none())
GET/v1/organizations/plugins/{plugin_id}

Retrieve a Plugin by ID.

Update Plugin
BetaPlugin beta().organization().plugins().update(params, requestOptions = RequestOptions.none())
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
PluginListPage beta().organization().plugins().list(params = PluginListParams.none(), requestOptions = RequestOptions.none())
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
BetaDeletedPlugin beta().organization().plugins().delete(params = PluginDeleteParams.none(), requestOptions = RequestOptions.none())
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; }
JsonValue type = "plugin_deleted"

Always plugin_deleted.

String id

The deleted Plugin's ID.

class BetaPlugin { type = "plugin"; id; components; /* 16 more */ }
class BetaPluginApiActor { type = "api_actor"; apiKeyId; }
JsonValue type = "api_actor"

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

String apiKeyId

The key's ID.

class BetaPluginComponent { type; description; name; }
Type type

The kind of component.

One of the following:
AGENT("agent")
CLI("cli")
COMMAND("command")
HOOK("hook")
MCP_SERVER("mcp_server")
SKILL("skill")
Optional<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 BetaPluginContentScan { assessment; reason; status; }
Optional<Assessment> assessment

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

One of the following:
FAIL("fail")
PASS("pass")
UNKNOWN("unknown")
WARN("warn")
Optional<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 or its outcome cannot be read.

One of the following:
COMPLETED("completed")
ERRORED("errored")
PROCESSING("processing")
class BetaPluginOwnerOrganization { type = "organization"; }
JsonValue type = "organization"

The Plugin lives in a plugin marketplace the organization owns.

class BetaPluginOwnerUser { type = "user"; userId; }
JsonValue type = "user"

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

String userId

The member's User ID.

class BetaPluginTargetOrganization { type = "organization"; }
JsonValue type = "organization"

Every member of the organization.

class BetaPluginTargetOrganizationMember { type = "organization_member"; userId; }
JsonValue type = "organization_member"

One member of the organization.

String userId

The member's User ID.

class BetaPluginTargetRbacGroup { type = "rbac_group"; rbacGroupId; }
JsonValue type = "rbac_group"

An RBAC Group.

String rbacGroupId

The RBAC Group's ID.

class BetaPluginUserActor { type = "user_actor"; emailAddress; userId; }
JsonValue type = "user_actor"

A member of the organization.

Optional<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
BetaPluginVersion beta().organization().plugins().versions().create(params, requestOptions = RequestOptions.none())
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
VersionListPage beta().organization().plugins().versions().list(params = VersionListParams.none(), requestOptions = RequestOptions.none())
GET/v1/organizations/plugins/{plugin_id}/versions

List a Plugin's versions, newest first.

Get Plugin Version
BetaPluginVersion beta().organization().plugins().versions().retrieve(params, requestOptions = RequestOptions.none())
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
HttpResponse beta().organization().plugins().versions().download(params, requestOptions = RequestOptions.none())
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
InstallationSettingListPage beta().organization().plugins().installationSettings().list(params = InstallationSettingListParams.none(), requestOptions = RequestOptions.none())
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
BetaPluginInstallationSetting beta().organization().plugins().installationSettings().set(params, requestOptions = RequestOptions.none())
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
BetaDeletedPluginInstallationSetting beta().organization().plugins().installationSettings().remove(params, requestOptions = RequestOptions.none())
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
ShareListPage beta().organization().plugins().shares().list(params = ShareListParams.none(), requestOptions = RequestOptions.none())
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.