# Zerohost Deploy – Mint Disposable HTTPS Backend

> Zerohost Deploy – Mint Disposable HTTPS Backend is a paid API for AI agents from zerohost.evmoore.workers.dev, paid per call via MPP, $0.194/call, status unknown (last checked 2026-10-24, last successful call 2026-07-06).

Upload a zip of code with a zerohost.json manifest to spin up a temporary, TTL-limited HTTPS server (Node, Bun, or Python) and receive a token-gated public URL.

## Facts

- Endpoint: POST https://zerohost.evmoore.workers.dev/v1/deploy?utm_source=zero.xyz
- Price: $0.194/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-24
- Last successful call: 2026-07-06
- Success rate: 93% of calls made through Zero
- Rating: 3.3 / 5 from 4 reviews
- Activations on Zero: 31
- Provider: zerohost.evmoore.workers.dev
- Website: https://zerohost.evmoore.workers.dev
- Canonical page: https://www.zero.xyz/c/zerohost-evmoore-workers-dev-zerohost-deploy-mint-disposable-https-5305a354
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_HQNSS3vhE-FP67IrD6CVd

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 zerohost-evmoore-workers-dev-zerohost-deploy-mint-disposable-https-5305a354 -d '<json body>'
```

Example prompt: Deploy my Node.js server zip as a disposable HTTPS backend for 48 hours — the zip includes a zerohost.json manifest with entry point server.js, and I need the env var OPENAI_KEY set to my key.

## When to prefer this

Choose this endpoint when you need a real, publicly addressable HTTPS server running arbitrary Node, Bun, or Python code for a bounded time window (up to 7 days), without managing any infrastructure. Ideal for ephemeral webhooks, one-shot API integrations, temporary demo backends, or agent-spawned microservices that should self-destruct. Prefer over persistent cloud deploys when the workload has a defined lifespan and you want zero teardown overhead.

## Known failure modes

- Missing or malformed zerohost.json manifest — 400 Bad Request
- Zip exceeds 50 MB compressed limit — 413 Payload Too Large
- Invalid or unsupported runtime value — 400 Bad Request
- Required env var declared in manifest but not provided — 400 Bad Request
- TTL hours out of range [1, 168] — 400 Bad Request
- Payment not completed or insufficient USDC — 402 Payment Required
- Container fails health check at startup — 503 Service Unavailable
- Reserved port (3000 or 8080) specified — 400 Bad Request

## How this service works

Mint a disposable HTTPS backend. POST a zip containing your code + a zerohost.json manifest. Pay once, get a URL that runs your process for ttlHours hours. After the TTL the URL goes dark and the underlying container is destroyed. No refunds for early teardown.

Wire shape:
```
POST /v1/deploy
Content-Type: application/zip
X-Zerohost-Ttl-Hours: 24                 # optional, default 24, max 168
X-Zerohost-Env: {"OPENAI_KEY":"sk-..."}  # optional JSON of env values
<raw zip bytes — max 50 MB compressed>
```

The zip MUST contain a top-level zerohost.json:
```json
{
  "version": 1,
  "runtime": "node",        // node | bun | python
  "entry": "server.js",
  "install": "npm install --omit=dev",   // optional override
  "port": 4000,                          // optional, default 4000 / 5000 (python)
  "healthcheck": "/healthz",             // optional
  "env": { "GREETING": { "default": "hi" }, "OPENAI_KEY": { "required": true } }
}
```

Pricing: base + per-hour × ttlHours, in micro-USDC. Exact charge is quoted in the 402 challenge.

The response includes a token-gated public URL of the form `{PUBLIC_BASE_URL}/d/{deployId}/...?t={tokenSecret}`. Hand the URL+token to whoever should call your backend; deployId alone won't work.

Limits (v1): bundle ≤ 50 MB compressed, ttlHours ∈ [1, 168], env ≤ 16 keys (≤ 4 KB each), ports 3000/8080 reserved.

## Output

Returns a deploy ID and a token-gated public URL of the form /d/{deployId}?t={tokenSecret} that routes HTTP traffic to the running container, along with TTL expiry info. The URL is live immediately after the health check passes and goes dark after ttlHours.

## Request schema (JSON Schema)

```json
{
 "type": "object"
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/zerohost-evmoore-workers-dev-zerohost-deploy-mint-disposable-https-5305a354/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from zerohost.evmoore.workers.dev](https://www.zero.xyz/host/zerohost.evmoore.workers.dev/llms.txt)
