# agent-exec Storage Object Replace

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

Replaces the content of an existing stored object by ID, updating its size, label, and retention window, paid per-call via HTTP 402 with no account required.

## Facts

- Endpoint: POST https://agent-exec.448c.net/storage/%7Bid%7D/replace?utm_source=zero.xyz
- Price: $0.0051/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent-exec-storage-object-replace-9e26c5c0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_cHDbwjG1rAJFw2oSXWl2T

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-9e26c5c0 -d '<json body>'
```

Example prompt: Overwrite the stored object with ID 'abc123' with my new checkpoint data using the medium plan, and keep the existing label.

## When to prefer this

Use this endpoint when you already hold a valid storage object ID and need to overwrite its content with new data while preserving the same reference. It is preferable to deleting and re-creating when you need to keep the same ID or label stable. It also automatically extends retention to the longer of the old or new window, so replacing early never shortens your object's life. Ideal for agent checkpointing workflows where state must be updated in place.

## Known failure modes

- Object ID not found — 404 if the object does not exist or has expired
- Plan too small for new body — 402 response quoting the minimum required plan
- Payment failure — 402 if provided payment is invalid or insufficient
- Invalid plan enum value — 400 bad request
- Label conflicts or malformed label parameter — 400 bad request

## 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 with the object's ID, new expiry timestamp (Unix ms), previous expiry timestamp, new content size in bytes, previous content size, plan used, resulting label, and a payment receipt containing the payer wallet address, amount charged in atomic USDC 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-9e26c5c0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-exec.448c.net](https://www.zero.xyz/host/agent-exec.448c.net/llms.txt)
