Preparing the Package
Before submitting to the marketplace, your package must meet completeness requirements for the manifest, README, and versioning. Packages that fail pre-submission checks are rejected immediately without entering the review queue.
Manifest Completeness
The manifest.json must include all required fields before submission. Use the pre-submission validation endpoint to check completeness without submitting.
| Field | Required for Community | Required for Certified | Notes |
|---|---|---|---|
manifestVersion | Yes | Yes | Must be "1.0" |
packageId | Yes | Yes | Globally unique, assigned by publisher |
name | Yes | Yes | Human-readable, max 100 chars |
version | Yes | Yes | Valid SemVer, not previously published |
packageType | Yes | Yes | One of the 5 package types |
description | Yes | Yes | Max 500 chars |
publisher | Yes | Yes | Must match your verified publisher slug |
platformVersion | Yes | Yes | Minimum platform version required |
license | No | Yes | SPDX identifier (e.g., MIT, Apache-2.0) |
changelog | No | Yes | Release notes for this version |
screenshots | No | Recommended | URLs to package screenshots |
README Requirements
All packages must include a README.md at the root of the ZIP. The export pipeline auto-generates a template README — you should replace the template content with actual documentation before submitting.
| README Section | Required for Community | Required for Certified |
|---|---|---|
# Package Name heading | Yes | Yes |
| Description paragraph | Yes | Yes |
## What's Included | No | Yes |
## Prerequisites | No | Yes |
## Installation Notes | No | Yes |
## Configuration | No | Yes (if configurable) |
## Changelog | No | Yes |
## Support | No | Yes |
Changelog Format
The changelog field in the manifest should follow Keep a Changelog format:
{
"changelog": "## [3.0.0] - 2026-05-25\n### Breaking Changes\n- ApprovalRules schema updated — existing customizations must be migrated\n\n### Added\n- Parallel approval paths\n- Deadline escalation support\n\n### Fixed\n- Thread assignment race condition under high concurrency"
}
Screenshots
Screenshots are displayed on the marketplace package detail page. Recommended specifications:
- Format: PNG or JPEG
- Dimensions: 1280×720 (16:9) recommended; minimum 800×450
- Maximum 8 screenshots per package
- Must be publicly accessible HTTPS URLs
- Do not include personal or sensitive data in screenshots
{
"screenshots": [
{
"url": "https://acmecorp.com/screenshots/onboarding-flow-1.png",
"caption": "Employee onboarding workflow — main flow view"
},
{
"url": "https://acmecorp.com/screenshots/onboarding-form-1.png",
"caption": "Employee intake form with department routing"
}
]
}
Pre-Submission Validation
Run this endpoint before submitting to catch issues early:
POST /api/marketplace/validate
Authorization: Bearer {publisherToken}
Content-Type: multipart/form-data
Fields:
package — the .installhub.zip file
// Response:
{
"valid": false,
"errors": [
{ "code": "MissingLicense", "message": "manifest.json missing required 'license' field for Certified submission" },
{ "code": "ReadmeTooShort", "message": "README.md is 42 characters — minimum for Certified is 500 characters" }
],
"warnings": [
{ "code": "NoScreenshots", "message": "No screenshots provided — screenshots improve marketplace discoverability" },
{ "code": "OldPlatformVersion", "message": "platformVersion '4.0.0' is two major versions behind current '4.2.0'" }
]
}