Claude Platform Docs

플러그인 마켓플레이스 리포지토리 검증

$client->beta->organization->pluginMarketplaces->validateRepository(string repositoryURL, ?string ref, ?list<AnthropicBeta> betas): PluginMarketplaceValidationReport
POST/v1/organizations/plugin_marketplaces/validate_repository
Requires anthropic-beta: ce-plugins-2026-09-01. How to send beta headers

공개 GitHub 리포지토리에 있는 플러그인 마켓플레이스가 claude.ai로 동기화될 수 있는지 연결하거나 저장하지 않고 확인합니다.

대신 마켓플레이스 디렉터리의 .zip을 확인하려면 플러그인 마켓플레이스 아카이브 검증을 사용하세요.

보고서는 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
repositoryURL: string

The https:// URL of a public repository on github.com that holds the marketplace. A URL longer than 2,048 characters, on any other host or scheme, with a port other than 443 or 80, with credentials in it, or that does not name exactly owner/repo (a trailing .git or / is accepted) is a 400. A private or missing repository is reported in the response, not refused.

ref?: optional string

The branch to validate the tip of, or the full 40-character SHA of the commit to validate. When omitted, the branch a synchronization would read (usually the repository's default branch); if that is not the default branch, the report's ref says which branch was read. An empty string, a value longer than 255 characters, or one that contains .. or a character other than ASCII letters, digits, ., _, -, +, and /, is a 400. Any other value that is not a 40-character SHA is read as a branch name; if the repository has no such branch, the response is a report with valid: false, not a 400.

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;

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

$betaPluginMarketplaceValidationReport = $client
  ->beta
  ->organization
  ->pluginMarketplaces
  ->validateRepository(
  repositoryURL: 'https://github.com/example-org/example-marketplace',
  ref: 'main',
  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
}