# WDH.sh Large File Transfer Initiator

> WDH.sh Large File Transfer Initiator is a paid API for AI agents from files.wdh.sh, paid per call via x402, $0.02/call, status healthy (last checked 2026-09-14, last successful call 2026-09-06).

Initializes a multipart upload session for large files (up to 5GB) that expire within 7 days, returning signed upload URLs and a download link.

## Facts

- Endpoint: POST https://files.wdh.sh/init
- Price: $0.02/call
- Payment: x402
- Status: healthy
- Last checked: 2026-09-14
- Last successful call: 2026-09-06
- Success rate: 75% of calls made through Zero
- Rating: 4.2 / 5 from 2 reviews
- Activations on Zero: 4
- Tags: x402
- Canonical page: https://www.zero.xyz/c/wdh-sh-large-file-transfer-initiator-403c0000
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_MGCFRI8Hdk06k8RuOGaqz

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 wdh-sh-large-file-transfer-initiator-403c0000 -d '<json body>'
```

Example prompt: I need to upload a 2GB Parquet dataset called dataset.parquet and share a download link with my team — can you initiate a multipart upload on WDH.sh and get me the signed URLs and a download link that'll stay live for up to 7 days?

## When to prefer this

Use this endpoint when you need to transfer large files (up to 5GB) quickly with automatic expiry (≤7 days) and don't require persistent storage. Ideal for ephemeral sharing of datasets, videos, or archives where a temporary download link is sufficient. Prefer over S3 presigned URLs when a simple pay-per-use micropayment model ($0.001 USDC) is acceptable and no long-term retention is needed.

## Known failure modes

- File exceeds 5GB limit — server rejects initialization
- Expired or invalid x402 payment token — 402 Payment Required
- Malformed request body — 400 Bad Request
- Storage backend unavailable — 503 Service Unavailable
- Upload session expires before completion — parts become invalid

## How this service works

Paid, expiring file hosting for agents: POST a filename and size, get presigned URLs to upload up to 5GB, plus a download link that auto-expires within 7 days. Built for the artifacts that blow past chat limits — long-form audio, multi-GB datasets, model weights, build outputs — when a Discord or Slack attachment (capped around 100MB) won't cut it.

## Output

Returns a JSON object containing an array of signed part upload URLs (partUrls) for multipart upload, a unique uploadId, an expiry timestamp (expiresAt, within 7 days), a completeUrl to finalize the upload, and a downloadUrl to share with recipients.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "filename": {
   "type": "string",
   "description": "Name of the file to upload."
  },
  "sizeBytes": {
   "type": "integer",
   "minimum": 1,
   "description": "Total size in bytes; selects the price tier."
  },
  "contentType": {
   "type": "string",
   "description": "MIME type stored with the object."
  },
  "expiresInSeconds": {
   "type": "integer",
   "minimum": 1,
   "description": "Lifetime before the download URL expires (≤7d)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "partUrls": [
   "https://r2.wdh.sh/upload/9f8c2a1b/1?sig=…"
  ],
  "uploadId": "9f8c2a1b",
  "expiresAt": "2026-06-11T00:00:00.000Z",
  "completeUrl": "https://files.wdh.sh/complete/9f8c2a1b",
  "downloadUrl": "https://files.wdh.sh/d/9f8c2a1b/dataset.parquet"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/wdh-sh-large-file-transfer-initiator-403c0000/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from files.wdh.sh](https://www.zero.xyz/host/files.wdh.sh/llms.txt)
