Claude Platform Docs

Get Plugin

$ ant beta:organization:plugins retrieve
GET/v1/organizations/plugins/{plugin_id}

Retrieve a Plugin by ID.

Accepted credentials: an Admin API key with the read:plugins or read:org_audit scope, or a Compliance Access Key with the read:compliance_org_data scope.

Every request must include the beta header anthropic-beta: ce-plugins-2026-09-01. A request without it returns 404, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled.

Parameters
--plugin-id: string⁠Path parameter

ID of the Plugin (prefixed plugin_).

--organization-id: optional string⁠Query parameter

For a read:org_audit or read:compliance_org_data key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its org_-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404.

--beta: optional array of AnthropicBeta⁠Header parameter

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

Returns
beta_plugin: object{ type: "plugin", id, components, 16 more }
type: "plugin"

Always plugin.

id: string

The Plugin's ID.

components: array of BetaPluginComponent { type, description, name }

What the served version contains; null when not enumerated.

type: "agent" or "cli" or "command" or 3 more

The kind of component.

One of the following:
"agent"
"cli"
"command"
"hook"
"mcp_server"
"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.

content_scan: object{ assessment, reason, status }

The served version's content scan; null when it has not been scanned.

assessment: "fail" or "pass" or "unknown" or "warn"

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

One of the following:
"fail"
"pass"
"unknown"
"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: "completed" or "errored" or "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"
created_at: string

RFC 3339.

formatdate-time

Who created the Plugin; null when no creator is recorded.

One of the following:
beta_plugin_user_actor: object{ type: "user_actor", email_address, user_id }
type: "user_actor"

A member of the organization.

email_address: string

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

user_id: string

The member's User ID.

beta_plugin_api_actor: object{ type: "api_actor", api_key_id }
type: "api_actor"

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

api_key_id: string

The key's ID.

description: string

The served version's description.

display_name: string

The served version's display name.

latest_version_id: string

The newest version.

manifest_version: string

The version string the served version's manifest declares.

marketplace_id: string

The ID of the plugin marketplace the Plugin lives in.

name: string

Lowercase identifier, unique within its plugin marketplace. Fixed for an organization-owned Plugin's lifetime; a member-owned Plugin's changes when its owner renames it in claude.ai, while its id stays the same.

organization_installation_preference: "auto_install" or "available" or "not_available" or "required"

Organization-owned Plugin: the organization-wide installation setting every member gets unless an RBAC Group they belong to holds its own — the Plugin's own setting, or its plugin marketplace's default. Null for a member-owned Plugin, which has shares instead. One of required, auto_install, available, not_available; a value this API does not yet name is returned as stored.

One of the following:
"auto_install"
"available"
"not_available"
"required"
organization_installation_preference_inherited: boolean

Organization-owned Plugin: true while it has no organization-wide setting of its own and organization_installation_preference is its plugin marketplace's default. Null for a member-owned Plugin.

Who owns the Plugin: the organization, or the member whose personal plugin marketplace it lives in.

One of the following:
beta_plugin_owner_organization: object{ type: "organization" }
type: "organization"

The Plugin lives in a plugin marketplace the organization owns.

beta_plugin_owner_user: object{ type: "user", user_id }
type: "user"

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

user_id: string

The member's User ID.

reach: "contained" or "privileged" or "remote"

How far the served version reaches: remote when it declares an MCP server or a CLI, privileged when it declares a hook, monitor, language server or settings but nothing remote, contained otherwise; null when not classifiable.

One of the following:
"contained"
"privileged"
"remote"
served_version_id: string

The version claude.ai serves to members.

served_version_pinned: boolean

False while the served version follows each new version; true once it has been pinned to one.

updated_at: string

RFC 3339. Moves on a new version and on a served-version change; a change to the Plugin's installation settings or shares does not move it.

formatdate-time
Get Plugin
ant beta:organization:plugins retrieve \
  --api-key my-anthropic-api-key \
  --plugin-id plugin_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"
}