# StableUpload Site Renew

> StableUpload Site Renew is a paid API for AI agents from stableupload.dev, paid per call via x402, $20/call, status unknown (last checked 2026-09-15).

Extends the retention window of an existing uploaded site by renewing it for one or more tier periods

## Facts

- Endpoint: POST https://stableupload.dev/api/site/renew
- Price: $20/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/stableupload-site-renew-44137f90
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_IDWUdR_s8zZe3ZAMHDqyV

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 stableupload-site-renew-44137f90 -d '<json body>'
```

Example prompt: Renew my StableUpload site with upload ID 'abc123xyz' on the 100mb tier for 2 more retention periods so it doesn't expire.

## When to prefer this

Use this endpoint when an existing site hosted on StableUpload needs its expiration extended without re-uploading or re-activating content. Prefer this over a full re-upload when the site content has not changed and you simply want to preserve availability for additional retention periods.

## Known failure modes

- Invalid or unknown uploadId returns an error
- Tier mismatch — specified tier does not match the original upload tier
- Count out of range (must be 1–10)
- Payment of $20 USDC fails or is rejected
- Upload already expired and cannot be renewed
- Required fields uploadId or tier missing from request body

## How this service works

Renew a site for count x the original tier retention window. Price = tier price x count.

## Output

Returns the upload ID, the updated expiration timestamp (newExpiresAt), and the count of periods renewed. Confirms how far the expiry has been pushed forward.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "tier": {
   "enum": [
    "10mb",
    "100mb",
    "1gb",
    "short-10mb",
    "short-100mb",
    "short-1gb"
   ],
   "type": "string",
   "description": "Tier of the upload (must match the original tier)"
  },
  "count": {
   "type": "integer",
   "default": 1,
   "maximum": 10,
   "minimum": 1,
   "description": "Number of tier retention periods to extend (default 1)"
  },
  "uploadId": {
   "type": "string",
   "minLength": 1,
   "description": "Upload ID to renew"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "uploadId": "bs94s5b4ca",
  "newExpiresAt": "2026-05-09T16:00:00.000Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stableupload-site-renew-44137f90/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stableupload.dev](https://www.zero.xyz/host/stableupload.dev/llms.txt)
