Skip to main content
Publishing is two-phase so a human approval can sit between packaging and upload — the CLI enforces that pause; API consumers must honor it too.

POST /publish/prepare

Registers a draft from a client-built manifest and returns a presigned upload URL. No file content is sent here — only paths, sizes, and hashes.
org defaults to the device’s home org; membership in the target org is required. Validation on prepare:

POST /publish/:draftId/complete

After uploading the package to uploadUrl, complete the publish. The draft is bound to its creator.
The server never auto-publishes and never silently drops a finding — rejections carry the details, for a human to see.