Claude Platform Docs

プラグインマーケットプレイスアーカイブの検証

$client->beta->organization->pluginMarketplaces->validateArchive(FileParam | string archive, ?list<AnthropicBeta> betas): PluginMarketplaceValidationReport
POST/v1/organizations/plugin_marketplaces/validate_archive
Requires anthropic-beta: ce-plugins-2026-09-01. How to send beta headers

マーケットプレイスディレクトリの .zip としてアップロードされたプラグインマーケットプレイスがclaude.aiに同期されるかどうかを、接続や保存を行わずに確認します。

代わりに公開GitHubリポジトリを確認するには、プラグインマーケットプレイスリポジトリの検証を使用してください。

レポートには、marketplace.json が正しい形式かどうか、同期時にどのプラグインがスキップされるかとその理由、どのプラグインが一部のファイルを除いて部分的にのみ同期されるかが示されます。マーケットプレイスとして読み取れないアーカイブは、拒否されるのではなくレポートされます。レスポンスは valid: false のレポートになります。マーケットプレイス外のプラグインソースはGitHubから匿名で取得されるため、非公開のものは見つからない、またはGitHubへのサインインが必要とレポートされます。その他のホスト上のソースはここでは取得されず、マーケットプレイスが実際に同期されるときに確認される旨がレポートに記載されます。

Compliance APIのアクティビティフィードには何も記録されません。

具体例については、Plugins APIガイドのマーケットプレイスコンテンツの検証を参照してください。

受け入れられる認証情報: read:plugins または write:plugins スコープを持つAdmin APIキー。read:org_audit と read:compliance_org_data ではアクセスできません。

すべてのリクエストにベータヘッダー anthropic-beta: ce-plugins-2026-09-01 を含める必要があります。含まれていないリクエストは、エンドポイントが存在しない場合とまったく同じく 404 を返します。Plugins APIはベータ版であり、Claude Enterprise組織のみが利用できます。Claude Platform(Claude Console)組織、またはHIPAA対応が有効になっている組織では利用できません。

Parameters
archive: FileParam | string

A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413.

betas?: optional list<AnthropicBeta>⁠Header parameter

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

Returns
class PluginMarketplaceValidationReport { $type = 'plugin_marketplace_validation_report'; $commitSha; $manifestError; /* 6 more */ }
"plugin_marketplace_validation_report" type

Always plugin_marketplace_validation_report.

?string commitSha

The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null.

?string manifestError

Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise.

?string manifestErrorCode

A stable identifier for manifest_error; null when that is.

One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json.

One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json.

?string ref

For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive.

int totalPluginCount

How many plugins marketplace.json declares; 0 when it could not be read.

bool valid

True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false.

プラグインマーケットプレイスアーカイブの検証
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Anthropic\Client;
use Anthropic\Beta\AnthropicBeta;
use Anthropic\Core\FileParam;

$client = new Client(apiKey: 'my-anthropic-api-key');

$betaPluginMarketplaceValidationReport = $client
  ->beta
  ->organization
  ->pluginMarketplaces
  ->validateArchive(
  archive: FileParam::fromString('Example data', filename: uniqid('file-upload-', true)),
  betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24],
);

var_dump($betaPluginMarketplaceValidationReport);
Returns Examples
Response 200
{
  "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8",
  "manifest_error": "manifest_error",
  "manifest_error_code": "marketplace_sync_manifest_not_found",
  "plugin_errors": [
    {
      "error": "error",
      "error_code": "marketplace_sync_plugin_missing_manifest",
      "name": "name"
    }
  ],
  "plugin_warnings": [
    {
      "name": "name",
      "warnings": [
        {
          "error_code": "marketplace_sync_zipball_symlink_dangling",
          "message": "message"
        }
      ]
    }
  ],
  "ref": "main",
  "total_plugin_count": 0,
  "type": "plugin_marketplace_validation_report",
  "valid": false
}