Node.js hosting
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).
Not tested: has real-world effectsour last check, 2026-10-01
0 of 0checks answered this week
n/amedian answer time
$0.6listed price per call
n/aprice it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://agents.withzero.xyz/api/v1/deploy/apps
| Category | Everything else |
|---|---|
| Provider host | agents.withzero.xyz |
| Networks | eip155:8453, zeroclick:card |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"body": {
"source": "example"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"ackEphemeral": {
"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.",
"type": "boolean"
},
"env": {
"additionalProperties": {
"type": "string"
},
"description": "Extra environment variables for your app, KMS-encrypted at rest. DATABASE_URL / PORT / ZERO_* are injected at deploy \u2014 do not set them.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"slug": {
"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.",
"maxLength": 63,
"minLength": 1,
"type": "string"
},
"source": {
"description": "Base64-encoded zip of your Node app (must contain a top-level package.json with a `start` script). Runtime is Node.",
"minLength": 1,
"type": "string"
},
"term_fee_micros": {
"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.",
"pattern": "^[1-9]\\d*$",
"type": "string"
}
},
"required": [
"source"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}