Publish to marketplace
# Publish to marketplace
HUMΛN Marketplace is review-first. You submit manifests; intake automation and human reviewers approve; only then can orgs install. There is no silent direct-to-production publish.
Overview
Two submit surfaces serve different callers:
| Surface | Path | Typical caller |
|---|---|---|
| Command Plane | POST /v1/control-plane/marketplace/submit | Console, SDK controlPlane.marketplace.submit |
| Public marketplace API | POST /v1/marketplace/submit | CLI / automated agent submit with full review report |
review_status: 'pending' and emit marketplace.asset.submitted for intake agents.Implementation: apps/api/src/routes/control-plane/cp-marketplace.ts, apps/api/src/routes/marketplace/submit.ts, apps/api/src/services/marketplace-service.ts.
Submit an agent or bundle (Control Plane)
Required body fields: name, asset_type, manifest_json.
Supported asset_type values include agent, bundle, extension, capability_pack, applescript_catalog_entry (each validated separately in cp-marketplace.ts).
Agent submit with automated review
POST /v1/marketplace/submit runs the 13-check automated review before accepting:
const res = await fetch(${process.env.HUMAN_API_URL}/v1/marketplace/submit, {
method: 'POST',
headers: {
Authorization: Bearer ${process.env.HUMAN_DELEGATION_TOKEN},
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Support Triage Agent',
manifest: {
/* InstallManifest — validated by InstallManifestSchema */
},
trust_tier: 'community',
}),
});// 202 Accepted when automated review passes; 422 with report when it fails
console.log(res.status, await res.json());
Service: apps/api/src/services/marketplace/app-review-agent.ts.
After submit
GET /v1/control-plane/marketplace.marketplace.asset.submitted triggers Canon compliance review (apps/api/src/agents/cp/marketplace-intake.ts).review_status === 'approved' (see Install marketplace bundle).Extensions and bundles also receive metadata.platform_extension_vetting classification at submit time.
Use cases
applescript_catalog_entry with JXA template + params schema.kb/132 §8).Security considerations
DO
Submit complete InstallManifest with provenance source URLs
Expect 422 review reports — fix manifest before resubmitting
DON'T
Assume submit equals installable — check review_status
Embed secrets in manifest_json — use vault references
See also
Same route in the other SDKs
The TypeScript tab above is the contract. These calls hit that same route.