Claude Platform Docs

Validar archivo de marketplace de plugins

$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

Comprueba si un marketplace de plugins, cargado como un .zip del directorio del marketplace, se sincronizaría en claude.ai, sin conectarlo ni almacenarlo.

Para comprobar en su lugar un repositorio público de GitHub, usa Validar repositorio de marketplace de plugins.

El informe indica si marketplace.json está bien formado, qué plugins omitiría una sincronización y por qué, y qué plugins se sincronizarían solo en parte, con algunos archivos excluidos. Un archivo que no se puede leer como marketplace se informa, no se rechaza: la respuesta es un informe con valid: false. Las fuentes de plugins fuera del marketplace se obtienen de forma anónima desde GitHub, por lo que una privada se informa como no encontrada o como que requiere iniciar sesión en GitHub; una fuente en cualquier otro host no se obtiene aquí, y el informe indica que se comprobará cuando el marketplace se sincronice realmente.

No se registra nada en el feed de actividad de la Compliance API.

Para ver un ejemplo práctico, consulta Validar el contenido del marketplace en la guía de la API de Plugins.

Credenciales aceptadas: una clave de API de administrador con el alcance read:plugins o write:plugins; read:org_audit y read:compliance_org_data no lo otorgan.

Cada solicitud debe incluir el encabezado beta anthropic-beta: ce-plugins-2026-09-01. Una solicitud sin él devuelve 404, exactamente como si el endpoint no existiera. La API de Plugins está en beta y solo está disponible para organizaciones de Claude Enterprise. No está disponible para organizaciones de Claude Platform (Claude Console) ni para organizaciones con la preparación para HIPAA habilitada.

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.

Validar archivo de marketplace de plugins
<?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
}