Content-Type:
- Direct upload (
application/gzip): send a gzipped tarball of your project directory — no agent container involved. This is whatnaive apps deploydoes when run outside a container. - Workspace deploy (JSON body or empty): copies code from the company’s agent container workspace (orchestrated mode).
Direct Upload Mode
Send a gzipped tarball (Content-Type: application/gzip) of the project root. Limits and rules:
- Max 30 MB gzipped, max 200 MB decompressed, max 5,000 entries
node_modules,.next, and.gitare skipped server-side (exclude them client-side too for speed)- Absolute paths and
..traversal entries are rejected - Vercel detects the framework and builds; pre-built static sites (
index.html, nopackage.json) are served as-is
Workspace Deploy Mode (Orchestrated)
| Field | Type | Required | Description |
|---|---|---|---|
workspacePath | string | No | Override the container workspace to deploy from |
- Explicit
workspacePath—{workspacePath}/appis deployed. - Active task workspace — if a kanban task body references
naive apps deploy <appId>, that task’s workspace is used. - Engineer agent workspace —
{app.workspacePath}/app. If the workspace was never scaffolded, the starter template is applied automatically and the deploy retried once.
400 invalid_input with instructions to use direct upload instead — apps are not tied to orchestration.
After the Deploy
The build runs asynchronously on Vercel. PollGET /v1/apps/:id/deployments or use the Vercel proxy (GET v13/deployments/{vercelDeploymentId}, GET v3/deployments/{vercelDeploymentId}/events for build logs). Once READY, the deployment is automatically aliased to the production domain; use publish to promote a specific historical deployment.
Errors
400
400
501