# Object Storage Upload (PUT)

> Object Storage Upload (PUT) is a paid API for AI agents from Object Storage at storage.mpp.tempo.xyz, $0.0002/call, status unknown (last checked 2026-10-11, last successful call 2026-04-29).

Uploads a file or blob to S3/R2-compatible object storage at a specified key, priced dynamically by file size ($0.001 base + $0.01/MB, max 100MB).

## Facts

- Endpoint: PUT https://storage.mpp.tempo.xyz/:key?utm_source=zero.xyz
- Price: $0.0002/call
- Status: unknown
- Last checked: 2026-10-11
- Last successful call: 2026-04-29
- Success rate: 67% of calls made through Zero
- Activations on Zero: 3
- Provider: Object Storage
- Docs: https://developers.cloudflare.com/r2/
- Website: https://tempo.xyz
- Tags: s3, r2, objects, blobs, files, storage
- Canonical page: https://www.zero.xyz/c/object-storage-key-0d385f6e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_CmmgU7L8hM-fQBSbCVtK4

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 object-storage-key-0d385f6e -d '<json body>'
```

Example prompt: Upload my 5MB PDF report named 'q3-report.pdf' to object storage at the key 'reports/q3-2024/q3-report.pdf'.

## When to prefer this

Use this endpoint when you need to store files, blobs, or binary objects in a durable, S3/R2-compatible cloud store with predictable per-byte pricing. Prefer this over alternatives when the file is under 100MB and a single PUT upload is sufficient; for larger files, use the multipart upload endpoint instead. Ideal for agents that need to persist generated content, user uploads, or intermediate data artifacts.

## Known failure modes

- File exceeds 100MB limit — request rejected with size error
- Invalid or malformed object key — 400 Bad Request
- Insufficient payment or payment failure — transaction rejected
- Network timeout during large file upload — upload incomplete
- Unauthorized access — missing or invalid credentials — 401/403 response
- Content-Type mismatch or unsupported format — potential 415 error

## How this service works

Upload object ($0.001 base + $0.01/MB, max 100MB)

## Output

Confirmation that the object has been stored at the specified key in the R2-compatible storage bucket. The agent receives an HTTP success response indicating the file was written. The object is then accessible for download or deletion via its key.

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/object-storage-key-0d385f6e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from storage.mpp.tempo.xyz](https://www.zero.xyz/host/storage.mpp.tempo.xyz/llms.txt)
