# agent-exec Storage Object Replace

> agent-exec Storage Object Replace is a paid API for AI agents from agent-exec.45.67.221.128.sslip.io, paid per call via x402, $0.0051/call, status unknown (last checked 2026-10-02).

Replaces the content of an existing storage object by ID, updating its size, retention window, and optional label, with pay-per-use USDC micropayment via HTTP 402.

## Facts

- Endpoint: POST https://agent-exec.45.67.221.128.sslip.io/storage/%7Bid%7D/replace?utm_source=zero.xyz
- Price: $0.0051/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent-exec-storage-object-replace-79401e50
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ql5ajoubpOT-X8r5QrUGv

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 agent-exec-storage-object-replace-79401e50 -d '<json body>'
```

Example prompt: Replace the content of my existing storage object abc-123 with this new JSON payload — use the small plan and rename the label to 'checkpoint-v2'.

## When to prefer this

Use this endpoint when you already have a storage object ID and want to overwrite its content entirely rather than create a new object. It is the right choice when you need to update agent state, refresh a cached artifact, or rename a label while preserving the object's identity. Prefer this over a fresh store when you want the retention window to be the longer of old vs new, avoiding unintended shortening of previously paid retention. It requires no account or API key — only a valid USDC micropayment via x402.

## Known failure modes

- Object ID not found — returns 404 if the specified storage ID does not exist
- Payment insufficient or invalid — HTTP 402 if the submitted payment doesn't cover the required plan price
- Plan too small for new content — service auto-selects the smallest fitting plan and quotes the correct price via 402
- Label parameter misuse — unexpected behavior if label parameter format is incorrect
- Expired object — attempting to replace an already-expired object may return an error
- Network or sandbox unavailable — transient 5xx errors if the service infrastructure is temporarily down

## How this service works

Accountless, pay-per-use code execution for software agents: submit source code, get stdout, stderr and exit code back from an isolated, network-less sandbox. No account, no API key -- possession of valid payment is sufficient.

## Output

Returns a JSON object containing the object's ID, the new plan, the new content size in bytes, the previous content size, the new expiry timestamp (Unix ms), the previous expiry timestamp, the resulting label (unchanged, renamed, or cleared), and payment details including asset, payer wallet address, charged amount in atomic units, network, and on-chain transaction hash.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "plan": {
   "enum": [
    "small",
    "medium",
    "large"
   ],
   "type": "string",
   "description": "Optional; omitted, misspelled or too small for the new body, you get the smallest plan it fits, and the 402 quotes exactly that. Which plan to buy. Priced as a fresh store, because the content is entirely new. Its byte allowance must cover the NEW body, and its window is compared against what the object already has -- the longer of the two wins, so replacing early never shortens your retention."
  },
  "label": {
   "type": "string",
   "description": "Three-way. OMIT it to keep the object's current label (the usual case -- you are re-parking state under a name you already know). Send `?label=name` to rename. Send it empty (`?label=`) to clear it."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "id",
  "expiresAt",
  "previousExpiresAt",
  "size",
  "previousSize",
  "plan",
  "label",
  "payment"
 ],
 "properties": {
  "id": {
   "type": "string"
  },
  "plan": {
   "enum": [
    "small",
    "medium",
    "large"
   ],
   "type": "string"
  },
  "size": {
   "type": "integer",
   "description": "The new content size, in bytes."
  },
  "label": {
   "type": [
    "string",
    "null"
   ],
   "description": "The resulting label -- unchanged, renamed, or cleared, per the `?label=` sent."
  },
  "payment": {
   "type": "object",
   "properties": {
    "asset": {
     "type": "string"
    },
    "payer": {
     "type": "string",
     "description": "The paying wallet's address."
    },
    "amount": {
     "type": "string",
     "description": "Atomic units of the settlement asset that were charged."
    },
    "network": {
     "type": "string"
    },
    "transaction": {
     "type": "string",
     "description": "On-chain settlement transaction hash."
    }
   }
  },
  "expiresAt": {
   "type": "integer",
   "description": "Unix ms the object is free again, after this replacement."
  },
  "previousSize": {
   "type": "integer",
   "description": "The size of the content that was overwritten, in bytes."
  },
  "previousExpiresAt": {
   "type": "integer",
   "description": "Unix ms the object would have expired before this replacement."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent-exec-storage-object-replace-79401e50/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-exec.45.67.221.128.sslip.io](https://www.zero.xyz/host/agent-exec.45.67.221.128.sslip.io/llms.txt)
