# Commit Planned Deploy (cdn.withzero.xyz)

> Commit Planned Deploy (cdn.withzero.xyz) is a paid API for AI agents from cdn.withzero.xyz, paid per call via MPP, metered — billed by usage, status unknown (last checked 2026-10-11).

Makes a previously planned deploy go live once its files have been uploaded, optionally setting visibility, password, and SPA routing options.

## Facts

- Endpoint: POST https://cdn.withzero.xyz/api/v1/deploys/{id}/commit?utm_source=zero.xyz
- Price: metered — billed by usage
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Provider: cdn.withzero.xyz
- Website: https://cdn.withzero.xyz
- Canonical page: https://www.zero.xyz/c/cdn-withzero-xyz-commit-planned-deploy-cdn-withzero-xyz-847b464a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_JthWSwVEM_EYafiyPvFpB

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability cdn-withzero-xyz-commit-planned-deploy-cdn-withzero-xyz-847b464a -d '<json body>'
```

Example prompt: Go ahead and commit deploy abc123 to make it live — set visibility to 'public' and enable single-page app routing.

## When to prefer this

Use this endpoint after completing a planned (manifest-based) deploy upload to atomically switch the site to the new version. Prefer this over a direct upload commit when deploying large sites (up to 5,000 files / 500 MiB) via the manifest flow, or when you want to upload files in parallel before going live in a single atomic operation.

## Known failure modes

- Deploy ID not found — 404 if the deploy does not exist or belongs to a different wallet
- Files not yet fully uploaded — commit may fail or return incomplete state if upload is still in progress
- Invalid password length — password must be 8–256 characters or request is rejected
- Invalid visibility enum value — must be 'public', 'link', or 'password'
- Unauthorized — missing or invalid wallet credentials returns 401/403

## How this service works

Make a planned deploy live once its files are uploaded. Takes the same visibility / password / spa options as a kind:site upload.

## Output

Returns the committed deploy details including the wallet ID, list of all files with their public URLs and sizes, cache TTL in seconds, visibility setting, optional share URL (for link/password sites), SPA routing status, and any warnings about skipped redirect/header rules.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "properties": {
  "spa": {
   "type": "boolean",
   "description": "Single-page app routing. true: a missing extensionless path (e.g. /dashboard/settings) serves the site index.html with 200 so a client-side router handles it; missing assets (.js, .png…) still 404. false: misses serve the site 404.html, if it has one, with status 404. Omit to keep the current setting (new sites default to false)."
  },
  "password": {
   "type": "string",
   "maxLength": 256,
   "minLength": 8,
   "description": "Sets or changes the site password (implies visibility:\"password\"). 8–256 chars. Omit to keep the current one."
  },
  "visibility": {
   "enum": [
    "public",
    "link",
    "password"
   ],
   "type": "string",
   "description": "As for kind:site uploads: \"public\" (default for a new site), \"link\" or \"password\". Omit to keep the current visibility."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "walletId",
  "cacheTtlSeconds",
  "files"
 ],
 "properties": {
  "spa": {
   "type": "boolean",
   "description": "kind:site only — whether single-page-app routing is on after this upload."
  },
  "files": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "url",
     "path",
     "sizeBytes"
    ],
    "properties": {
     "url": {
      "type": "string",
      "description": "Public URL this file is served from."
     },
     "path": {
      "type": "string",
      "description": "Path within your wallet namespace (the part after <walletId>/)."
     },
     "sizeBytes": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991,
      "description": "Decoded file size in bytes."
     }
    },
    "additionalProperties": false
   },
   "description": "One entry per uploaded file. kind:file — a single entry. kind:site — one entry per file in the zip; the hosted site's entry point is /<walletId>/<slug>/, which serves <slug>/index.html."
  },
  "shareUrl": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "description": "kind:site with link or password visibility — the private URL to share. For a link site it is the whole credential; for a password site viewers also need the password."
  },
  "walletId": {
   "type": "string",
   "description": "Random per-wallet base62 id used as the folder in the URL path (the <walletId> in /<walletId>/<slug>/)."
  },
  "warnings": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "kind:site only — rules in _redirects / _headers that were skipped (unsupported syntax, a disallowed header). The deploy itself succeeded."
  },
  "visibility": {
   "enum": [
    "public",
    "link",
    "password"
   ],
   "type": "string",
   "description": "kind:site only — the site's visibility after this upload."
  },
  "cacheTtlSeconds": {
   "type": "integer",
   "maximum": 9007199254740991,
   "minimum": -9007199254740991,
   "description": "Resolved edge cache lifetime (Cache-Control max-age) applied to every uploaded object."
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/cdn-withzero-xyz-commit-planned-deploy-cdn-withzero-xyz-847b464a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from cdn.withzero.xyz](https://www.zero.xyz/host/cdn.withzero.xyz/llms.txt)
