Claude Platform Docs

Validasi Arsip Marketplace Plugin

$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

Memeriksa apakah marketplace plugin, yang diunggah sebagai .zip dari direktori marketplace, akan tersinkronisasi ke claude.ai, tanpa menghubungkan atau menyimpannya.

Untuk memeriksa repositori GitHub publik sebagai gantinya, gunakan Validasi Repositori Marketplace Plugin.

Laporan menyebutkan apakah marketplace.json terbentuk dengan benar, plugin mana yang akan dilewati oleh sinkronisasi beserta alasannya, dan plugin mana yang hanya akan tersinkronisasi sebagian, dengan beberapa file tidak disertakan. Arsip yang tidak dapat dibaca sebagai marketplace dilaporkan, bukan ditolak: responsnya berupa laporan dengan valid: false. Sumber plugin di luar marketplace diambil secara anonim dari GitHub, sehingga sumber privat dilaporkan sebagai tidak ditemukan atau sebagai memerlukan login GitHub; sumber di host lain tidak diambil di sini, dan laporan mencatat bahwa sumber tersebut akan diperiksa saat marketplace benar-benar disinkronkan.

Tidak ada yang dicatat di feed aktivitas Compliance API.

Untuk contoh lengkap, lihat Memvalidasi konten marketplace di panduan Plugins API.

Kredensial yang diterima: kunci API Admin dengan scope read:plugins atau write:plugins; read:org_audit dan read:compliance_org_data tidak memberikan akses ini.

Setiap permintaan harus menyertakan header beta anthropic-beta: ce-plugins-2026-09-01. Permintaan tanpa header tersebut mengembalikan 404, persis seolah-olah endpoint tidak ada. Plugins API masih dalam tahap beta dan hanya tersedia untuk organisasi Claude Enterprise. API ini tidak tersedia untuk organisasi Claude Platform (Claude Console), atau untuk organisasi yang mengaktifkan kesiapan 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.

Validasi Arsip Marketplace Plugin
<?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
}