# Reachpad Router – Disposable Linux VM Provisioner

> Reachpad Router – Disposable Linux VM Provisioner is a paid API for AI agents from router.reachpad.dev, paid per call via x402, $1/call, status unknown (last checked 2026-09-14).

Provisions an on-demand disposable Linux VM (sandbox or dev server) by selecting the cheapest cloud provider meeting your CPU, RAM, disk, and region requirements, returning SSH or exec access credentials, billed per second via USDC or card.

## Facts

- Endpoint: POST https://router.reachpad.dev/v1/machines
- Price: $1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/reachpad-router-disposable-linux-vm-provisioner-6fcd9253
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_HaTck9hvRjmEJAVEiG9V5

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 reachpad-router-disposable-linux-vm-provisioner-6fcd9253 -d '<json body>'
```

Example prompt: Spin up a disposable Linux VM for me with 2 vCPUs, 4 GB RAM, and 20 GB disk in us-east — I need SSH access, so here's my public key: ssh-ed25519 AAAA... — keep it alive for 2 hours and don't let the hourly rate exceed $0.15.

## When to prefer this

Choose this endpoint when an AI agent needs an isolated, ephemeral Linux compute environment to run arbitrary commands, build software, or execute untrusted code — especially when you want least-cost provider routing across multiple clouds without managing provider accounts directly. Prefer it over static cloud VMs when you need per-second billing, automatic expiry, and idempotent provisioning via client_ref. It is purpose-built for agent workflows that need real compute sandboxes rather than simulated or containerized environments managed by the caller.

## Known failure modes

- No eligible provider found matching CPU/RAM/disk/region constraints — returns an error with no machine created
- ssh_public_key missing when access includes 'ssh' — validation error
- region value not in enum [us-west, us-east, eu-central] — 400 bad request
- max_rate too low to match any offer — no machine provisioned
- Idempotency key (client_ref) collision on a different account — error or unexpected machine returned
- Payment failure (insufficient USDC credits or card declined) — provisioning blocked
- TTL expires before agent can use the machine — machine destroyed

## How this service works

Virtual machines for agents: disposable Linux VMs, sandboxes and dev servers — ask for cpu, RAM, disk and region, get the cheapest eligible cloud provider, run commands over SSH or exec, pay per second in credits funded by USDC (x402) or card.

## Output

A JSON object containing the machine ID, fully-qualified hostname (for SSH), assigned SSH user, cloud provider selected, region, current status ('ready'), access methods, creation and expiry timestamps, and the hourly rate in decimal USD. The agent can immediately connect via SSH to the hostname or send POST requests to /v1/machines/{id}/exec for exec-mode machines.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "cpu",
      "ram_gb",
      "disk_gb",
      "region"
     ],
     "properties": {
      "cpu": {
       "type": "number",
       "minimum": 0.25,
       "description": "vCPUs. An offer must meet or exceed it."
      },
      "access": {
       "type": "array",
       "items": {
        "enum": [
         "ssh",
         "exec"
        ],
        "type": "string"
       },
       "default": [
        "ssh"
       ],
       "minItems": 1,
       "description": "The access set. \"ssh\" gives a hostname and needs ssh_public_key; \"exec\" gives POST /v1/machines/{id}/exec with no key and no hostname.",
       "uniqueItems": true
      },
      "ram_gb": {
       "type": "number",
       "minimum": 0.25,
       "description": "Memory in GB."
      },
      "region": {
       "enum": [
        "us-west",
        "us-east",
        "eu-central"
       ],
       "type": "string",
       "description": "Matched exactly against the offer."
      },
      "disk_gb": {
       "type": "number",
       "minimum": 0.25,
       "description": "Disk in GB."
      },
      "max_rate": {
       "type": "string",
       "pattern": "^\\d+(\\.\\d{1,6})?$",
       "description": "Drop any offer whose hourly rate is above this. Decimal USD as a string, e.g. \"0.15\"."
      },
      "issue_key": {
       "type": "boolean",
       "description": "Ask this payment to return the account's API key. Needs a payment on the request, freshly signed (its validity must end within 10 minutes), and spends one of the wallet's ten re-issues per five minutes. Rotates the key of an account that already exists (the old key stops working) and returns the new one; on the payment that creates the account the key comes back anyway. Last rotation wins, so never send two flagged payments in parallel."
      },
      "max_spend": {
       "type": "string",
       "pattern": "^\\d+(\\.\\d{1,6})?$",
       "description": "Destroy the machine when its accrued spend reaches this budget. Decimal USD as a string, e.g. \"0.15\"."
      },
      "client_ref": {
       "type": "string",
       "maxLength": 128,
       "minLength": 1,
       "description": "Your idempotency key, unique per account. A retry carrying a ref that already names one of your machines returns that machine instead of provisioning again."
      },
      "ttl_seconds": {
       "type": "in
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "id": "rp_vm_abc123def4",
  "host": "rp_vm_abc123def4.reachpad.dev",
  "access": [
   "ssh"
  ],
  "region": "us-west",
  "status": "ready",
  "provider": "daytona",
  "ssh_user": "reachpad",
  "created_at": "2026-09-02T00:00:00.000Z",
  "expires_at": "2026-09-02T04:00:00.000Z",
  "rate_per_hour": "0.0666"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/reachpad-router-disposable-linux-vm-provisioner-6fcd9253/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from router.reachpad.dev](https://www.zero.xyz/host/router.reachpad.dev/llms.txt)
