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.

Принимаемые учётные данные: ключ Admin API с областью read:plugins или write:plugins; области 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
}