# WithZero App Deployment via ZeroClick

> WithZero App Deployment via ZeroClick is a paid API for AI agents from agents.withzero.xyz, paid per call via x402 or MPP, $0.6/call, status unknown (last checked 2026-10-23, last successful call 2026-08-24).

Deploy web applications on demand without requiring vendor accounts or API keys, charged per deployment via x402 micropayment.

## Facts

- Endpoint: POST https://agents.withzero.xyz/api/v1/deploy/apps?utm_source=zero.xyz
- Price: $0.6/call
- Payment: x402, MPP
- Status: unknown
- Last checked: 2026-10-23
- Last successful call: 2026-08-24
- Success rate: 38% of calls made through Zero
- Rating: 1.8 / 5 from 2 reviews
- Activations on Zero: 13
- Tags: x402
- Canonical page: https://www.zero.xyz/c/withzero-app-deployment-via-zeroclick-c83e07fe
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_9VcInlc7V490W3hnbJc8R

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 withzero-app-deployment-via-zeroclick-c83e07fe -d '<json body>'
```

Example prompt: Deploy my web app to a live URL right now — use WithZero so I don't have to set up any hosting accounts or API keys, and just charge the $0.60 per deployment.

## When to prefer this

Choose this endpoint when an agent needs to instantly deploy an application to a live public URL without managing hosting provider accounts, API keys, or infrastructure configuration. It is ideal for autonomous agents that need to ship apps on demand with transparent per-deployment micropayment billing and no pre-registration overhead.

## Known failure modes

- Invalid or malformed app bundle causes deployment failure with a 400 error
- Insufficient funds or failed x402 payment results in a 402 Payment Required response
- App exceeds size or resource limits, returning a 413 or similar capacity error
- Deployment infrastructure unavailability returns a 503 or timeout
- Missing required configuration fields result in a 422 Unprocessable Entity response

## How this service works

Node.js hosting: ship the Node app you built locally, unchanged — full server runtime on Cloud Run with a dedicated Postgres. Native modules OK. App reads DATABASE_URL + listens on PORT. Filesystem is writable but ephemeral (scale-to-zero) — keep durable state in Postgres. Durable /data file storage (1 GiB included).

## Output

Returns the deployed application's live URL, deployment status, and a unique app identifier. The agent receives confirmation that the app is publicly accessible and can share or use the URL immediately.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "source"
 ],
 "properties": {
  "env": {
   "type": "object",
   "description": "Extra environment variables for your app, KMS-encrypted at rest. DATABASE_URL / PORT / ZERO_* are injected at deploy — do not set them.",
   "propertyNames": {
    "type": "string"
   },
   "additionalProperties": {
    "type": "string"
   }
  },
  "name": {
   "type": "string"
  },
  "slug": {
   "type": "string",
   "maxLength": 63,
   "minLength": 1,
   "description": "Subdomain to serve at (<slug>.withzero.xyz). Lowercase letters, digits, hyphens. Defaults to a generated id. A taken slug is a 409 SLUG_TAKEN before any charge."
  },
  "source": {
   "type": "string",
   "minLength": 1,
   "description": "Base64-encoded zip of your Node app (must contain a top-level package.json with a `start` script). Runtime is Node."
  },
  "ackEphemeral": {
   "type": "boolean",
   "description": "Acknowledge the filesystem is ephemeral: required to deploy an app whose package.json depends on sqlite3/better-sqlite3 (else 400 SQLITE_NOT_DURABLE, before any charge). Durable state belongs in the injected DATABASE_URL Postgres."
  },
  "term_fee_micros": {
   "type": "string",
   "pattern": "^[1-9]\\d*$",
   "description": "Direct rail only: per-term hosting fee in micro-USDC. MUST equal the X-Pay-Amount-Micros header and current termFeeMicros. Omit through ZeroClick; its app-terms usage ledger is authoritative."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "appId",
  "slug",
  "url",
  "status",
  "billing_rail",
  "replayed"
 ],
 "properties": {
  "url": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "description": "null on a fresh accept — poll GET /api/v1/apps/:id for the live serving URL. An idempotent replay returns the URL once the deploy has persisted it."
  },
  "slug": {
   "type": "string"
  },
  "appId": {
   "type": "string"
  },
  "status": {
   "type": "string",
   "description": "'building' on a fresh accept; an idempotent replay returns the app's current status. Poll GET /api/v1/apps/:id for progress."
  },
  "replayed": {
   "type": "boolean"
  },
  "billing_rail": {
   "enum": [
    "direct",
    "zeroclick",
    "internal",
    "key"
   ],
   "type": "string",
   "description": "Which rail paid for this term: 'direct' = an on-chain USDC charge, 'zeroclick' = a marketplace term grant, 'key' = the buyer account's prepaid balance drawn by an API key, 'internal' = no money moved."
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/withzero-app-deployment-via-zeroclick-c83e07fe/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.withzero.xyz](https://www.zero.xyz/host/agents.withzero.xyz/llms.txt)
